В Dynamics Nav (2013) у меня есть программный модуль, доступный с помощью служб мыла для запуска порта XML. Если я введу правильный URI для этого кодового модуля для запуска порта, данные XML будут импортированы нормально. Также, если я просто запустил функцию XMLPORT.IMPORT из NAV, она будет правильно импортировать файл данных XML.

Но если я использую класс SoapHttpClientProtocol для запуска codeunit, то даты, содержащиеся в данных XML, импортируются в обратном порядке. Месяцы и дни меняются местами. Я безуспешно пытался скопировать свои региональные настройки в учетную запись сетевой службы.

Любые другие возможные исправления или причины, по которым формат времени данных отличается при запуске кода?

3
Ryan Erb 27 Авг 2014 в 17:28

1 ответ

Лучший ответ

Итак, в своих долгих поисках причины возникновения этой ошибки я наконец наткнулся на следующее:

http://blogs.msdn.com/b/nav/archive/2012/11/07/nav-2013-soap-web-services-on-a-multilanguage-environment.aspx

Все операции SOAP вынуждены использовать EN-US культуру и НЕ МОГУТ быть изменены. Но похоже, что это было отменено в новой сборке 2013 R2 в апреле. Вам просто нужно добавить: <add key="ServicesCultureDefaultUserPersonalization" value="true"/> в файл CustomSettings.config (если вы используете экземпляр службы, убедитесь, что вы изменили правильный экземпляр в папке [path-to-NAV]\71\Service\Instances\), и он должен использовать ту культуру, которая указана в таблице персонализации пользователя.

4
Jason Down 28 Авг 2014 в 23:59