Обрабатывать много файлов EDI с помощью одного MFX

Я создал отображение в MapForce 2013 и экспортировал файл MFX. Теперь мне нужно иметь возможность запустить отображение с помощью MapForce Server. Проблема в том, что мне нужно указать как входной EDI-файл, так и выходной файл. Насколько я могу судить, схема использования заключается в запуске сопоставления с сервером MapForce с использованием конфигурации ввода / вывода в самом MFX, а не в командной строке.

Я полагаю, что я мог бы изменить ввод / вывод на некоторое стандартное имя файла, а затем просто записать входной файл в этот путь перед выполнением сопоставления, а затем получить вывод из стандартного пути выходного файла, когда сопоставление будет завершено.

Но я бы предпочел иметь возможность сделать что-то вроде:

MapForceServer run -in=MyInputFile.txt -out=MyOutputFile.xml MyMapping.mfx > MyLogFile.txt

Возможно ли что-то подобное? Возможно, используя параметры в отображении?

1 ответ

Есть два варианта, с которыми мне приходилось сталкиваться в аналогичной ситуации.

Вариант 1. Если вы установили для входного XML-файла значение *.xml в настройках компонента, mapforceserver.exe автоматически обработает все txt в каталоге, предполагая, что вашим источником является xml (это должно работать для текста точно так же). Как и в примере ниже, вы можете установить процедуру очистки для перемещения файлов в другую папку после обработки.

Примечание: он выглядит в папке, где находится файл схемы.

Вариант 2. Поскольку вы выводите XML, вы можете использовать raptorxml от Altova (набрать еще один лицензионный сбор). Теперь вы можете сгенерировать код в XSLT 2.0 и использовать пакетный файл для автоматического выполнения, что-то вроде этого.

::@echo off
for %%f IN (*.xml) DO (RaptorXML xslt --xslt-version=2 --input="%%f" --output="out/%%f" %* "mymapping.xslt"

if NOT errorlevel 1 move "%%f" processed 
if errorlevel 1 move "%%f" error)
sleep 15
mymapping.bat

Я бросил команду сна, чтобы выполнить цикл проверки для повторной проверки каждые 15 секунд. К сожалению, это не работает, если ваша выходная цель - база данных.

Другие вопросы по тегам