Навигация:  МОДУЛЬ "АПТЕКА" > ИМПОРТ ДАННЫХ МОДУЛЯ "АПТЕКА" В МЕДИАЛОГ > Импорт приходов от поставщиков > Конфигурация импорта >

SQL-скрипт (обработка записи)

Предыдущая страницаВернуться в начало главыСледующая страница

В процессе импорта система последовательно обрабатывает записи, возвращенные SQL-запросом импорта, при этом производятся все необходимые проверки и обновления данных, заданные в коде программы, и заполнение системных полей в основной таблице импорта (подробнее см. Механизм импорта). В результате в базе данных МЕДИАЛОГ создаются приходные накладные и обновляются позиции существующих накладных.

Если есть необходимость дополнительной обработки каждой импортируемой записи после добавления данных в системные таблицы (т.е. сразу после создания или обновления накладной), то в окне Настройка импорта на вкладке SQL (обработка записи) (рис. 9.5.9) можно указать SQL-скрипт.

 Рисунок 9.5.9. SQL (обработка записи)


Рисунок 9.5.9. SQL (обработка записи)

Для написания скрипта используется синтаксис языка SQL. Для обращения к текущей записи таблицы импорта используется параметр :IMPORT_RECORD_ID. Использование оператора GO не поддерживается при выполнении скрипта обработки.

Пример скрипта обработки записи

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

declare @med_name as varchar(250)

set @med_name = (select name from imp_protek where imp_protek_id = :IMPORT_RECORD_ID)

 

declare @med_id as integer

set @med_id = (select _dm_meds_id from imp_protek where imp_protek_id = :IMPORT_RECORD_ID)

 

if  not exists (select * from imp_protek_meds where imp_meds_id = @med_name)

insert into imp_protek_meds values (@med_name, @med_id)