#datetime #error-handling #sap-gateway
#datetime #обработка ошибок #sap-шлюз
Вопрос:
Итак, у меня есть сервер шлюза SAP с некоторыми объектами, которые отправляются на сторону клиента по запросу. Все объекты в настоящее getEntitySet
время переопределены, и все работает нормально, кроме 1 объекта.
Один из объектов, когда я пытаюсь выполнить getEntitySet
, возвращает эту ошибку, которая ссылается на поля даты в нем:
В контексте служб передачи данных произошла неизвестная внутренняя ошибка сервера
В журнале ошибок написано:
Недопустимый формат (возвращаемая таблица): номер строки 1, имя свойства ‘XXXX’, значение свойства ‘04.10.15’
В остальных объектах все работает нормально.
Я пытался:
- использование разных дат
- ввод дат в разных форматах в поля
- удаление полей даты из указанного объекта и их возврат
- установка полей даты как обнуляемых
- удаление всего объекта и его повторное создание
- создал новый объект только с полями даты, у него была та же ошибка
Ничего не работает, 3 человека пытались мне помочь, но никто не знает, в чем проблема. Любая помощь приветствуется.
Комментарии:
1. Трудно помочь, если вы смешиваете create entity и get entity в своем вопросе. Что касается проблемы get, похоже, что формат даты в базе данных неверен, и когда он пытается его вернуть, значение
04.10.15
явно не является допустимой датой. Какое точное значение находится в базе данных? Какая дата возвращается для объекта в порядке, и какое значение находится в базе данных? (пожалуйста, укажите точное значение XML или JSON)2. Дата в базе данных такая же, как и другие даты — все в формате ‘ГГГГммДД’. Когда я выполняю select в getEntitySet, он отлично выбирает дату, но где-то между концом метода getEntitySet и клиентом происходит сбой. Я попытался во время отладки изменить дату в «плохом» объекте на дату из «хорошего» объекта, и в entityset это выглядело нормально, но после getEntitySet, на пути к стороне клиента, произошел сбой с той же ошибкой. (Все происходит одинаково независимо от того, запускаю ли я getEntitySet с фактической клиентской стороны или с клиента шлюза.)
3. Короче говоря, нет никакой разницы между «плохим» объектом и остальными объектами — один и тот же тип полей даты как в объекте, так и в базе данных, один и тот же процесс в getEntitySet. Только в объекте ‘bsd’, после метода, по какой-то причине он пытается преобразовать дату в ‘DD.mm.YY’ вместо ‘DD.mm.YYYY’.
4. Итак, вы говорите, что это невозможно воспроизвести, и вы не можете найти проблему. Я думаю, что мы не можем сделать лучше. Вам следует заглянуть в базу знаний службы поддержки SAP, и если вы ничего не найдете, обратитесь в службу поддержки.
Ответ №1:
Формат даты, который вы передали, является неправильным
20220107
Выше показано, как считывается переменная даты, без периода, начинается с года.
Надеюсь, это поможет