0

我从前端获取数组列表,我需要使用 Wso2esb 和 dss 将其插入表中,我几乎使用迭代器完成了该功能。每当插入该数组列表时,我都需要对前端做出响应。我希望计算迭代次数的任何对象,我的代码是这样的

<iterate continueParent="true"
                        id="QuestionListMobile"
                        expression="//QuestionsList">
                  <target>
                     <sequence>
                        <property name="ttemplateformid"
                                  expression="get-property('ttemplateformid')"
                                  scope="default"
                                  type="STRING"/>
                        <payloadFactory>
                           <format>
                              <p:Insert_ttemplatedetails_Mobile_Op xmlns:p="http://ws.wso2.org/dataservice">
                                 <xs:templateformid xmlns:xs="http://ws.wso2.org/dataservice">$1</xs:templateformid>
                                 <xs:formtemplatesectiondetailid xmlns:xs="http://ws.wso2.org/dataservice">$2</xs:formtemplatesectiondetailid>
                                 <xs:questionid xmlns:xs="http://ws.wso2.org/dataservice">$3</xs:questionid>
                                 <xs:weightage xmlns:xs="http://ws.wso2.org/dataservice">0</xs:weightage>
                                 <xs:rank xmlns:xs="http://ws.wso2.org/dataservice">$4</xs:rank>
                                 <xs:score xmlns:xs="http://ws.wso2.org/dataservice">$5</xs:score>
                                 <xs:remarks xmlns:xs="http://ws.wso2.org/dataservice">$6</xs:remarks>
                                 <xs:feedback xmlns:xs="http://ws.wso2.org/dataservice">$7</xs:feedback>
                              </p:Insert_ttemplatedetails_Mobile_Op>
                           </format>
                           <args>
                              <arg expression="get-property('ttemplateformid')"/>
                              <arg expression="//sectionQuestionMapId/text()"/>
                              <arg expression="//QuestionId/text()"/>
                              <arg expression="//Rank/text()"/>
                              <arg expression="//answer/text()"/>
                              <arg expression="//remark/text()"/>
                              <arg expression="//Feedback/text()"/>
                           </args>
                        </payloadFactory>
                        <log level="full"/>
                        <send receive="QuestionsInsertion_Seq3">
                           <endpoint>
                              <address uri="http://localhost:9764/services/ttemplatesectiondetail_DataService/"
                                       format="soap11"/>
                           </endpoint>
                        </send>
                        <log level="full"/>
                     </sequence>
                  </target>
               </iterate>

我做得很好我怎么知道上面有多少个数组

<sequence xmlns="http://ws.apache.org/ns/synapse"
          name="QuestionsInsertion_Seq3"
          onError="fault">
   <property name="FORCE_ERROR_ON_SOAP_FAULT"
             value="true"
             scope="axis2"
             type="STRING"/>
   <property xmlns:f="http://ws.wso2.org/dataservice"
             xmlns:ns="http://org.apache.synapse/xsd"
             name="ttemplatedetailid"
             expression="//f:ttemplatedetailid/text()"
             scope="default"
             type="STRING"/>
   <log>
 <property xmlns:ns="http://org.apache.synapse/xsd"
             name="Total"
             expression="count(//QuestionId/text())"
             scope="default"
             type="STRING"/>
      <property xmlns:f="http://ws.wso2.org/dataservice"
                xmlns:ns="http://org.apache.synapse/xsd"
                name="ttemplatedetailid"
                expression="//f:ttemplatedetailid/text()"/>
   </log>

我正在记录 QuesionId 计数,但我没有得到,因为总数为 1.0,我只需要提前计算代理或序列 thanx

4

1 回答 1

0

您无法计算迭代次数。您现在正在尝试的是,您在接收序列中获得 DS 响应,并且您试图从响应中读取一个值。所以,检查你的回复,看看你从端点得到了什么

于 2013-06-06T08:15:57.070 回答