Механизъм за импортиране

Всички импортирани данни трябва да бъдат подготвени като таблица в един или повече XLS или DBF файлове, включително DBF, свързан с DBT файлове. Данните във файловете трябва да имат специфична структура, както е описано в подразделите Изисквания за файлове за импортиране за всеки тип импортиране.

Първа стъпка: зареждане на импортирани данни в импортирани таблици

На първия етап от импортирането данните от един или повече файлове за импортиране се прехвърлят непроменени в полетата на таблиците на базата данни MEDIALOG (таблици за импортиране) с имена IMP_, където се съхраняват временно до започване на обработката. Името на таблицата за импортиране може да бъде например IMP_SERV (файл serv.xls). Данните се зареждат от функции на ниско ниво на SQL сървъра, така че процесът на зареждане не отнема много време.

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

В основната таблица за импортиране, посочена в конфигурационните параметри, MIS MEDIALOG автоматично добавя системните полета, необходими за обработка на данни по време на импортиране:

_STATUS – състояние на обработка на запис;

_ERR_TEXT – текст за грешка при обработка на импортирания запис;

допълнителни системни полета за всеки тип импортиране.

Ако полетата за съпоставяне са посочени в конфигурационните параметри за импортиране, т.е. съответствие на параметрите на файла за импортиране и системните параметри, тогава основната таблица за импортиране ще бъде създадена с имената на системните полета и стойностите на полетата ще бъдат записани от съответните полета на файла за импортиране.

Преди всяко ново изтеглянеданните от таблицата за импортиране се изчистват от предишни записи за импортиране. Ако е необходимо, нулирайте стойността.

Втори етап: инициализиращ скрипт

След като всички входящи файлове се заредят в съответните им таблици за импортиране, се изпълнява скриптът за инициализация, който подготвя импортираните данни за бърза обработка и прехвърляне към системните таблици.

Стъпка трета: Изпълнение на SQL заявката за импортиране

Следващата стъпка, след обработката на скрипта за инициализация, е импортиране на SQL заявка, резултатът от която се съхранява в RAM. Заявката може да се генерира автоматично по време на процеса на импортиране във формата:

ИЗБЕРЕТЕ * ОТ [главна таблица за импортиране]

като се вземат предвид полетата за сортиране, посочени в конфигурационните параметри за импортиране:

ПОРЪЧКА ПО IMP_FIELD1, IMP_FIELD2. IMP_FIELDn

или генерирани отделно в статистическия модул MIS MEDIALOG и посочени в конфигурационните параметри за импортиране.

Четвърти етап: обработка на записи

След това системата последователно обработва записите, върнати от SQL заявката за импортиране, като същевременно извършва всички необходими проверки и актуализации на данните, посочени в програмния код (проверка на коректността на зададените типове данни, изтриване на „ненужни“ стойности, търсене на съвпадение на данни в базата данни и др.).

След обработка всеки импортиран запис получава статус, който се посочва в полето _STATUS на таблицата за импортиране. Основни стойности на статуса: 0 (необработен), 1 (пропуснат), 100 (успешно обработен). Други стойности коригират грешки при обработката на импортирания запис, чието описание е представено в полето _ERR_TEXT на основната таблица за импортиране. По време на обработката на запис намерените стойности на системните полета на таблицата за импортиране също се записват в таблицата за импортиране.

Характеристики на обработка на данни за всеки типвноса са дадени в съответните раздели.

Данните от успешно обработените записи влизат в системните таблици на базата данни MEDIALOG, като се вземе предвид параметърът Допълнителни полета в настройките на конфигурацията за импортиране.

Пети етап: допълнителна обработка с SQL скриптове

За всеки успешно обработен импортиран запис, веднага след добавяне на данни към системните таблици, SQL скриптът за обработка на запис се стартира за изпълнение.

Стъпка шеста: Обработка на конфликтни записи

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

  • дата и час на зареждане на данните в импортирани таблици;
  • потребителят, който е качил данните,
  • дата и час на последното импортиране на данни;
  • потребителят, който последно е извършил импортирането на данни;
  • брой записи в основната импортирана таблица;
  • брой обработени записи;
  • броя на пропуснатите записи.

В MIS MEDIALOG е зададена забрана за стартиране на импортиране по време на импортиране на същата конфигурация (т.е. стартиране на една и съща конфигурация за импортиране от няколко потребители). Блокирането на импортирането може да възникне в момента, в който потребителят стартира процеса на импортиране, а именно:

  • натиска бутона Импортиране или Зареждане на данни в прозореца за импортиране (фиг. 14.1.1),
  • щракнете върху бутона Създаване на таблици за импортиране в прозореца за настройки на конфигурацията (фиг. 14.1.2),
  • щраква върху бутона Старт в прозореца за статистика за импортиране.

Когато се опитва да рестартира импортирането с помощта на тази конфигурация, на потребителя се показва съобщение: „Това импортиране вече се изпълнявадруг потребител". В този случай са налични следните действия:

  • Изпрати съобщение - изпращане на съобщение до потребителя, извършващ импортирането;