BVSoft

Программное обеспечение для торговых предприятий

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

В системе периодически запускается скрипт: importprices.pas. Он может быть запущен согласно настройкам периодики в установках программы на закладке "Периодика", либо из пользовательского меню, либо отдельной задачей в любом планировщике заданий, например, в Планировщике заданий Windows, с использованием командной строки вида: "solprice.exe -script importprices.pas -exit".

На текущий момент скрипт производит 2 типа (цикла) поисков:

  • Первый цикл: скрипт  обходит весь список шапок прайс-листов, и там, где в качестве "шаблона прайс-листа" указана http://-ссылка, произведет загрузку файлов с указанного http://-ресурса и передаст их специализированным скриптам загрузки.
  • Второй вариант: он сканирует  каталог файлов входящей почты, где предполагается наличие новых файлов прайс-листов, полученных из почты и выгруженных в этот каталог. В случае использования программы MailProcessor все полученные на ее почтовый ящик файлы выкладываются в таком каталоге, разложенные по подкаталогам, для каждой фирмы, и далее, возможно, по подкаталогам-датам. За основу берется последний из полученных файлов прайс-листов и передается специализированному скрипту импорта. Обрабатываются только файлы, совпадающие по шаблону прайс-листа с указанными в настройках прайс-листов, так как в каталоге входящей почты может быть и другая корреспонденция. Обработанные файлы удаляются.

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

Пример скрипта импорта: ImportPriceFarmcentr.pas

Объект TPriceLoader содержит список свойств - имен полей, соответствующих собственным. Задача скрипта, в первую очередь - заполнить этот список, например:

Field_Name_GOODS := 'Наименование';

- сообщает объекту TPriceLoader, что загружаемая таблица имеет поле "наименование", значения которого будут использоваться как наименование товара.

Далее скрипт либо передает управление основному скрипту, который загружает данные, либо формирует временный файл, более удобный для чтения, и передает его в объект TPriceLoader.