исключение com.sap.conn.jco.AbapException: (126) ОШИБКА: сообщение ОБ ошибке 172 класса 29 типа E

#sapjco3

#sapjco3

Вопрос:

Я получаю исключение ниже при выполнении JCoFunction .

 JCoFunction functionBOMCreation = destination.getRepository().getFunction("CSAP_MAT_BOM_CREATE"); functionBOMCreation.execute(destination);
 

Получение этого исключения

 com.sap.conn.jco.AbapException: (126) ERROR: ERROR Message 172 of class 29 type E
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcClient.execute(MiddlewareJavaRfc.java:1824)
    at com.sap.conn.jco.rt.ClientConnection.execute(ClientConnection.java:1120)
    at com.sap.conn.jco.rt.ClientConnection.execute(ClientConnection.java:953)
    at com.sap.conn.jco.rt.RfcDestination.execute(RfcDestination.java:1317)
    at com.sap.conn.jco.rt.RfcDestination.execute(RfcDestination.java:1288)
    at com.sap.conn.jco.rt.AbapFunction.execute(AbapFunction.java:302)**
 

Ответ №1:

Вообще говоря, когда вы получаете AbapException , это означает, что вызываемая функция явно обнаружила ошибку. Это может быть ошибка в аргументах, которые вы передаете функции, или ошибка из-за данных в системе SAP.

Возможно, вместе с ним вы получите номер сообщения. Если это так, вы можете получить текст, либо войдя в систему SAP вручную (через графический интерфейс SAP) и запустив SE91 код транзакции для отображения сообщений, либо ваша программа может выполнить дополнительный вызов функции BAPI_MESSAGE_GETDETAIL для получения полного текста сообщения (входные параметры: ID, NUMBER, MESSAGE_V1, MESSAGE_V2, MESSAGE_V3, MESSAGE_V4 ; выходной параметр: MESSAGE ).

В вашем случае идентификатор сообщения 172 класса 29 соответствует тексту Enter a quantity . Я не знаю CSAP_MAT_BOM_CREATE , поэтому не могу сказать вам, о каком именно параметре идет речь.