Tue Aug 16, 2022 10:32 pm
Login Register Lost Password? Contact Us

Please Note: The HPCC Systems forums are moving to Stack Overflow. We invite you to post your questions on Stack Overflow utilizing the tag hpcc-ecl (https://stackoverflow.com/search?tab=newest&q=hpcc-ecl). This legacy forum will be active and monitored during our transition to Stack Overflow but will become read only beginning September 1, 2022.



FORMATXML

Comments and questions related to the Enterprise Control Language

Mon Mar 18, 2019 4:54 pm Change Time Zone

I am writing ECL SOAPCALL where I need to pass a array of string in the SOAP request. I am not getting appropriate response. However I tried FORMATXML to see the request XML is framed correctly from my layout definition. While parsing the node 'arr:string', I am not getting the XML node values in the FORMAT XML output.

Could you please look in ?


Code: Select all
layout := RECORD
      STRING         arrString                            {   XPATH('arr:string'                        )   }   ; 
END ;

   arrstring := RECORD
      DATASET(layout) arrStatusstr {   XPATH('arr:string'                        )   }    ; 
   END ;   

   rStatusCodes      :=    RECORD
      STRING         AfterTimeStamp             {   XPATH('dapp:AfterTimeStamp'      )   }         ;
      arrstring      StatusCodes                  { XPATH('dapp:StatusCodes'            )   }               ;
   END   ;
   
   rRecordReqGetRec      :=    RECORD
      rStatusCodes         RecordReqGetRec                               {   XPATH('dapp:RecordReqGetRec'      )   }                              ;                        
   END   ;
   
   rLex         :=    RECORD
      rRecordReqGetRec          Request             {   XPATH('dapp:Request'                        )   }                              ;
      STRING          dappIDD                         {   XPATH('dapp:IDD'                           )   }         ;   
   END   ;

   rRequest   :=    RECORD
      rLex            Request                           {   XPATH('test:request'                        )   }                              ;
   END   ;
   
   
req := '<ROW>'+
         '<test:request> '+
            '<dapp:IDD>16212321321j321n3kj21j3kn213</dapp:IDD>'+
            '<dapp:Request>'+
               '<dapp:RecordReqGetRec>'+
               '<dapp:AfterTimeStamp>2018-03-11</dapp:AfterTimeStamp>'+
               '<dapp:StatusCodes>'+
                  '<arr:string>NFFF</arr:string>'+
                  '<arr:string>NPPP</arr:string>'+
               '</dapp:StatusCodes>'+
            '</dapp:RecordReqGetRec>'+
         '</dapp:Request>'+
      '</test:request>'+
'</ROW>';   
   
   request1 := DATASET([FROMXML(rRequest,req)],rRequest);
   request1;
ravishankar
 
Posts: 17
Joined: Wed Mar 18, 2015 5:24 am

Tue Mar 26, 2019 8:18 pm Change Time Zone

ravishankar,

The XPATHs in your RECORD structures are the problem. It works correctly this way:
Code: Select all
layout := RECORD
  STRING arrString{XPATH('')}; // get self..
END;
rLex := RECORD
  STRING dappIDD{XPATH('test:request/dapp:IDD')}; 
  STRING  AfterTimeStamp
      {XPATH('test:request/dapp:Request/dapp:RecordReqGetRec/dapp:AfterTimeStamp')};
  DATASET(Layout) StatusCodes
{XPATH('test:request/dapp:Request/dapp:RecordReqGetRec/dapp:StatusCodes/arr:string')};
END;
req := '<ROW>'+
         '<test:request> '+
            '<dapp:IDD>16212321321j321n3kj21j3kn213</dapp:IDD>'+
            '<dapp:Request>'+
               '<dapp:RecordReqGetRec>'+
                  '<dapp:AfterTimeStamp>2018-03-11</dapp:AfterTimeStamp>'+
                  '<dapp:StatusCodes>'+
                     '<arr:string>NFFF</arr:string>'+
                     '<arr:string>NPPP</arr:string>'+
                  '</dapp:StatusCodes>'+
               '</dapp:RecordReqGetRec>'+
            '</dapp:Request>'+
         '</test:request>'+
       '</ROW>';   
   
   FROMXML(rLex,req);
   request1 := DATASET([FROMXML(rLex,req)],rLex);
   request1;


HTH,

Richard
rtaylor
Community Advisory Board Member
Community Advisory Board Member
 
Posts: 1619
Joined: Wed Oct 26, 2011 7:40 pm


Return to ECL

Who is online

Users browsing this forum: No registered users and 1 guest

cron