Подключение к веб-сервисам NAV из …

Когда-то я обещал написать несколько статей по тому, каким образом подключаться к веб-сервисам NAV из разных языков программирования/различных платформ, и, чует мое сердце, настало время сдержать данное обещание.

Я напишу несколько заметок по подключение к веб-сервисам NAV из:

  • PHP;
  • Java;
  • C#, используя Web References;
  • C#, используя Service Reference;
  • Javascript;
  • Visual Basic, используя Web Reference;
  • Visual Basic, используя Service Reference;
  • Windows Mobile;
  • Microsoft Dynamics NAV 2009SP1;
  • И не только их…

Сценарий работы

Для всех платформ я напишу код, который:

  • Подключается к веб-сервису NAV – System Service – и получает список фирм из БД;
  • Составляет URL на страницу Customer Page (для первой фирмы из списка);
  • Получает название клиента под номером 10000;
  • Получает список клиентов из Англии (GB) с проставленным кодом склада RED или BLUE.

Ниже – пример результата работы веб-сайта на PHP:

Просьба иметь в виду, что написанный для PHP или, скажем, Java код не идеален, а цель статей – не научить людей программировать на этих языках (из меня тут выйдет плохой учитель), цель – преодолеть затруднения, связанные с работой с NAV.

Аутентификация

Первое встречающееся затруднение – аутентификация. Как вы скорее всего знаете, NAV 2009 поддерживает только аутентификацию SPNEGO (Negotiate), а PHP и JAVA не имеют встроенной поддержки этого типа аутентификации.
В NAV 2009 SP1 мы добавили в конфигурационный файл сервера приложений ключ – WebServicesUseNTLMAuthentication. Если установить этот ключ в TRUE, Web Service Listener будет использовать только NTLM-аутентификацию, так доступ из других систем будет гораздо проще.

Файл конфигурации сервера приложений, который вам надо будет править, расположен в той же папке, где находится экзешник самого сервера приложений, и называется CustomSettings.config. Секция, которая вам понадобится, следующая:

<!--
Turns on or off NTLM authentication protocol for Web Services
false: Use SPNEGO (recommended)
true: Use NTLM only
-->

Заметьте, что .NET работает с обоими возможными значениями этого ключа.

На здоровье!

Оригинал заметки лежит здесь: http://blogs.msdn.com/b/freddyk/archive/2010/01/19/connecting-to-nav-web-services-from.aspx

Автор:

В области Navision - с 2003 года. Профессиональные интересы: NAV, MS SQL, .NET, BPMN, IT-менеджмент. Предметная область: логистика, финансы, склады, 3PL.

Количество статей, опубликованных автором: 86.

Добавить комментарий