Service WSO2迭代器从Workday Web服务请求多个页面

Service WSO2迭代器从Workday Web服务请求多个页面,service,proxy,iterator,wso2,Service,Proxy,Iterator,Wso2,这是我对WD的SOAP请求: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wd="urn:com.workday/bsvc"> <soapenv:Header/> <soapenv:Body> <wd:Get_Workers_Request bsvc:version="v28.0"> &

这是我对WD的SOAP请求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wd="urn:com.workday/bsvc">
   <soapenv:Header/>
   <soapenv:Body>
      <wd:Get_Workers_Request bsvc:version="v28.0">

         <!--Optional:-->
         <wd:Response_Filter>
            <!--Optional:-->
            <wd:As_Of_Effective_Date>2017-07-07</wd:As_Of_Effective_Date>
            <!--Optional:-->
            <wd:As_Of_Entry_DateTime>2017-07-07</wd:As_Of_Entry_DateTime>
            <!--Optional:-->
            <wd:Page>1</wd:Page>
            <!--Optional:-->
            <wd:Count>20</wd:Count>
         </wd:Response_Filter>
         <!--Optional:-->
         <wd:Response_Group>
            <!--Optional:-->
            <wd:Include_Personal_Information>true</wd:Include_Personal_Information>
             </wd:Response_Group>
      </wd:Get_Workers_Request>
   </soapenv:Body>
</soapenv:Envelope>

2017-07-07
2017-07-07
1.
20
真的
我需要从该请求的响应XML中提取Total Pages属性,并使用WSO2代理服务遍历和请求所有页面。下面是具有Total pages属性的部分SOAP响应:

         <wd:Response_Results>
            <wd:Total_Results>1</wd:Total_Results>
            <wd:Total_Pages>10</wd:Total_Pages>
            <wd:Page_Results>1</wd:Page_Results>
            <wd:Page>1</wd:Page>
         </wd:Response_Results>

1.
10
1.
1.
当前返回第一页、转换并写入AWS S3存储桶的WSO2代理服务。我需要对此进行增强,以解析响应,从XML中获取Total Pages属性,遍历并请求所有后续页面,然后将结果聚合到单个CSV文件中

  • 如何提取wd:Total_页面并创建迭代器
  • 递增SOAP request wd:Page值并执行代理插入序列中所示的所有步骤
在此方面的任何帮助都将不胜感激

 <?xml version="1.0" encoding="UTF-8"?>
    <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="DWHumanResourceProxy"
           startOnLoad="true"
           statistics="disable"
           trace="disable"
           transports="https">
       <target>
          <inSequence>
             <sequence key="SecurityHeader_WD_EIP_jjonesAMU3_Seq"/>
             <switch source="$trp:SOAPAction">
                <case regex="&#34;Get_Workers&#34;">
                   <log level="custom">
                      <property name="message" value="Get_Workers matched."/>
                   </log>
                   <call>
                      <endpoint key="WD_HumanResources_AMU3_Address_Endpoint"/>
                   </call>
                   <xslt description="DW Get Workers XSLT"
                         key="gov:trunk/xslt/DW_WD_HR_GetWorkers_All.xsl"/>
                   <property name="messageType"
                             scope="axis2"
                             type="STRING"
                             value="text/plain"/>
                   <property name="FORCE_SC_ACCEPTED"
                             scope="axis2"
                             type="STRING"
                             value="true"/>
                   <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
                   <property action="remove" name="Content-Encoding" scope="transport"/>
                   <amazons3.init>
                      <accessKeyId></accessKeyId>
                      <secretAccessKey></secretAccessKey>
                      <methodType>PUT</methodType>
                      <contentType>text/plain</contentType>
                      <addCharset>false</addCharset>
                      <host>s3.amazonaws.com</host>
                      <isXAmzDate>true</isXAmzDate>
                      <bucketName></bucketName>
                   </amazons3.init>
                   <amazons3.createObject>
                      <bucketUrl>http://s3.amazonaws.com</bucketUrl>
                      <objectName>WD_GetWorkers_All.csv</objectName>
                   </amazons3.createObject>
                   <log>
                      <property name="Service" value="AWS Connector test Called from GetWorkers..."/>
                   </log>
                </case>
                <default>
                   <log level="custom">
                      <property name="message" value="Invalid Action!"/>
                   </log>
                </default>
             </switch>
             <respond/>
          </inSequence>
          <outSequence>
             <send/>
          </outSequence>
          <faultSequence/>
       </target>
       <publishWSDL key="gov:/trunk/wsdls/workday/com/1.0.0/Workday_Human_Resources_DW.wsdl"/>
       <description/>
    </proxy>

放
文本/纯文本
假的
s3.amazonaws.com
真的
http://s3.amazonaws.com
WD_GetWorkers_All.csv