Почему я получаю ошибку формата даты в 1 объекте?

#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 
  

Выше показано, как считывается переменная даты, без периода, начинается с года.

Надеюсь, это поможет