Мобильные устройства могут отправлять в программу Microsoft Dynamics NAV документы запросов различных типов, которые могу обрабатываться этим продуктом. Например, у мобильного приложения может быть один документ запроса для создания нового клиента, а другой — для отправки заказа. Документ запроса — это файл XML, поэтому необходимо определить обрабатывающий модуль Codeunit, который будет считывать данные XML, проверять права доступа и выполнять соответствующие элементы бизнес-логики в Microsoft Dynamics NAV. Модули Codeunit такого типа называются обработчиками документов. Каждый обработчик документов соответствует одному или нескольким типам документов. Поэтому перед созданием обрабатывающего документы модуля Codeunit следует определить необходимые приложению типы документов.

В стандартной реализации в состав Microsoft Dynamics NAV входят следующие обработчики документов:

Правила определения обработчиков документов в Microsoft Dynamics NAV

В обработчике документов содержится код для обработки одного или нескольких типов входящих документов. В стандартной реализации обработчика образцов документов, модуле Codeunit 8703 Обработчик мобильных документов, содержится одна функция обработки документов, CreateCustomerHandle, которая позволяет обрабатываться один тип документов запросов, поступающих с мобильного устройства. В модуле Codeunit 8725 Обработчик документов приложения «Мобильные продажи» содержится четыре функции обработки документов, которые позволяют обрабатывать документы запросов четырех типов.

Обязательный код

В обрабатывающем документы модуле Codeunit должен содержаться код, выполняющий перечисленные ниже функции.

  • Проверка согласованности базы данных в процессе обработки документа. Обычно для этого в начало раздела OnRun вставляется оператор CONSISTENT(FALSE), а в конец раздела OnRun — оператор CONSISTENT(TRUE).

  • Определение обработчиков документов, используемых для обработки документов различных типов в модуле Codeunit. Обычно, для этого в раздел OnRun вставляется оператор CASE, отправляющий каждый входящий XML-документ функции, обрабатывающей документы такого типа.

  • Сохранение результатов в очереди мобильных документов и, при необходимости, отправка документа ответа на мобильное устройство.

Кроме того, каждая обрабатывающая документы функция, например CreateCustomerHandle в модуле Codeunit 8703 Обработчик мобильных документов, должна выполнять следующие действия.

  • Проверка прав доступа мобильного пользователя, отправившего документ запроса. Для проверки наличия у мобильного пользователя соответствующих прав доступа для каждой таблицы, к которой обращается документ запроса, используется функция CheckPermission модуля Codeunit Управление правами мобильных пользователей.

    Модуль Codeunit будет запускаться от имени учетной записи пользователя сервера приложений Microsoft Dynamics NAV Application Server. В большинстве случаев необходимо, чтобы код выполнялся с более ограниченными правами доступа. Для ограничения доступа к таблицам можно воспользоваться функцией CheckPermission.

  • Чтение XML-кода в документе запроса. Функция LoadXMLRequestDoc позволяет открыть XML-документ в таблице Мобильные документы - очередь. Для обработки XML-документа с помощью сервера автоматизации Microsoft XML версии 6.0 необходимо добавить локальные переменные. Дополнительные сведения см. в подразделе, посвященном функции AUTOMATION, в разделе Документации для разработчиков и ИТ-специалистов Microsoft Dynamics NAV 2009.

    В XML-коде перечисляются тасклеты, использовавшиеся для создания документа запроса. Обычно требуется, чтобы каждый тасклет обрабатывался в отдельной функции. Чтобы каждый раздел тасклета в документе запроса отправлялся на дальнейшую обработку в отдельную функцию, воспользуйтесь оператором CASE.

  • Регистрация изменений (при необходимости). В обработчике документов приложения «Мобильные продажи» для добавления записей в журнал изменений используется функция LogInsertion из модуля Codeunit 8701 Управление мобильными документами.

В зависимости от типа документа запроса следует включить код, создающий новые записи, считывающий или обновляющий имеющиеся записи или помечающий записи для удаления. Этот код можно поместить в отдельную функцию или в ту же функцию, которая обрабатывает сам XML-документ. Не зависимо от того, куда будет помещен код, необходимо знать названия XML-элементов в документе запроса, а также таблицах Microsoft Dynamics NAV.

ПримечаниеПримечание

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

В состав Microsoft Dynamics NAV входит обработчик образцов документов, модуль Codeunit 8703 Обработчик мобильных документов, который может обрабатывать запросы на создание новых клиентов. Дополнительные сведения см. в разделе Обработка документов в модуле Codeunit 8703.

Безопасность

Для выполнения запроса обработчик документов должен убедиться в наличии у мобильного пользователя соответствующих прав доступа. Например, если входящий документ запроса предназначен для создания заказа на продажу, пользователю, отправившему данный документ, должны быть назначены роли безопасности, предоставляющие право доступа к соответствующим таблицам. Для проверки наличия у мобильного пользователя соответствующих прав доступа к каждой таблице, к которой обращается документ запроса, используется функция CheckPermission модуля Codeunit Управление правами мобильных пользователей. Функция CheckPermission вызывает расширенную хранимую процедуру в базе данных SQL Server, проверяющую права доступа на основе групп Active Directory.

Предупредительное замечаниеВнимание!

Для интеграции с решением Microsoft Dynamics Mobile необходимо, чтобы база данных Microsoft Dynamics NAV работала в соответствии с моделью повышенной безопасности. Это означает, что пользователи могут быть членами групп безопасности только в собственных доменах. Например, если организация определила два домена Active Directory, домен А и домен Б, пользователей из домена А нельзя добавить в группу безопасности из домена Б. Дополнительные сведения см. в разделе Обзор системы безопасности для мобильных функциональных возможностей в Microsoft Dynamics NAV.

См. также