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

SQL-скрипт (подготовка)

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

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

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

 Рисунок 9.5.6. SQL (подготовка)


Рисунок 9.5.6. SQL (подготовка)

При написании скрипта используется синтаксис языка SQL, в том числе, поддерживается использование оператора GO.

Оператор GO всегда должен идти в отдельной строке. Оператор GO поддерживается только в скрипте инициализации.

Пример скрипта инициализации

Пример использования данного скрипта – загрузка в таблицу импорта связей номенклатуры приходов поставщиков с номенклатурой справочника товаров (сохраненной при предыдущих импортах через SQL-скрипт обработки записей импорта – см. SQL-скрипт (обработка записи)).

Приведенный ниже скрипт проверяет наличие таблицы связи номенклатур и при отсутствии таковой создает ее. В случае, если таблица существует, производится сопоставление номенклатур в таблице импорта и таблице связей номенклатур и загрузка в таблицу импорта идентификаторов номенклатур справочника товаров для найденных соответствий.

update imp_protek set code = p1.name from imp_protek p1

 

update imp_protek set vat = 0

 

IF  NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[IMP_PROTEK_MEDS]') AND type in (N'U'))

begin

 CREATE TABLE [dbo].[IMP_PROTEK_MEDS](

         [IMP_PROTEK_MEDS_ID] [int] IDENTITY(1,1) NOT NULL,

         [IMP_MEDS_ID] [varchar](64) NOT NULL,

         [DM_MEDS_ID] [int] NOT NULL

 ) ON [PRIMARY]

 

 ALTER TABLE [dbo].[IMP_PROTEK_MEDS]  WITH CHECK ADD  CONSTRAINT [FK_IMP_PROTEK_MEDS_DM_MEDS] FOREIGN KEY([DM_MEDS_ID])

 REFERENCES [dbo].[DM_MEDS] ([DM_MEDS_ID])

 

 ALTER TABLE [dbo].[IMP_PROTEK_MEDS] CHECK CONSTRAINT [FK_IMP_PROTEK_MEDS_DM_MEDS]

end

else

update imp_protek set _dm_meds_id = ipm.dm_meds_id from imp_protek_meds ipm where name = ipm.imp_meds_id