|
|
|
|||||||||
|
Интеграция Microsoft Dynamics NAV и Microsoft Office InfoPathРассмотрим пример интеграции Microsoft Dynamics NAV и Microsoft Office InfoPath. В этом примере мы продемонстрируем возможность создания рабочего места по вводу данных для регистрации заказа продажи, который будет импортирован в Navision как квота продажи.
Для простоты примера мы не будем рассматривать возможности InfoPath по проверке вводимых данных и возможности программирования. Рассмотрим сценарий, при котором торговый представитель использует для регистрации заказа продажи InfoPath. После сбора информации от клиентов он организует сеанс связи с центральным офисом и передает туда данные, которые автоматически преобразовываются в квоты продажи. При этом если в системе еще нет данных по клиенту, то клиент автоматически создается в системе, и так же по товару — если нет товара, то он создается. Предположим так же, что у торгового представителя есть два файла Excel со списками клиентов и товаров из Navision. Эти файлы автоматически обновляются при сеансах обмена с центральным офисом. Торговый представитель при вводе информации вводит код клиента и код товара из списка, если они там есть, если их нет в списке, то код не заполняет и вводит данные по клиенту и товару. Эти данные будут использованы для создания новых товаров и клиентов. Определяемся со структурой данныхДля простоты примера выберем минимально необходимые данные для ввода квоты продажи:
Для формирования структуры XML файла воспользуемся
Задаем условие выгрузки, чтобы выгрузились 2 заказа продажи:
В результате получаем следующий
Создаем шаблон InfoPathНа основе полученного файла создаем шаблон в InfoPath для ввода данных. Это делается простым перетаскиванием мыши структуры
Ввод данных в InfoPathВведем данные по двум заказам, полученным от клиентов. В первом заказе укажем нового клиента и новые товары, которых еще в системе нет, во втором заказе введем клиента и товары уже имеющиеся в системе.
Сохраним данные. В результате получаем
Настройка импорта в NavisionДля настройки импорта данных нам необходимо создать объекты обмена для таблиц 36 Sales Header, 37 Sales Line, 27 Item, 18 Customer. Настраиваем связи между объектами ориентируясь на структуру имеющегося
Использование функций с нумераторамиПри загрузке нам надо присвоить номер создаваемой квоте, мы можем это сделать, используя функцию Так же это нужно сделать для клиентов и товаров. Но здесь есть нюанс — клиенты и товары могут быть как новые, так и уже присутствовать в системе. Учитывая это, при заполнении поля No таблицы Клиент мы используем функцию =iifRunFunc($X;<>;;$X;=GetNoFromSeriesNo(КЛИЕНТ)). Функция берет имеющийся код клиента из
Порядок загрузки дочерних объектовПри загрузке данных необходимо учитывать, что в момент заполнения поля код клиента или товара необходимо, чтобы они уже содержались в системе. Для этого мы настраиваем опцию загрузки After descendant для шапки и строк квоты. Опция After descendant говорит что загрузка объекта произойдет после загрузки ссылок, которые он содержит.
Заполнение полей предопределенными значениямиЗаполнение учетных, товарных, НДС групп производим с помощью констант.
Использование ValidateДля автоматического заполнения необходимых полей используем функции Validate для нужных полей. Чтобы запустить функцию в момент загрузки, нужно поставить отметку в поле Validate для нужного поля таблицы. Мы ставим отметку для полей Код Клиента, Код Товара, Просмотр результата импорта в процессе настройкиПри настройке обмена сразу проверяем результат загрузки:
Загрузка данныхДля загрузки данных выбираем пункт Import. Если в процессе загрузки будут обнаружены ошибки или предупреждения, то будет выведено сообщение. Более детальную информацию о процессе обмена можно получить, просматривая файл сообщений (лог файл) путь и название его указывается на закладке Files Path. Уровень детализации можно указать для каждого объекта в поле Log Detail.
Просмотрим результат загрузкиСозданы две квоты продажи, создан клиент и два товара — они введены в первую квоту.
Таким образом, данные из InfoPath импортируются так как нам нужно. Создание списков клиентов и товаровДля создания списка клиентов создаем объект обмена, выбираем таблицу 18 Customer, удаляем не нужные поля и производим экспорт данных.
Список товаров создается подобным же образом. В Excel мы просто открываем
Excel сохраняет информацию об источнике XML. Это позволяет, сохранив Создаем пакет обменаУ нас сейчас имеется три объекта обмена — загрузка квоты с клиентами и товарами, выгрузка клиентов и выгрузка товаров. Мы включим все эти три объекта в один пакет. Таким образом, после запуска пакета обмена мы импортируем данные о заказе клиента, если клиент новый — создадим нового клиента, если товар новый — создадим новый товар. И после этого мы экспортируем список клиентов и товаров, в который уже входят новые записи.
Этот пример демонстрирует простой способ интеграции Microsoft Dynamics NAV и Microsoft Office InfoPath. Для применения его в промышленной эксплуатации, возможно, потребуется использование средств программирования InfoPath для контроля ввода информации в формы InfoPath.
|
|||||||||
![]() |
|
|||||||||