Я выполняю пакетное обновление для модели OData v2, которая содержит несколько операций.Обновление выполняется в одном наборе изменений, поэтому одна неудачная операция завершается неудачей всего обновления.
Если происходит сбой одной операции (из-за бизнес-логики) и возвращается сообщение.Есть ли способ узнать, какая операция вызвала сообщение?Полученный ответ содержит текст сообщения и ничего более полезного.
Функция ошибки запускается для каждой неудачной операции и каждый раз содержит одно и то же сообщение.
Возможно, существует определенныйспособ сообщения должен быть выдан на бэкэнд SAP?Метод ABAP / iwbep / if_message_container-> ADD_MESSAGE имеет параметр IV_KEY_TAB, но, похоже, он ни на что не влияет.
Редактировать: Уточнение после разговора.Мой сервис не возвращает список сообщений, он выполняет обновления.Если одна из операций обновления завершается неудачно с сообщением, я хочу подключить сообщение к конкретному обновлению, которое не удалось, желательно без изменения текста сообщения.Пример ответа об ошибке, который я получаю:
{
"error":{
"code":"SY/530",
"message":{
"lang":"en",
"value":"<My message text>"
},
"innererror":{
"application":{
"component_id":"",
"service_namespace":"/SAP/",
"service_id":"<My service>",
"service_version":"0001"
},
"transactionid":"",
"timestamp":"20181231084555.1576790",
"Error_Resolution":{
// Sap standard message here
},
"errordetails":[
{
"code":"<My message class>",
"message":"<My message text>",
"propertyref":"",
"severity":"error",
"target":""
},
{
"code":"/IWBEP/CX_MGW_BUSI_EXCEPTION",
"message":"An exception was raised.",
"propertyref":"",
"severity":"error",
"target":""
}
]
}
}
}