-1

Following is my code to do a warehouse movement in SAPB1. According to the documentation I should use the object 67(SBOCOMConstants.BoObjectTypes_oStockTransfer) to get the Stock transfer object. But when I use it I am getting the following error. Its a class cast exception. that I am trying to cast Dispatch object to the stock transfer object.

Reference Link1, Reference Link 2

Edit : It seems like com.sap.smb.sbo.wrapper.com.Dispatch is the default object which is returned. And need to find a way to get StockTransfer object from this.

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());
        }

    }

Error

---------->
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)
Trixx
  • 1,796
  • 1
  • 15
  • 18
arjuncc
  • 3,227
  • 5
  • 42
  • 77

1 Answers1

0

Finally I was able to solve the issue. The way in which I was taking the Stocktrasnfer document was wrong

    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());
    }
arjuncc
  • 3,227
  • 5
  • 42
  • 77