Здравствуйте!
Как настроить автозагрузку всех xml файлов с декларациями в АЛЬТА ГТД?
То есть появился в каталоге xml файлик с декларацией, АЛЬТА его автоматически загрузила.
Всем заранее спасибо за ответы.
-
-
Обсуждения на сайте Альта-Софт
-
Как сделать автозагрузку всех xml файлов с декларациями?
Модераторы: Renat, Gala, alta_olg, expert, Lemur
Re: Как сделать автозагрузку всех xml файлов с декларациями?
Настройка->Внешние программы->Автозагрузка
- Nick
- Аксакал
- Сообщения: 734
- На форуме: c 02 фев 2005
- Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.
Получил: 124 ед.
Re: Как сделать автозагрузку всех xml файлов с декларациями?
Дополнение:
Обычно загрузка из данной папки происходит не совсем автоматически. При наличии в папке файлов в списке появляется кнопка "зеленая стрелка" и по ней уже человек их загружает. Во-первых он может сперва выбрать в какую папку загрузить. Во-вторых сразу после загрузки показывается список что загрузилось, и тут же можно их посмотреть.
Но есть и вариант с полностью автоматической загрузкой. Для этого ваша внешняя программа по окончании записи всех *.XML должна кинуть в ту же папку файлик eoj.txt (от слова "end of job"). Его содержимое не имеет значения, можно 0 байт, все равно он сразу стирается. Это признак того, что документы надо загрузить сразу же, молча, в корневую папку. У декларанта, кстати, в этот момент программа "подвиснет", многопоточность пока не предусмотрена (есть еще над чем работать...)
Обычно загрузка из данной папки происходит не совсем автоматически. При наличии в папке файлов в списке появляется кнопка "зеленая стрелка" и по ней уже человек их загружает. Во-первых он может сперва выбрать в какую папку загрузить. Во-вторых сразу после загрузки показывается список что загрузилось, и тут же можно их посмотреть.
Но есть и вариант с полностью автоматической загрузкой. Для этого ваша внешняя программа по окончании записи всех *.XML должна кинуть в ту же папку файлик eoj.txt (от слова "end of job"). Его содержимое не имеет значения, можно 0 байт, все равно он сразу стирается. Это признак того, что документы надо загрузить сразу же, молча, в корневую папку. У декларанта, кстати, в этот момент программа "подвиснет", многопоточность пока не предусмотрена (есть еще над чем работать...)
Re: Как сделать автозагрузку всех xml файлов с декларациями?
А если рассмотреть такой вариант.. Папка с xml файлами деклараций будет сетевая и соответственно путь для загрузки с нее файлов будет прописан на всех рабочих местах декларантов. Если в ней не будет содержатся файл eoj.txt то понятно, появятся у всех зелененькие стрелочки и кто первый нажмет, тот и загрузит декларации в SQL базу. А если он будет то не возникнет ли ошибка что несколько клиентов будут одновременно добавлять одну и ту же декларацию в общую БД?
- Nick
- Аксакал
- Сообщения: 734
- На форуме: c 02 фев 2005
- Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.
Получил: 124 ед.
Re: Как сделать автозагрузку всех xml файлов с декларациями?
Та машина которая первая увидела файл eoj.txt тут же его и стирает, а потом только выполняет загрузку. Так что может и не подерутся. В самом худшем случае на одной из машин спросит "Заменить документ?", или наоборот ругнется "файл не найден" - но это не фатально, всё равно все документы будут загружены.
С другой стороны все машины может и не должны заниматься загрузкой, достаточно в каждую смену выделить одного или двух (на случай отпуска) старших декларантов.
А еще есть интересный вариант - вместо папки использовать для передачи документов SQL-табличку с BLOB-полем для того-же по сути файла. Табличка такая:Обязательны для заполнения только DocExt (обычно 'XML') и Data (собственно тело документа), остальное - примечания для человека, чтобы он мог выбрать "свой" документ и загрузить только его. Вызывается той же зеленой стрелочкой (если в таблице есть незагруженные документы) или из меню "Каталог / Выгрузка-Загрузка дополнительная / Внешние док-ты из SQL базы".
С другой стороны все машины может и не должны заниматься загрузкой, достаточно в каждую смену выделить одного или двух (на случай отпуска) старших декларантов.
А еще есть интересный вариант - вместо папки использовать для передачи документов 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]
Re: Как сделать автозагрузку всех xml файлов с декларациями?
CommentNick писал(а):Та машина которая первая увидела файл eoj.txt тут же его и стирает, а потом только выполняет загрузку. Так что может и не подерутся. В самом худшем случае на одной из машин спросит "Заменить документ?", или наоборот ругнется "файл не найден" - но это не фатально, всё равно все документы будут загружены.
С другой стороны все машины может и не должны заниматься загрузкой, достаточно в каждую смену выделить одного или двух (на случай отпуска) старших декларантов.
А еще есть интересный вариант - вместо папки использовать для передачи документов SQL-табличку с BLOB-полем для того-же по сути файла. Табличка такая:Обязательны для заполнения только DocExt (обычно 'XML') и Data (собственно тело документа), остальное - примечания для человека, чтобы он мог выбрать "свой" документ и загрузить только его. Вызывается той же зеленой стрелочкой (если в таблице есть незагруженные документы) или из меню "Каталог / Выгрузка-Загрузка дополнительная / Внешние док-ты из SQL базы".Код: Выделить всё
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]
А как в базу документы положить? ) вопрос чисто для расширения кругозора )
- Nick
- Аксакал
- Сообщения: 734
- На форуме: c 02 фев 2005
- Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.
Получил: 124 ед.
Re: Как сделать автозагрузку всех xml файлов с декларациями?
Пустая структура таблицы [dbo].[ExtDocs] создается при первом обращении к меню "Каталог / Выгрузка-Загрузка дополнительная / Внешние док-ты из SQL базы".Koteneff писал(а):А как в базу документы положить? ) вопрос чисто для расширения кругозора )
А добавлять в таблицу записи и заливать XML-документ в поле DATA должна крутая ERP-система типа SAP/R3. Программисты таких вещей обычно кривятся при виде "общей папочки на файл-сервере", а подключение к MS SQL и запись в таблицу выглядит уже немного приличнее. Хотя были уже и просьбы наладить web-сервис...
Re: Как сделать автозагрузку всех xml файлов с декларациями?
т.е. по сути в бинарном виде можно любой документ заснуть ? и word'оский ?Nick писал(а):Пустая структура таблицы [dbo].[ExtDocs] создается при первом обращении к меню "Каталог / Выгрузка-Загрузка дополнительная / Внешние док-ты из SQL базы".Koteneff писал(а):А как в базу документы положить? ) вопрос чисто для расширения кругозора )
А добавлять в таблицу записи и заливать XML-документ в поле DATA должна крутая ERP-система типа SAP/R3. Программисты таких вещей обычно кривятся при виде "общей папочки на файл-сервере", а подключение к MS SQL и запись в таблицу выглядит уже немного приличнее. Хотя были уже и просьбы наладить web-сервис...
- Nick
- Аксакал
- Сообщения: 734
- На форуме: c 02 фев 2005
- Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.
Получил: 124 ед.
Re: Как сделать автозагрузку всех xml файлов с декларациями?
Нет конечно, при чем тут бинарный?Koteneff писал(а):т.е. по сути в бинарном виде можно любой документ заснуть ? и word'оский ?
Это полный аналог папки для автозагрузки файлов с документами (ГТД и ЭД) из внешней программы. Читает то что умеет - *.GTD, *.XML, *.INI (в формате Заполнителя). Просто некоторым интеграторам не нравится именно "общая папка". Вот для них сделано то же самое, но типа "в базе данных".
А word-документ в таможню не передать никак - не принимает она их. То что в "ЭД-Универсальном" сделали как-бы вложение word-файла - так она из него вытягивает только текст. С таблицами, если есть, но без картинок и форматирования. XSD-схему не обманешь, ничего левого в таможню транспортная система не пускает.
Следующие пользователи поблагодарили Nick за это собщение: Koteneff