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であるため取得していません。プロキシのみでカウントするか、順番にカウントする必要があります事前に感謝します

4

1 に答える 1

0

繰り返しを数えることはできません..あなたが今しようとしているのは、受信シーケンスで DS 応答を取得しており、その応答から値を読み取ろうとしているということです。したがって、応答を確認し、エンドポイントから取得しているものを確認してください

于 2013-06-06T08:15:57.070 に答える