Страница 1 из 1

Как сделать автозагрузку всех xml файлов с декларациями?

Добавлено: Пт дек 09, 2011 09:14
Sergio73
Здравствуйте!
Как настроить автозагрузку всех xml файлов с декларациями в АЛЬТА ГТД?
То есть появился в каталоге xml файлик с декларацией, АЛЬТА его автоматически загрузила.

Всем заранее спасибо за ответы.

Re: Как сделать автозагрузку всех xml файлов с декларациями?

Добавлено: Пт дек 09, 2011 09:23
warner
Настройка->Внешние программы->Автозагрузка

Re: Как сделать автозагрузку всех xml файлов с декларациями?

Добавлено: Пт дек 23, 2011 14:23
Nick
Дополнение:

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

Но есть и вариант с полностью автоматической загрузкой. Для этого ваша внешняя программа по окончании записи всех *.XML должна кинуть в ту же папку файлик eoj.txt (от слова "end of job"). Его содержимое не имеет значения, можно 0 байт, все равно он сразу стирается. Это признак того, что документы надо загрузить сразу же, молча, в корневую папку. У декларанта, кстати, в этот момент программа "подвиснет", многопоточность пока не предусмотрена (есть еще над чем работать...)

Re: Как сделать автозагрузку всех xml файлов с декларациями?

Добавлено: Пн янв 16, 2012 09:41
Scooter
А если рассмотреть такой вариант.. Папка с xml файлами деклараций будет сетевая и соответственно путь для загрузки с нее файлов будет прописан на всех рабочих местах декларантов. Если в ней не будет содержатся файл eoj.txt то понятно, появятся у всех зелененькие стрелочки и кто первый нажмет, тот и загрузит декларации в SQL базу. А если он будет то не возникнет ли ошибка что несколько клиентов будут одновременно добавлять одну и ту же декларацию в общую БД?

Re: Как сделать автозагрузку всех xml файлов с декларациями?

Добавлено: Пн янв 16, 2012 10:32
Nick
Та машина которая первая увидела файл eoj.txt тут же его и стирает, а потом только выполняет загрузку. Так что может и не подерутся. В самом худшем случае на одной из машин спросит "Заменить документ?", или наоборот ругнется "файл не найден" - но это не фатально, всё равно все документы будут загружены.

С другой стороны все машины может и не должны заниматься загрузкой, достаточно в каждую смену выделить одного или двух (на случай отпуска) старших декларантов.

А еще есть интересный вариант - вместо папки использовать для передачи документов SQL-табличку с BLOB-полем для того-же по сути файла. Табличка такая:

Код: Выделить всё

CREATE TABLE [dbo].[ExtDocs] (
[DocExt] varchar(10),      // Тип файла - расширение
[DocName] varchar(50),     // Название док-та
[DocNum] varchar(50),      // Номер документа
[SendDate] datetime,       // Время пересылки
[SendFrom] varchar(16),    // Кто переслал
[SendTo] varchar(16),      // Кому предназначен или кто забрал
[GetDate] datetime,        // Во сколько забрали
[Data] image,              // бинарник док-та
[Status] int,              // Статус
[Comment] varchar(100),    // Комментарй
[DOCGUID] uniqueidentifier,    // Guid загруженного дока
[GID] uniqueidentifier NOT NULL PRIMARY KEY ROWGUIDCOL DEFAULT (newid())) ON [PRIMARY]
Обязательны для заполнения только DocExt (обычно 'XML') и Data (собственно тело документа), остальное - примечания для человека, чтобы он мог выбрать "свой" документ и загрузить только его. Вызывается той же зеленой стрелочкой (если в таблице есть незагруженные документы) или из меню "Каталог / Выгрузка-Загрузка дополнительная / Внешние док-ты из SQL базы".

Re: Как сделать автозагрузку всех xml файлов с декларациями?

Добавлено: Вт янв 17, 2012 09:43
Koteneff
Nick писал(а):Та машина которая первая увидела файл eoj.txt тут же его и стирает, а потом только выполняет загрузку. Так что может и не подерутся. В самом худшем случае на одной из машин спросит "Заменить документ?", или наоборот ругнется "файл не найден" - но это не фатально, всё равно все документы будут загружены.

