Ресурс не найден для сегмента при вызове GetEntity в службе OData

У меня есть функция, которая экспортирует структуру, содержащую 4 числа (int4). Функция import - это флаг.

Я создал модель данных в SEGW для функции и создал отображение GetEntity

Я столкнулся с проблемой: когда я запускаю запрос с ключом = false И все числа равны 0, я получаю сообщение "Ресурс не найден для сегмента".

Когда я запускаю запрос с ключом = true и все числа равны 0, он работает нормально. Когда я запускаю запрос с ключом = false и хотя бы одно из чисел не равно 0, он работает нормально.

Думаю, я могу решить эту проблему, экспортировав фиктивное число со значением 1, но я хотел бы знать, есть ли лучший способ решить эту проблему.

2 ответа

Решение

Поскольку нет фрагмента кода, описывающего, как вы обрабатываете объект get, я не могу быть уверен, что это проблема, но: я бы проверил, что вы возвращаете (er_entity) в случае вызова с "false". Кажется, что вы ничего не возвращаете, и OData ожидает прочитать что-то при "ложном" вызове.

Кроме того, было бы полезно упомянуть версию OData, которую вы используете. В настоящее время SAP поддерживает 2 версии.

Привет, SePo

Я столкнулся с той же проблемой, и проблема в том, что, как упоминал SePo, в методе GetEntity ничего не возвращается. Чтобы исправить это, перейдите к транзакции SE80, которая определяет ваш класс odata:

то в списке классов вы найдете тот, который вас интересует - в конце имени метода будет "GET_ENTITY". Просто щелкните по нему правой кнопкой мыши и выберите «Переопределить».

Теперь вы найдете свой метод в разделе «Переопределения» — дважды щелкните этот класс:

Последнее, что вам нужно сделать, это заполнить структуру «er_entity».

Это должно делать свое дело :)

Другие вопросы по тегам