我正在使用BizTalk 2010,并且想知道在没有映射的情况下在业务流程中添加顺序元素。
让我们说我的业务流程收到 Message_In
:
<ns0:Employees xmlns:ns0="http://employee">
<Employee>
<FirstName>FirstName_1</FirstName>
<LastName>LastName_1</LastName>
<Age>1</Age>
</Employee>
<Employee>
<FirstName>FirstName_2</FirstName>
<LastName>LastName_2</LastName>
<Age>2</Age>
</Employee>
</ns0:Employees>
...和 Message_Default
:
<ns0:Employees xmlns:ns0="http://employee">
<Employee>
<FirstName>FirstName_Default</FirstName>
<LastName>LastName_Default</LastName>
<Age>0</Age>
</Employee>
</ns0:Employees>
我希望将这些消息汇总到单个 Message_Out
:
<ns0:Employees xmlns:ns0="http://employee">
<Employee>
<FirstName>FirstName_1</FirstName>
<LastName>LastName_1</LastName>
<Age>1</Age>
</Employee>
<Employee>
<FirstName>FirstName_2</FirstName>
<LastName>LastName_2</LastName>
<Age>2</Age>
</Employee>
<Employee>
<FirstName>FirstName_Default</FirstName>
<LastName>LastName_Default</LastName>
<Age>0</Age>
</Employee>
</ns0:Employees>
如果我尝试简单地从Message_Default
分配默认员工,则会替换Employees节点内容。是否有可能以某种方式改进此声明以追加Message_Default
的员工而非替换?
Message_Out = Message_In;
xpath(Message_Out, "/*[local-name()='Employees']")
= xpath(Message_Default, "/*[local-name()='Employees']/*[local-name()='Employee']");
P.S。我知道我可以通过多消息映射来实现这一点,但我尝试避免映射,因为我的真实消息的结构复杂。