С другой стороны все машины может и не должны заниматься загрузкой, достаточно в каждую смену выделить одного или двух (на случай отпуска) старших декларантов.

А еще есть интересный вариант - вместо папки использовать для передачи документов SQL-табличку с BLOB-полем для того-же по сути файла. Табличка такая:

Код: Выделить всё

CREATE TABLE [dbo].[ExtDocs] (
[DocExt] varchar(10),      // Тип файла - расширение
[DocName] varchar(50),     // Название док-та
[DocNum] varchar(50),      // Номер документа
[SendDate] datetime,       // Время пересылки
[SendFrom] varchar(16),    // Кто переслал
[SendTo] varchar(16),      // Кому предназначен или кто забрал
[GetDate] datetime,        // Во сколько забрали
[Data] image,              // бинарник док-та
[Status] int,              // Статус
[Comment] varchar(100),    // Комментарй
[DOCGUID] uniqueidentifier,    // Guid загруженного дока
[GID] uniqueidentifier NOT NULL PRIMARY KEY ROWGUIDCOL DEFAULT (newid())) ON [PRIMARY]
Обязательны для заполнения только DocExt (обычно 'XML') и Data (собственно тело документа), остальное - примечания для человека, чтобы он мог выбрать "свой" документ и загрузить только его. Вызывается той же зеленой стрелочкой (если в таблице есть незагруженные документы) или из меню "Каталог / Выгрузка-Загрузка дополнительная / Внешние док-ты из SQL базы".
Comment


А как в базу документы положить? ) вопрос чисто для расширения кругозора )

Re: Как сделать автозагрузку всех xml файлов с декларациями?

Добавлено: Вт янв 17, 2012 10:35
Nick
Koteneff писал(а):А как в базу документы положить? ) вопрос чисто для расширения кругозора )
Пустая структура таблицы [dbo].[ExtDocs] создается при первом обращении к меню "Каталог / Выгрузка-Загрузка дополнительная / Внешние док-ты из SQL базы".

А добавлять в таблицу записи и заливать XML-документ в поле DATA должна крутая ERP-система типа SAP/R3. Программисты таких вещей обычно кривятся при виде "общей папочки на файл-сервере", а подключение к MS SQL и запись в таблицу выглядит уже немного приличнее. Хотя были уже и просьбы наладить web-сервис...

Re: Как сделать автозагрузку всех xml файлов с декларациями?

Добавлено: Вт янв 17, 2012 11:59
Koteneff
Nick писал(а):
Koteneff писал(а):А как в базу документы положить? ) вопрос чисто для расширения кругозора )
Пустая структура таблицы [dbo].[ExtDocs] создается при первом обращении к меню "Каталог / Выгрузка-Загрузка дополнительная / Внешние док-ты из SQL базы".

А добавлять в таблицу записи и заливать XML-документ в поле DATA должна крутая ERP-система типа SAP/R3. Программисты таких вещей обычно кривятся при виде "общей папочки на файл-сервере", а подключение к MS SQL и запись в таблицу выглядит уже немного приличнее. Хотя были уже и просьбы наладить web-сервис...
т.е. по сути в бинарном виде можно любой документ заснуть ? и word'оский ?

Re: Как сделать автозагрузку всех xml файлов с декларациями?

Добавлено: Вт янв 17, 2012 12:34
Nick
Koteneff писал(а):т.е. по сути в бинарном виде можно любой документ заснуть ? и word'оский ?
Нет конечно, при чем тут бинарный?

Это полный аналог папки для автозагрузки файлов с документами (ГТД и ЭД) из внешней программы. Читает то что умеет - *.GTD, *.XML, *.INI (в формате Заполнителя). Просто некоторым интеграторам не нравится именно "общая папка". Вот для них сделано то же самое, но типа "в базе данных".

А word-документ в таможню не передать никак - не принимает она их. То что в "ЭД-Универсальном" сделали как-бы вложение word-файла - так она из него вытягивает только текст. С таблицами, если есть, но без картинок и форматирования. XSD-схему не обманешь, ничего левого в таможню транспортная система не пускает.