Веб-приложение 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 (с помощью диспетчера и триггеров таблиц), так как диспетчер всегда будет возвращать вам результат операции Сообщение о погоде, отправленное из веб-приложения, было успешно обработано или нет.
Знайте, могут быть подводные камни.