• Обсуждения на сайте Альта-Софт

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

вопросы по работе с программным обеспечением

Модераторы: Renat, Gala, alta_olg, expert, Lemur

Ответить
Sergio73
Новый участник
Сообщения: 1
На форуме: c 09 дек 2011
Сказал: 0 ед.
Получил: 0 ед.

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

Сообщение Sergio73 »

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

Всем заранее спасибо за ответы.
warner
Почетный участник
Сообщения: 130
На форуме: c 25 фев 2010
Сказал: 14 ед.
Получил: 17 ед.

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

Сообщение warner »

Настройка->Внешние программы->Автозагрузка
Аватара пользователя
Nick
Аксакал
Сообщения: 734
На форуме: c 02 фев 2005
Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.

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

Сообщение Nick »

Дополнение:

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

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

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

Сообщение Scooter »

А если рассмотреть такой вариант.. Папка с xml файлами деклараций будет сетевая и соответственно путь для загрузки с нее файлов будет прописан на всех рабочих местах декларантов. Если в ней не будет содержатся файл eoj.txt то понятно, появятся у всех зелененькие стрелочки и кто первый нажмет, тот и загрузит декларации в SQL базу. А если он будет то не возникнет ли ошибка что несколько клиентов будут одновременно добавлять одну и ту же декларацию в общую БД?
Аватара пользователя
Nick
Аксакал
Сообщения: 734
На форуме: c 02 фев 2005
Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.

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

Сообщение 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 базы".
Аватара пользователя
Koteneff
Аксакал
Сообщения: 877
На форуме: c 13 мар 2009
Сказал: 73 ед.
Получил: 45 ед.

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

Сообщение 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


А как в базу документы положить? ) вопрос чисто для расширения кругозора )
Аватара пользователя
Nick
Аксакал
Сообщения: 734
На форуме: c 02 фев 2005
Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.

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

Сообщение Nick »

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

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

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

Сообщение Koteneff »

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

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

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

Сообщение Nick »

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

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

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