0

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

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

但我更希望能够执行以下操作:

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

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

4

1 回答 1

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

我输入了一个 sleep 命令来循环批处理,以便每 15 秒重新检查一次。不幸的是,如果您的输出目标是数据库,这将不起作用。

于 2014-10-13T14:53:20.827 回答