现在,您可以使用标准复制规则填充 partnerReference 变量的 ServiceName 和 Address 元素。确保根据空白端点引用中的定义为服务指定同一命名空间 (ns1)。<assign> 应如下所示:
<assign name="SetupPartnerlink">
<copy>
<from>
<EndpointReference
xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing"
xmlns:ns1="http://services.otn.com">
<Address/>
<ServiceName/>
</EndpointReference>
</from>
<to variable="partnerReference"/>
</copy>
<copy>
<from expression="'ns1:UnitedLoan'"/>
<to variable="partnerReference" query="/ns3:EndpointReference/ns3:ServiceName"/>
</copy>
<copy>
<from expression="'http://localhost:9700/orabpel/default/UnitedLoan'"/>
<to variable="partnerReference" query="/ns3:EndpointReference/ns3:Address"/>
</copy>
</assign>
还要注意的是,直到使用 partnerReference 变量时,才会把 LoanService.wsdl 文件添加到 bpel.xml 文件中(以便可以访问 EndpointReference 模式)。
8. 将 partnerReference 变量复制到 DynamicLoanService 合作伙伴链接中。
在 DynamicLoanService 的 SetupPartnerlink 动作和 <invoke> 之间创建一个新的 <assign>。
创建一个新副本并对它进行设置(如图 5 所示)。

图 5 创建一个新的复制规则
完成这些步骤后,将创建一个动态 BPEL 流程。该流程已经把地址指定硬编码了。可以用运行时收集的信息替换第 7 步中的最后两个复制规则来修正此种情况。图 6 中显示了 BPEL 流程示意图。

图 6 新的 BPEL 流程
