Веб-приложение Dynamics Nav 2013

Я хочу создать веб-приложение (например, панель мониторинга), которое будет интегрировано с nav 2013. (Возьмите данные из Nav, отобразите их клиентам, а также можете обновлять или вставлять данные).

В Nav я сделал все таблицы и страницы, которые указали все условия и функции на полях.

Эти условия очень полезны, когда вы хотите вставить некоторые данные со страницы в Nav (например: после заполнения номера клиента на странице автоматически отображаются проекты для этого клиента - что очень полезно)

В Navision все работает нормально, когда вы работаете со страницами, но в моем приложении, где я использую веб-сервисы для связи с NAV, у меня много проблем, связанных с этими условиями, указанными в таблицах.

Мой вопрос заключается в том, что лучше подготовить "пустые" таблицы в nav и создать полную логику в моем веб-приложении (asp.net) или работать с логикой, которая указана в Nav?

По моему мнению:

  • Таблицы не должны иметь никакой логики, кроме некоторой базовой логики о нумерации ключей
  • все условия, предназначенные для помощи пользователю в заполнении данных, должны выполняться отдельно (отдельная логика в веб-приложении и отдельная логика на страницах в Nav)

1 ответ

Решение

На основании комментариев я бы сказал, что самое простое решение:

  • Создайте набор таблиц (давайте назовем их таблицами интеграции), которые не будут иметь никакой логики и не будут связаны с сущностями Nav (такими как Задачи или Проекты или любые другие таблицы, которые есть в вашей базе). Это будут таблицы только для общения.
  • Создать диспетчерский кодовый блок, который будет нести большую часть логики связи и преобразования данных.
  • Публиковать диспетчерский код и страницы на основе таблиц интеграции.
  • Используйте опубликованные страницы для отправки сообщений в Nav и считывания данных из Nav.
  • После каждого отправленного сообщения вызывайте метод диспетчера занавеса, чтобы делать все, что вы хотите (например, вставлять и обновлять записи в Nav)
  • Используйте функции OData, Pages или codeunit, возвращающие XML, чтобы прочитать все данные, которые необходимо отобразить в веб-формах. Мой совет: не обновляйте / вставляйте собственные таблицы Nav напрямую (через страницы), только через таблицы интеграции и диспетчер. В этом случае будет легче управлять ошибками.
  • Периодически удаляйте старые или обработанные записи из таблиц интеграции.

Это позволит вам сохранить большую часть бизнес-логики на стороне веб-приложения, но также сохранит возможность помещать некоторую общую логику (например, ограничения и т. Д.) В Nav (с помощью диспетчера и триггеров таблиц), так как диспетчер всегда будет возвращать вам результат операции Сообщение о погоде, отправленное из веб-приложения, было успешно обработано или нет.

Знайте, могут быть подводные камни.

Другие вопросы по тегам