簡體   English   中英

使用 sapb1 jco 進行庫存轉移時出錯

[英]Stock transfer using sapb1 jco getting error

以下是我在 SAPB1 中進行倉庫移動的代碼。 根據文檔,我應該使用對象 67(SBOCOMConstants.BoObjectTypes_oStockTransfer) 來獲取股票轉移對象。 但是當我使用它時,我收到以下錯誤。 它是一個類轉換異常。 我試圖將 Dispatch 對象轉換為庫存轉移對象。

參考鏈接1參考鏈接2

編輯:似乎 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM