簡體   English   中英

在BPEL(WSO2 BPS)中迭代DSS響應

[英]Iterating DSS response in BPEL (WSO2 BPS)

我正在使用WSO2 BPS and WSO2 DSS
DSS 2 services以下2 services
(1)返回狀態列表和
(2)在表中插入一條記錄。

我成功地從BPEL Workflow調用了兩個DSS服務。 但是我需要實現以下目標。
我的第一個DSS將返回“狀態列表”。 我必須迭代(使用'forEach' or 'while'或...)該響應並StatusDescription選擇特定的節點( 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響應進行迭代? 即,由於上述XML中有2個“狀態”節點,因此我的bpel:finalCounterValue將為“ 2”。

提前致謝。

我找到了迭代節點的方法。 請在下面找到代碼段。

<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>  

命名空間xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"下可用的count方法可幫助我們找到節點數( 'Status' )。
count方法返回值“ 2”,因此'forEach'迭代兩次。

學習愉快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM