BizTalk WCF Oracle Adapter: отправка значений DateTime - PullRequest
0 голосов
/ 01 марта 2012

Я пытаюсь использовать адаптер Oracle WCF для вставки данных в таблицу Oracle.В таблице есть поле DateTime.Я устанавливаю значение поля в оркестровке, используя выделенное поле, а затем отправляю сообщение на порт отправки, настроенный для использования адаптера Oracle WCF.

Это дает мне следующую ошибку при отправке сообщения в Oracle:

Недопустимое значение для поля.DateTime.Kind должен быть DateTimeKind.Unspecified.Убедитесь, что в значении DateTime нет ни TimeZone, ни TimeZoneOffset.

Я пытался использовать это для принудительного определения DateTimeKind:

msg.ProcessedDateTime = System.DateTime.SpecifyKind(
    System.DateTime.Now.ToLocalTime(), 
    System.DateTimeKind.Unspecified); 

, но все равно получаюто же сообщение об ошибке.

Я также вижу, что в XML, сгенерированном для этого сообщения, используется следующий формат дат: yyyy-MM-ddTHH: mm: ss.ffffffZ

Кажется, проблема вс Z в конце строки, который указывает часовой пояс (GMT + 0)

Я не могу просто присвоить свойству «ProcessedDateTime» произвольную строку (с форматом, который я мог бы контролировать),поскольку схема определяет поле как xs: dateTime, то для оркестровки требуется, чтобы я использовал значение System.DateTime.

Как я могу заставить представление System.DateTime , а не содержать какие-либоинформация о часовом поясе?Обратите внимание, что я не могу напрямую управлять представлением, поскольку DateTime преобразуется в строку с помощью BizTalk, а не с помощью моего кода.

1 Ответ

0 голосов
/ 01 марта 2012

Обходным путем, который я нашел, было использование карты / xslt / pipe в порту отправки, которая переформатирует дату и время в формате, ожидаемом Oracle. Таким образом, оркестровка по-прежнему записывает дату с часовым поясом, но она удаляется перед отправкой в ​​Oracle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...