为了账号安全,请及时绑定邮箱和手机立即绑定

使用 sapb1 jco 进行库存转移时出错

使用 sapb1 jco 进行库存转移时出错

明月笑刀无情 2021-09-03 10:16:50
以下是我在 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.Dispatchjava.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)
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

最后我能够解决这个问题。我拿 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());

    }


查看完整回答
反对 回复 2021-09-03
  • 1 回答
  • 0 关注
  • 266 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信