JCO передает ошибочные параметры в CSAP_MAT_BOM_MAINTAIN

Я пытаюсь вызвать функциональный модуль CSAP_MAT_BOM_MAINTAIN для создания спецификации в SAP, но получаю сообщение об ошибке.

    IFunctionTemplate ft = mRepository.getFunctionTemplate("CSAP_MAT_BOM_MAINTAIN");
    System.out.println(" Functional Template Created ");
      
    if (ft == null){return;}
        
    JCO.Function function = ft.getFunction();
    JCO.ParameterList importparams =function.getImportParameterList();
    
    //  Setting HeadData Structure Information
    
    //importparams.setValue("C000000609", "CHANGE_NO");
    importparams.setValue("CPF10104", "MATERIAL");
    importparams.setValue("1", "BOM_USAGE");
    importparams.setValue("0001", "PLANT");
    importparams.setValue("01", "ALTERNATIVE");
    importparams.setValue("11.11.2011", "VALID_FROM");      
    importparams.setValue("X", "FL_COMMIT_AND_WAIT");
    importparams.setValue("X", "FL_BOM_CREATE");
    importparams.setValue("X", "FL_NEW_ITEM");
    importparams.setValue("X", "FL_COMPLETE");
    importparams.setValue("X", "FL_DEFAULT_VALUES");
    
    JCO.Structure headStructure = importparams.getStructure("I_STKO");
    headStructure.setValue("01", "BOM_STATUS");
    headStructure.setValue("1", "BASE_QUAN");
    headStructure.setValue("KG", "BASE_UNIT");
    headStructure.setValue("BOM01", "BOM_GROUP");

    JCO.Table stpo = function.getTableParameterList().getTable("T_STPO");
    stpo.appendRow();
    stpo.setValue("BOM Position 2.1", "ITEM_TEXT1");
    stpo.setValue("L", "ITEM_CATEG");
    stpo.setValue("L", "ID_ITM_CTG");
    stpo.setValue("0010", "ITEM_NO");
    stpo.setValue("0010", "ID_ITEM_NO");
    stpo.setValue("13", "COMP_QTY");
    stpo.setValue("KG", "COMP_UNIT");
    stpo.setValue("00000001", "ITEM_NODE");
    stpo.setValue("00000001", "ITEM_COUNT");
    stpo.setValue("000000000000000000", "DEP_LINK");
    stpo.setValue("12345-R6000001", "COMPONENT");       
    //stpo.setValue("12345-R6000001", "ID_COMP");
    
    JCO.Table stpu = function.getTableParameterList().getTable("T_STPU");
    stpu.appendRow();
    stpu.setValue("0", "POINTER");
    stpu.setValue("00000000", "STLKN");
    stpu.setValue("0010", "STPOZ");
    stpu.setValue("0001", "UPOSZ");
    stpu.setValue("46", "UPMNG");
    stpu.setValue("T1", "EBORT");

Я получаю сообщение об ошибке:

Исключение в основном потоке com.sap.mw.jco.JCO$AbapException: (126) ОШИБКА: прервать обработку.

После поиска в Интернете я обнаружил, что эта ошибка возникает, когда у нас неправильные параметры ввода. Но я не могу найти ошибку.

Обратите внимание, что у меня ограниченные знания о программировании на ABAP.

Может кто-нибудь мне помочь?


person Raj    schedule 14.11.2011    source источник
comment
Извините, но это не так много, чтобы продолжать. Вам нужно будет хотя бы отлаживать до тех пор, пока он не сгенерирует исключение. По крайней мере, дойти до этого.   -  person apesa    schedule 14.11.2011


Ответы (2)


(126) ИСКЛЮЧЕНИЕ ABAP: Исключение было вызвано функциональным модулем в удаленной системе.

Я думаю, вам следует внимательно просмотреть все эти новые параметры, так как один из них вызывает ошибку в вашей функции.

person openyourstackoverflow    schedule 14.11.2011

Если у вас есть доступ к системе SAP, вы можете запустить транзакцию ST22, чтобы получить подробный журнал ошибок. Однако вам может потребоваться устранить ошибку в SAP в соответствии с предложением Раджа.

person Esti    schedule 14.11.2011