我的任务是映射输入xml(实际上是SAP idoc xml),并生成许多平面文件。每个输入xml可能会产生多个输出文件(每个批号一个输出文件),因此我将根据批号在映射中使用xsl:key和key()函数
问题是,批号本身将不在文件本身中,但是输出文件名需要包含该批号值。
所以问题确实是:我可以将批号映射到xml,并让平面文件汇编器在生成文件时跳过它吗?还是有另一种方法可以将批号用作程序集的文件名,而不用放在文件本身中?
答案 0 :(得分:2)
在业务流程中,您可以为每个输出消息设置上下文属性:
msgOutput(FILE.ReceivedFileName) = "DynamicStuff";
msgOutput然后转到发送形状。 在发送端口中,您可以这样设置输出文件:
FixedStuff_%SourceFileName%.xml
结果:
FixedStuff_DynamicStuff.xml
答案 1 :(得分:1)
奖金:在xslt中进行排序和分组非常笨拙,这就是为什么我不再这样做了。相反,您可以使用SQL:BizTalk: Sorting and Grouping Flat File Data In SQL Instead of XSL