2014-02-18 4 views
0

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

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

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

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

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

ответ

0

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

Вариант 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 секунд. К сожалению, это не работает, если целью вывода является база данных.

+0

Одна последняя записка одна из этих ... много миль от картыforce позади меня сейчас. Чтобы напрямую ответить на исходный вопрос, просто используйте * вместо имени файла для источника, и mfx будет обрабатывать все в папке. –

Смежные вопросы