Error using Nested Data Queries in WSO2 Dataservice

37 views Asked by At

I tried to use Nested Data Queries to get a JSON Format response as below :

    [
   {
      "codeClient":"string",
      "refCompteFacturation":"string",
      "refCommande":"string",
      "canalEntree":"string",
      "typeCommande":"string",
      "prepaye":"string",
      "refContrat":"string",
      "codeOffre":"string",
      "refContratBoutique":"string",
      "origineContrat":"string",
      "libelleOrigine":"string",
      "dateDebut":"DateTime",
      "dateFin":"DateTime",
      "detailCommande":[
         {
            "codeProduit":"string",
            "prixHT":0,
            "prixTTC":0,
            "modeRemise":"string",
            "remiseEnPourcentage":0,
            "montantRemise":0,
            "quantite":0,
            "demandeInstallation":"string",
            "dateDebut":"DateTime",
            "dateFin":"DateTime",
            "refdemandeTT":"string"
         }
      ]
   }
]

This is my configuration i have used :

   <query id="consultationDetailCommande" useConfig="mscrm">
          <sql><![CDATA[select *********** 
    where SalesOrderid =  :filterQuery ]]></sql>
          <result outputType="json">{
         "accounts":  
                  { "account" :
    [{
    "codeProduit": "$productnumber",
     "prixHT": "$PrixHT",
     "prixTTC": "$PrixTTC",
     "modeRemise": "$ModeRemise",
     "remiseEnPourcentage": "$RemisePourcentage",
     "montantRemise": "$montantR",
     "quantite": "$Quantite",
     "demandeInstallation": "$demandeinstallation",
     "dateDebut": "$datedebut" ,
     "dateFin": "$datefin" ,
     "refdemandeTT": "$refDemandeTT",
     "SalesOrderid": "$SalesOrderid"
     
    }]
    }
    
    }</result>
    <param name="filterQuery" sqlType="QUERY_STRING"/>
       </query>
           <query id="consultationCommande" useConfig="mscrm">
        <sql><![CDATA[select ****************
    where s.new_typedecommande=1 :filterQuery ]]></sql>
        <result outputType="json">
        {
         "accounts":  
                  { "account" :
    [{
    "codeClient":"$new_codeClient",
    "SalesOrderid":"$SalesOrderid",
    "refCompteFacturation": "$new_comptedefacturationidName",
    "refCommande": "$refCommande",
     "canalEntree": "$canalEntree",
     "typeCommande": "$typedecontrat",
     "prepaye": "$prepaye",
     "refContrat": "$refContrat",
     "codeOffre": "$refOffre",
     "refContratBoutique": "$new_referencecontratboutique",
     "origineContrat": "$origineContrat",
     "libelleOrigine": "$new_revendeurIdName",
     "dateDebut": "$new_datedebutducontrat" ,
     "dateFin": "$new_datefinducontrat",
     "@consultationDetailCommande": "$SalesOrderid->SalesOrderid"
    }]
    }
    }</result>
    <param name="filterQuery" sqlType="QUERY_STRING"/>
      </query>

but it didn't work and i got errors like below ,so is there any issue in my dataservice configuration :

    at org.apache.axis2.json.gson.factory.XmlNodeGenerator.processSchemaType(XmlNodeGenerator.java:167)
    at org.apache.axis2.json.gson.factory.XmlNodeGenerator.processElement(XmlNodeGenerator.java:138)

[2023-08-03 17:09:40,812] ERROR {PassThroughHttpSender} - Failed to submit the response org.apache.axis2.AxisFault
    at org.wso2.micro.integrator.core.json.JsonStreamFormatter.writeTo(JsonStreamFormatter.java:113)
    at org.apache.synapse.transport.passthru.PassThroughHttpSender.submitResponse(PassThroughHttpSender.java:595)

I followed the official documentation :

https://apim.docs.wso2.com/en/latest/integrate/examples/data_integration/nested-queries-in-data-service/

0

There are 0 answers