通过单个MFX处理许多EDI文件

时间:2014-02-18 22:11:41

标签: map-force

我在MapForce 2013中创建了一个映射并导出了MFX文件。现在,我需要能够使用MapForce Server运行映射。问题是,我需要指定输入EDI文件和输出文件。据我所知,使用模式是使用MFX本身的输入/输出配置运行MapForce服务器的映射,而不是在命令行上传递。

我想我可以将输入/输出更改为某个标准文件名,然后在执行映射之前将输入文件写入该路径,然后在映射完成时从标准输出文件路径中获取输出。 / p>

但我更愿意做类似的事情:

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

这样的事情可能吗?也许在映射中使用参数?

1 个答案:

答案 0 :(得分:0)

在处理类似情况时,我有两种选择。

选项1-如果在组件设置中将输入XML文件设置为* .xml,则mapforceserver.exe将自动处理目录中的所有txt,假设您的源是xml(这应该适用于文本相同)。与下面的示例类似,您可以设置清理例程,以便在处理后将文件移动到另一个文件夹中。

注意:它会查找架构文件所在的文件夹。

选项2 - 由于您的输出是XML,您可以使用Altova的raptorxml(支付另一个许可费)。现在,您可以在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秒重新检查一次。不幸的是,如果输出目标是数据库,这不起作用。