[英]Stock transfer using sapb1 jco getting error
以下是我在 SAPB1 中進行倉庫移動的代碼。 根據文檔,我應該使用對象 67(SBOCOMConstants.BoObjectTypes_oStockTransfer) 來獲取股票轉移對象。 但是當我使用它時,我收到以下錯誤。 它是一個類轉換異常。 我試圖將 Dispatch 對象轉換為庫存轉移對象。
編輯:似乎 com.sap.smb.sbo.wrapper.com.Dispatch 是返回的默認對象。 並且需要找到一種方法從中獲取 StockTransfer 對象。
public void transfer(ICompany company) throws Exception {
System.out.println("---------->");
Object obj = company.getBusinessObject(SBOCOMConstants.BoObjectTypes_oStockTransfer);
System.out.println("class ------------> " + obj.getClass());
StockTransfer doc = (StockTransfer) obj;
doc.setFromWarehouse("RW-QC");
doc.setComments("Just trasfered let see!!!");
doc.setDocDate(new Date());
doc.setDocObjectCode(SBOCOMConstants.BoObjectTypes_oStockTransfer);
doc.getLines().setItemCode("M100001");
doc.getLines().setWarehouseCode("RW");
doc.getLines().setQuantity(1.0);
doc.getLines().add();
int ii = doc.add();
if (ii != 0){
SBOErrorMessage error = company.getLastError();
System.out.println(error.getErrorCode());
System.out.println(error.getErrorMessage());
} else {
SBOErrorMessage error = company.getLastError();
System.out.println(error.getErrorCode());
System.out.println(error.getErrorMessage());
}
}
錯誤
---------->
class ------------> class com.sap.smb.sbo.wrapper.com.Dispatch
java.lang.ClassCastException: com.sap.smb.sbo.wrapper.com.Dispatch cannot be cast to com.sap.smb.sbo.api.StockTransfer
at tets.StockTransferLocal.transfer(StockTransferLocal.java:16)
at tets.SAPBusinessOneTutorialWH.main(SAPBusinessOneTutorialWH.java:72)
最后我能夠解決這個問題。 我拿 Stocktrasnfer 文件的方式是錯誤的
IStockTransfer doc = SBOCOMUtil.newStockTransfer(company);
doc.setFromWarehouse("RW-QC");
doc.setComments("Just trasfered let see!!!");
doc.setDocDate(new Date());
doc.setDocObjectCode(SBOCOMConstants.BoObjectTypes_oStockTransfer);
doc.getLines().setItemCode("M100001");
doc.getLines().setWarehouseCode("RW");
doc.getLines().setFromWarehouseCode("RW-QC");
doc.getLines().setQuantity(1.0);
doc.getLines().getBatchNumbers().setBatchNumber("BTCH0001");
doc.getLines().getBatchNumbers().setQuantity(1.0);
doc.getLines().add();
int ii = doc.add();
if (ii != 0){
SBOErrorMessage error = company.getLastError();
System.out.println(error.getErrorCode());
System.out.println(error.getErrorMessage());
} else {
SBOErrorMessage error = company.getLastError();
System.out.println(error.getErrorCode());
System.out.println(error.getErrorMessage());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.