我正在使用WSO2 BPS and WSO2 DSS
DSS的2 services
如下:
(1)返回状态列表和
(2)将记录插入表中。
我成功调用BPEL Workflow
的两个DSS服务。但我需要做到以下几点
我的第一个DSS将返回“状态列表”。我必须迭代(使用'forEach' or 'while'
或...)该响应并从中选择特定节点(StatusDescription
)并将其用于下一个DSS调用。我的第一个DSS回复如下。
<Response xmlns="http://ws.wso2.org/dataservice">
<Status>
<StatusId>1</StatusId>
<StatusDescription>Active</StatusDescription>
</Status>
<Status>
<StatusId>2</StatusId>
<StatusDescription>Inactive</StatusDescription>
</Status>
</Response>
有人可以建议一些教程或代码片段来迭代上面的DSS响应吗?即,我的bpel:finalCounterValue
将为“2”,因为上述XML中有2个“状态”节点。
先谢谢。
答案 0 :(得分:1)
我找到了迭代节点的方法。请在下面找到代码段。
<bpel:forEach parallel="no" counterName="Counter" name="ForEach">
<bpel:startCounterValue>
<![CDATA[1]]>
</bpel:startCounterValue>
<bpel:finalCounterValue>
<![CDATA[count($GetStatusPLResponse.parameters/ns:Status)]]>
</bpel:finalCounterValue>
<bpel:scope>
<!-- Some activity goes here. Say Assign or Invoke or .... -->
</bpel:scope>
</bpel:forEach>
命名空间count
下提供的xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
方法可帮助我们找到节点数('Status'
)。
count
方法返回值'2',因此'forEach'
迭代两次。
快乐学习。