我在MapForce 2013中创建了一个映射并导出了MFX文件。现在,我需要能够使用MapForce Server运行映射。问题是,我需要指定输入EDI文件和输出文件。据我所知,使用模式是使用MFX本身的输入/输出配置运行MapForce服务器的映射,而不是在命令行上传递。
我想我可以将输入/输出更改为某个标准文件名,然后在执行映射之前将输入文件写入该路径,然后在映射完成时从标准输出文件路径中获取输出。 / p>
但我更愿意做类似的事情:
MapForceServer run -in=MyInputFile.txt -out=MyOutputFile.xml MyMapping.mfx > MyLogFile.txt
这样的事情可能吗?也许在映射中使用参数?
答案 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秒重新检查一次。不幸的是,如果输出目标是数据库,这不起作用。