[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: New to XML - Dequeue2 Request Issue



You didn't make it convenient by including extra data in your post. Many of us don't just read code, we try to code the problem ourselves!

I managed to recreate the SOAPfile data and was able to parse using your saveembed with minor tweak to create the embfile.

I saved the SOAPfile data to a file called /home/mikekr/corby.xml and changed the "data" portion to
<transactions>base64stuff</transactions>

Here is my complete program that parses corby.xml and creates embfile with what you need. Change the file names appropriately and see if you have the base64 encoded data in /tmp/OmniTracsFuleFin.soap after you run it.

h bnddir('HTTPAPI')
 /copy httpapi_h
 /copy ifsio_h
  dcl-s embfile  varchar(50);
  dcl-s soapfile varchar(50);
D SaveEmbed       PR
D   embfile                     50a   varying
D   depth                       10I 0 value
D   name                      1024A   varying const
D   path                     24576A   varying const
D   value                    32767A   varying const
D   attrs                         *   dim(32767)
D                                     const options(*varsize)

  http_debug(*on);

  soapfile = '/home/MIKEKR/corby.xml';
  embfile  = '/tmp/OmniTracsFuelFin.soap';

     if (http_parse_xml_stmf( soapfile
                          : HTTP_XML_CALC
                          : *null
                          : %paddr(SaveEmbed)
                          : %addr(embfile) ) < 0);
        // callp close(fd);
        // unlink(soapfile);
        // unlink(embfile);
         http_crash();
       endif;
   *inlr = *on;
   //  unlink(soapfile);

P SaveEmbed       B
D SaveEmbed       PI
D   embfile                     50a   varying
D   depth                       10I 0 value
D   name                      1024A   varying const
D   path                     24576A   varying const
D   value                    32767A   varying const
D   attrs                         *   dim(32767)
D                                     const options(*varsize)

D writeConst      PR            10I 0 ExtProc('write')
D  fildes                       10i 0 value
D  buf                       65535A   const options(*varsize)
D  bytes                        10U 0 value
D xmlhdr          s             80a   varying
D fd              s             10i 0
    if name = 'transactions';
    unlink(embfile);
    fd = open(embfile:O_CREAT+O_CCSID+O_WRONLY
              :S_IRUSR + S_IWUSR:819);
    callp close(fd);

    fd = open(embfile: O_WRONLY+O_TEXTDATA);
    writeConst(fd: value:  %len(value));
    callp close(fd);
    endif;
P                 e


-----Original Message-----
From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Scott Klement
Sent: Friday, December 11, 2015 8:58 AM
To: HTTPAPI and FTPAPI Projects
Subject: Re: New to XML - Dequeue2 Request Issue

Corby,

I see that a few weeks ago, you acknowledged that the data being sent to
you is base64-encoded..   As far as I can tell, however, you never call
the base64_decode() routine to decode it...   am I missing something?

-SK

On 12/11/2015 8:22 AM, corby.weaver@xxxxxxxxxxxxxxxxx wrote:
>     Here is my full code, less proprietary info.  I wouldn't normally
>     include D specs, but I want to be sure all of my bases are covered.
>     0012.00 H DFTACTGRP(*NO) BNDDIR('HTTPAPI':'QC2LE':'BASE64')
>     0013.00  /define DEBUGGING
>     0014.00
>     0020.00  /copy httpapi_h
>     0021.00  /copy base64_h
>     0022.00  /copy ifsio_h
>     0023.00
>     0024.00 D QCMDEXC         PR                  ExtPgm('QCMDEXC')
>     0025.00 D   command                  32702a   const options(*varsize)
>     0026.00 D   len                         15p 5 const
>     0027.00 D   igc                          3a   const options(*nopass)
>     0028.00
>     0029.00 D SOAP            s          32767A   varying
>     0030.00 D rc              s             10I 0
>     0031.00 D fd              s             10I 0
>     0032.00 D soapfile        s             50a   varying
>     0033.00 D embfile         s             50a   varying
>     0034.00 D fuel            ds                  likeds(fuel_t)
>     0035.00 D cmd             s            200A
>     0036.00 D wait            s              1A
>     0037.00
>     0038.00 D SaveEmbed       PR
>     0039.00 D   embfile                     50a   varying
>     0040.00 D   depth                       10I 0 value
>     0041.00 D   name                      1024A   varying const
>     0042.00 D   path                     24576A   varying const
>     0043.00 D   value                    32767A   varying const
>     0044.00 D   attrs                         *   dim(32767)
>     0045.00 D                                     const options(*varsize)
>     0046.00
>     0047.00 D fuel_t          ds                  qualified
>     0048.00 D                                     based(Template)
>     0049.00 D   vehicle                     20a   varying
>     0050.00 D   driver                      30a   varying
>     0051.00 D   comp                        30a   varying
>     0052.00
>     0053.00 D embedded        PR
>     0054.00 D   fuel                              likeds(fuel_t)
>     0055.00 D   depth                       10I 0 value
>     0056.00 D   name                      1024A   varying const
>     0057.00 D   path                     24576A   varying const
>     0058.00 D   value                    32767A   varying const
>     0059.00 D   attrs                         *   dim(32767)
>     0060.00 D                                     const options(*varsize)
>
>     0061.00 D                 ds
>
>     0062.00 D DS_TimeStamp                    z
>
>     0063.00 D  ds_curdate                   10    overlay(ds_timestamp:1)
>
>     0064.00 D  ds_curtime                   12    overlay(ds_timestamp:12)
>
>     0065.00
>
>     0066.00 D                 ds
>
>     0067.00 D DS_TimeStampB                   z
>
>     0068.00 D  ds_curdateB                  10    overlay(ds_timestampB:1)
>
>     0069.00 D  ds_curtimeB                  12    overlay(ds_timestampB:12)
>
>     0070.00
>
>     0071.00 D createdate      s             10
>
>     0072.00 D createtime      s             12
>
>     0073.00 D expiredate      s             10
>
>     0074.00 D expiretime      s             12
>
>     0075.00 D reqfrmdate      s             10
>
>     0076.00 D reqtodate       s             10
>
>     0077.00 D digit1099       s              1
>
>     0078.00
>
>     0079.00 D tokentxt        s             18a   varying
>
>     0080.00 D token64         s             24a
>     0081.00 D p_tokenUTF      s               *
>     0082.00 D utflen          s             10i 0
>     0083.00 D b64len          s             10i 0
>     0084.00 D timoffset       s              3  0
>     0085.00 D lasttrip        s              8
>     0086.00
>     0087.00 C     *entry        plist
>     0088.00 C                   parm                    timoffset
>     0089.00 C                   parm                    lasttrip
>     0090.00
>     0091.00 C                   Time                    DS_TimeStamp
>     0092.00
>     0093.00  /free
>     0094.00  /if defined(DEBUGGING)
>     0095.00    http_debug(*ON);
>     0096.00  /endif
>     0097.00    *inlr = *on;
>     0098.00
>     0099.00   DS_TimeStampB = DS_TimeStamp;
>     0100.00
>
>     0101.00   // Calculate UTC Create Time And Date
>
>     0102.00   timoffset = timoffset * -1;
>
>     0103.00   DS_TimeStamp = DS_TimeStamp + %minutes(timoffset);
>
>     0104.00   createdate = ds_curdate;
>
>     0105.00   createtime = ds_curtime;
>
>     0106.00   %subst(createtime:3:1) = ':';
>
>     0107.00   %subst(createtime:6:1) = ':';
>
>     0108.00
>
>     0109.00   // Calculate UTC Expire Time And Date
>
>     0110.00   DS_TimeStamp = DS_TimeStamp + %minutes(5);
>
>     0111.00   expiredate = ds_curdate;
>
>     0112.00   expiretime = ds_curtime;
>
>     0113.00   %subst(expiretime:3:1) = ':';
>
>     0114.00   %subst(expiretime:6:1) = ':';
>
>     0115.00
>
>     0116.00   // Calculate UTC Requested To Date
>
>     0117.00   DS_TimeStampB = DS_TimeStampB - %days(1);
>
>     0118.00   reqtodate = ds_curdateB;
>
>     0119.00
>
>     0120.00   // Calculate UTC Requested From Date
>     0121.00   DS_TimeStampB = DS_TimeStampB - %days(1);
>     0122.00   reqfrmdate = ds_curdateB;
>     0123.00
>     0124.00   http_setCCSIDs( 1208: 0 );
>     0125.00
>     0126.00   tokentxt = %triml(createdate + createtime);
>     0127.00
>     0128.00   utflen = HTTP_xlatedyn( %len(tokentxt)
>     0129.00                         : %addr(tokentxt) + 2
>     0130.00                         : TO_ASCII
>     0131.00                         : p_tokenUTF );
>     0132.00
>     0133.00   b64len = base64_encode( p_tokenUTF
>     0134.00                         : utflen
>     0135.00                         : %addr(token64)
>     0136.00                         : %size(token64) );
>     0137.00
>     0138.00   dealloc p_tokenUTF;
>     0139.00
>     0140.00   // Note:  http_debug(*ON/*OFF) can be used to turn debugging
>
>     0141.00   //        on and off.  When debugging is turned on,
>     diagnostic
>     0142.00   //        info is written to an IFS file named
>
>     0143.00   //        /tmp/httpapi_debug.txt
>
>     0144.00
>
>     0145.00   //http_debug(*ON);
>
>     0146.00
>
>     0147.00   // Note:  http_XmlStripCRLF(*ON/*OFF) controls whether or not
>
>     0148.00   //        the XML parser removes CR and LF characters from
>     the
>     0149.00   //        Xml data that's passed to your 'Incoming'
>     procedure.
>     0150.00
>
>     0151.00   http_XmlStripCRLF(*ON);
>
>     0152.00
>
>     0153.00   SOAP =
>
>     0154.00    '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'
>
>     0155.00   +'<SOAP-ENV:Envelope'
>
>     0156.00   +'
>     xmlns:SOAP-ENV="[1]http://schemas.xmlsoap.org/soap/envelope/";'
>     0157.00   +'    xmlns:web="[2]http://websvcs.otswebws";>'
>
>     0158.00   +'<SOAP-ENV:Header>'
>
>     0159.00   +'    <wsse:Security SOAP-ENV:mustUnderstand="1"'
>
>     0160.00   +'
>     xmlns:wsse="[3]http://docs.oasis-open.org/wss/2004/01/oasis-200401-'
>     0161.00   +'wss-wssecurity-secext-1.0.xsd">'
>
>     0162.00   +'    <wsu:Timestamp wsu:Id="Timestamp-6"'
>
>     0163.00   +'
>     xmlns:wsu="[4]http://docs.oasis-open.org/wss/2004/01/oasis-200401'
>     0164.00   +'-wss-wssecurity-utility-1.0.xsd">'
>
>     0165.00   +'
>     <wsu:Created>'+createdate+'T'+createtime+'Z</wsu:Created>'
>     0166.00   +'
>     <wsu:Expires>'+expiredate+'T'+expiretime+'Z</wsu:Expires>'
>     0167.00   +'    </wsu:Timestamp>'
>
>     0168.00   +'    <wsse:UsernameToken wsu:Id="UsernameToken-5" xmlns:wsu'
>
>     0169.00   +'="[5]http://docs.oasis-open.org/wss/2004/01/oasis-200401-'
>
>     0170.00   +'wss-wssecurity-utility-1.0.xsd">'
>
>     0171.00   +'    <wsse:Username>XXXXXXXXXX</wsse:Username>'
>
>     0172.00   +'    <wsse:Password Type="[6]http://docs.oasis-open.org/wss'
>
>     0173.00   +'/2004/01/oasis-200401-wss-username-token-profile-1.0'
>
>     0174.00   +'#PasswordText">XXXXXXXXXX</wsse:Password>'
>
>     0175.00   +'    <wsse:Nonce
>     EncodingType="[7]http://docs.oasis-open.org/'
>     0176.00   +'wss/2004/01/oasis-200401-wss-soap-message-security-'
>
>     0177.00   //+'1.0#Base64Binary">Qcw0k1jjcEvvrNldT3ex1A==</wsse:'
>
>     0178.00   +'1.0#Base64Binary">'+token64+'</wsse:'
>
>     0179.00   +'Nonce>'
>
>     0180.00   +'
>     <wsu:Created>'+createdate+'T'+createtime+'Z</wsu:Created>'
>     0181.00   +'    </wsse:UsernameToken>'
>
>     0182.00   +'    </wsse:Security>'
>
>     0183.00   +'</SOAP-ENV:Header>'
>
>     0184.00   +'<SOAP-ENV:Body>'
>
>     0185.00   +'    <web:dequeue2>'
>
>     0186.00   +'         <subscriberId>3</subscriberId>'
>
>     0187.00   +'         <transactionIdIn>0</transactionIdIn>'
>
>     0188.00   +'    </web:dequeue2>'
>
>     0189.00   +'</SOAP-ENV:Body>'
>
>     0190.00   +'</SOAP-ENV:Envelope>';
>
>     0191.00
>
>     0192.00   http_debug(*ON);
>
>     0193.00
>
>     0194.00     soapfile = '/tmp/OmniTracsFuelRaw.soap';
>
>     0195.00
>
>     0196.00     rc = http_url_post(
>
>     0197.00
>
>     0198.00
>     'https://services.omnitracs.com:443/otsWebWS/services/OTSWebSvcs'
>     0199.00                     : %addr(SOAP) + 2
>
>     0200.00                     : %len(SOAP)
>     0201.00                     : soapfile
>     0202.00                     : HTTP_TIMEOUT
>     0203.00                     : HTTP_USERAGENT
>     0204.00                     : 'text/xml'
>     0205.00                     : 'ETS Test');
>     0206.00
>     0207.00   if (rc <> 1);
>     0208.00      unlink(soapfile);
>     0209.00      http_crash();
>     0210.00   endif;
>     0211.00
>     0212.00   // ----------------------------------------------
>     0213.00   //   The response from the server will be in
>     0214.00   //   the IFS in a file with a unique name.
>     0215.00   //   that IFS filename is in the "tempfile"
>     0216.00   //   variable at this point.
>     0217.00   //
>     0218.00   //   For debugging purposes, display the
>     0219.00   //   contents of that file, now.
>     0220.00   // ----------------------------------------------
>     0221.00  /if defined(DEBUGGING)
>     0222.00      dsply ('Press <ENTER> to see SOAP response') ' ' wait;
>     0223.00      cmd = 'DSPF STMF(''' + soapfile + ''')';
>     0224.00      QCMDEXC(cmd: %len(cmd));
>     0225.00  /endif
>     0226.00
>     0227.00    // ----------------------------------------------
>     0228.00    //  Parse the SOAP document (the one in soapfile)
>     0229.00    //  Inside it will be another XML document that's
>     0230.00    //  embedded within -- save that to a separate
>     0231.00    //  file in the IFS.
>     0232.00    // ----------------------------------------------
>     0233.00
>     0234.00      embfile = '/tmp/OmniTracsFuelFin.soap';
>     0235.00
>     0236.00      if (http_parse_xml_stmf( soapfile
>     0237.00                             : HTTP_XML_CALC
>     0238.00                             : *null
>     0239.00                             : %paddr(SaveEmbed)
>     0240.00                             : %addr(embfile) ) < 0);
>     0241.00          callp close(fd);
>     0242.00          unlink(soapfile);
>     0243.00          unlink(embfile);
>     0244.00          http_crash();
>     0245.00      endif;
>     0246.00
>     0247.00      unlink(soapfile);
>     0248.00
>     0249.00    // ----------------------------------------------
>     0250.00    //   For the sake of debugging, display the
>     0251.00    //   contents of the embedded XML document
>     0252.00    //   (Remove from production code)
>     0253.00    // ----------------------------------------------
>     0254.00
>     0255.00  /if defined(DEBUGGING)
>     0256.00      dsply ('Press <ENTER> to see extracted XML') ' ' wait;
>     0257.00      cmd = 'DSPF STMF(''' + embfile + ''')';
>     0258.00      QCMDEXC(cmd: %len(cmd));
>     0259.00  /endif
>     0260.00
>     0261.00    // ----------------------------------------------
>     0262.00    //    Parse the second XML document (the one
>     0263.00    //    that was embedded)
>     0264.00    // ----------------------------------------------
>     0265.00      fuel = *allx'00';
>     0266.00      if (http_parse_xml_stmf( embfile
>     0267.00                             : HTTP_XML_CALC
>     0268.00                             : *null
>     0269.00                             : %paddr(Embedded)
>     0270.00                             : %addr(fuel) ) < 0);
>     0271.00          unlink(embfile);
>     0272.00          http_crash();
>     0273.00      endif;
>     0274.00
>     0275.00
>     0276.00   *inlr = *on;
>     0277.00
>     0278.00  /end-free
>     0279.00
>     0280.00 P SaveEmbed       B
>     0281.00 D SaveEmbed       PI
>     0282.00 D   embfile                     50a   varying
>     0283.00 D   depth                       10I 0 value
>     0284.00 D   name                      1024A   varying const
>     0285.00 D   path                     24576A   varying const
>     0286.00 D   value                    32767A   varying const
>     0287.00 D   attrs                         *   dim(32767)
>     0288.00 D                                     const options(*varsize)
>     0289.00
>     0290.00 D writeConst      PR            10I 0 ExtProc('write')
>     0291.00 D  fildes                       10i 0 value
>     0292.00 D  buf                       65535A   const options(*varsize)
>     0293.00 D  bytes                        10U 0 value
>     0294.00
>     0295.00 D xmlhdr          s             80a   varying
>     0296.00 D fd              s             10i 0
>     0297.00
>     0298.00  /free
>     0299.00  //    if (name <> 'GetABADetailsByRoutingNumberResult');
>     0300.00  //      return;
>     0301.00  //    endif;
>     0302.00
>     0303.00       // ------------------------------------------
>     0304.00       //   create new stream file in IFS
>     0305.00       //   tag it with CCSID 1208 (UTF-8)
>     0306.00       // ------------------------------------------
>     0307.00
>     0308.00       unlink(embfile);
>     0309.00       fd = open(embfile: O_CREAT+O_CCSID+O_WRONLY
>     0310.00                        : S_IRUSR + S_IWUSR: 819);
>     0311.00       callp close(fd);
>     0312.00
>     0313.00       // ------------------------------------------
>     0314.00       //    Open stream file for appending data
>     0315.00       //    and write embedded XML document to it
>     0316.00       // ------------------------------------------
>     0317.00
>     0318.00       fd = open(embfile: O_WRONLY+O_TEXTDATA);
>     0319.00
>     0320.00       xmlhdr= '<?xml version="1.0" encoding="UTF-8"?>' +
>     x'0d25';
>     0321.00       writeConst(fd: xmlhdr: %len(xmlhdr));
>
>     0322.00       writeConst(fd: value:  %len(value));
>
>     0323.00
>
>     0324.00       callp close(fd);
>
>     0325.00  /end-free
>
>     0326.00 P                 E
>
>     0327.00
>
>     0328.00
>
>     0329.00 P embedded        B
>
>     0330.00 D embedded        PI
>
>     0331.00 D   fuel                              likeds(fuel_t)
>
>     0332.00 D   depth                       10I 0 value
>
>     0333.00 D   name                      1024A   varying const
>
>     0334.00 D   path                     24576A   varying const
>
>     0335.00 D   value                    32767A   varying const
>
>     0336.00 D   attrs                         *   dim(32767)
>
>     0337.00 D                                     const options(*varsize)
>
>     0338.00
>
>     0339.00  /free
>
>     0340.00     select;
>     0341.00     when name = 'vehicleID';
>     0342.00        fuel.vehicle = %trimr(value);
>     0343.00     when name = 'driverName';
>     0344.00        fuel.driver = %trimr(value);
>     0345.00     when name = 'companyName';
>     0346.00        fuel.comp = %trimr(value);
>     0347.00     endsl;
>     0348.00  /end-free
>     0349.00 P                 E
>     Here are my results as seen in step 221.00:
>      ************Beginning of data**************
>
>     <soapenv:Envelope
>     xmlns:soapenv="[8]http://schemas.xmlsoap.org/soap/envelope/";
>     xmlns:soapenc="[9]http://schemas.xmlsoap.org/soap/encoding/
>     " xmlns:xsd="[10]http://www.w3.org/2001/XMLSchema";
>     xmlns:xsi="[11]http://www.w3.org/2001/XMLSchema-instance";><soapenv:Head
>     er/><soapenv:Body>
>     <p917:dequeue2Response
>     xmlns:p917="[12]http://websvcs.otswebws";><dequeue2Return><count>1</coun
>     t><transactions>PD94bWwgdmVyc2lvbj0iMS4wIi
>     BlbmNvZGluZz0iVVRGLTgiPz48dHJhbkJsb2NrPjx0cmFuIElEPSI0ODQ5MTgiIGNvbXBhb
>     nlJRD0iRkFSTkVSQk9DSyIgYXV4SUQ9IjA1NDYwNTk4MjQiPjxULjIuUk0wMS
>     4wPjxldmVudFRTPjIwMTUtMDktMjJUMjE6MzM6MDZaPC9ldmVudFRTPjxlcXVpcG1lbnQgS
>     UQ9IkJBR1VOSVQiIGVxdWlwVHlwZT0idHJhY3RvciIgdW5pdEFkZHJlc3M9Ij
>     AxMDcwNTI2OTAiIG1vYmlsZVR5cGU9IjgiLz48ZHJpdmVySUQ+VFJBSU5FUjwvZHJpdmVyS
>     UQ+PHBvc2l0aW9uIGxvbj0iLTk0LjgzNzU5MiIgbGF0PSI0Mi4wNjYwMTgiIH
>     Bvc1RTPSIyMDE1LTA5LTIyVDE0OjU0OjIyWiIvPjxwb3NUeXBlPjM8L3Bvc1R5cGU+PGlnb
>     ml0aW9uU3RhdHVzPjE8L2lnbml0aW9uU3RhdHVzPjx0cmlwU3RhdHVzPk88L3
>     RyaXBTdGF0dXM+PEdNSD4wMDEwMTgwMzE8L0dNSD48cmVjZWl2ZWRUUz4yMDE1LTA5LTIyV
>     DIxOjM2OjU2WjwvcmVjZWl2ZWRUUz48bXNnUHJpb3JpdHk+MDwvbXNnUHJpb3
>     JpdHk+PG1hY3JvQm9keT48bWFjcm9UeXBlIGRpcmVjdGlvbj0iUiIgbnVtYmVyPSIxIiB2Z
>     XJzaW9uPSIyIj5UUlVDSyBGVUVMPC9tYWNyb1R5cGU+PG1hY3JvRmllbGQgZG
>     ljdFRhZz0idmVoaWNsZUlkIj5CMDE8L21hY3JvRmllbGQ+PG1hY3JvRmllbGQgZGljdFRhZ
>     z0iZHJpdmVyTmFtZSI+QklMTFkgQk9CPC9tYWNyb0ZpZWxkPjxtYWNyb0ZpZW
>     xkIGRpY3RUYWc9ImNvbXBhbnlOYW1lIj5TUEFSS1lTIENBUlJPTEw8L21hY3JvRmllbGQ+P
>     G1hY3JvRmllbGQgZGljdFRhZz0ic3RhdGUiPklBPC9tYWNyb0ZpZWxkPjxtYW
>     Nyb0ZpZWxkIGRpY3RUYWc9ImdhbGxvbnMiPjUwPC9tYWNyb0ZpZWxkPjxtYWNyb0ZpZWxkI
>     GRpY3RUYWc9ImNvc3Qgb2YgZnVlbCI+MjAwLjAwPC9tYWNyb0ZpZWxkPjxtYW
>     Nyb0ZpZWxkIGRpY3RUYWc9IndlaWdodCI+NTAwPC9tYWNyb0ZpZWxkPjwvbWFjcm9Cb2R5P
>     jwvVC4yLlJNMDEuMD48L3RyYW4+PC90cmFuQmxvY2s+</transactions><tr
>     ansactionIdOut>484918</transactionIdOut></dequeue2Return></p917:dequeue
>     2Response></soapenv:Body></soapenv:Envelope>
>      ************End of Data********************
>     My results as seen in step 255.00
>      ************Beginning of data**************
>     <?xml version="1.0" encoding="UTF-8"?>
>      ************End of Data********************
>     When I move on to the next step, I get "XML parse failed at line 2, col
>     0, element not found."  What am I missing?
>     Thanks for the feedback.
>
>     Corby Weaver
>     From:        Mike Krebs <mkrebs@xxxxxxxxxxxxxxxxxx>
>     To:        HTTPAPI and FTPAPI Projects <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>,
>     Date:        12/07/2015 10:37 AM
>     Subject:        RE: New to XML - Dequeue2 Request Issue
>     Sent by:        ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>
> __________________________________________________________________
>
>     Nothing stands out to me...you never explained how and where "I'm
>     having an issue".
>     Post debug. Make sure to scrub proprietary or confidential information.
>     -----Original Message-----
>     From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>     [[13]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
>     corby.weaver@xxxxxxxxxxxxxxxxx
>     Sent: Wednesday, December 2, 2015 10:50 AM
>     To: HTTPAPI and FTPAPI Projects
>     Subject: RE: New to XML - Dequeue2 Request Issue
>       I've got my initial file coming in fine (Step 1).  I'm having an
>     issue
>       with Step 2, parsing the "real" data.
>       Here is my code:
>           soapfile = '/tmp/OmniTracsFuelRaw.soap';
>           rc = http_url_post(
>
>     'https://services.omnitracs.com:443/otsWebWS/services/OTSWebSvcs'
>                           : %addr(SOAP) + 2
>                           : %len(SOAP)
>                           : soapfile
>                           : HTTP_TIMEOUT
>                           : HTTP_USERAGENT
>                           : 'text/xml'
>                           : 'ETS Test');
>         if (rc <> 1);
>            unlink(soapfile);
>            http_crash();
>         endif;
>         // ----------------------------------------------
>         //   The response from the server will be in
>         //   the IFS in a file with a unique name.
>         //   that IFS filename is in the "tempfile"
>         //   variable at this point.
>         //
>         //   For debugging purposes, display the
>         //   contents of that file, now.
>         // ----------------------------------------------
>          // ----------------------------------------------
>          //  Parse the SOAP document (the one in soapfile)
>          //  Inside it will be another XML document that's
>          //  embedded within -- save that to a separate
>          //  file in the IFS.
>          // ----------------------------------------------
>            embfile = '/tmp/OmniTracsFuelFin.soap';
>            if (http_parse_xml_stmf( soapfile
>                                   : HTTP_XML_CALC
>                                   : *null
>                                   : %paddr(SaveEmbed)
>                                   : %addr(embfile) ) < 0);
>                callp close(fd);
>                unlink(soapfile);
>                unlink(embfile);
>                http_crash();
>            endif;
>            unlink(soapfile);
>       Anything stand out?  Thoughts and suggestions are appreciated.
>       Thanks!
>       Corby Weaver
>       From:        Mike Krebs <mkrebs@xxxxxxxxxxxxxxxxxx>
>       To:        HTTPAPI and FTPAPI Projects
>     <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>,
>       Date:        11/20/2015 05:09 PM
>       Subject:        RE: New to XML - Dequeue2 Request Issue
>       Sent by:        ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>         __________________________________________________________________
>       Let's break the project into steps:
>       1. Send request and receive response
>       2. Parse the IFS file saving the "real" data
>       3. Decode the "real" data
>       4. Parse the "real" data
>       See Example17 for 1, 2, and 4. To decode see Scott's Base64 or the
>       built-in support in OS400.
>       Alternatively, use WSDL2RPG as in the linked thread to do what you
>       need. It is a little harder to understand initially but it will
>       generate programs for you to modify for the service. Depending on the
>       WSDL, it might do everything you need.
>       -----Original Message-----
>       From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>       [[1][14]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
>       corby.weaver@xxxxxxxxxxxxxxxxx
>       Sent: Friday, November 20, 2015 1:05 PM
>       To: HTTPAPI and FTPAPI Projects
>       Subject: Re: New to XML - Dequeue2 Request Issue
>         Sorry, it is encoded, not encrypted.  There was a similar post a
>     few
>         years ago where the transaction portion of the XML document was
>       parsed
>         and I assume the base64 decoder worked.  Being unfamiliar with XML,
>     I
>         do not know what the code should be for my specific program.
>         Here is a link to the previous thread...
>
>     [1][2][15]https://scottklement.com/archives/ftpapi/201210/msg00121.html
>         I'm hoping someone is able to help me with the portion of code that
>         does the parse.
>         Thanks,
>         Corby Weaver
>       References
>         1.
>
> [3][16]https://scottklement.com/archives/ftpapi/201210/msg00121.html
>
>     -----------------------------------------------------------------------
>       This is the FTPAPI mailing list.  To unsubscribe, please go to:
>       [4][17]http://www.scottklement.com/mailman/listinfo/ftpapi
>
>
> ----------------------------------------------------------------------
> -
>
>     -----------------------------------------------------------------------
>       This is the FTPAPI mailing list.  To unsubscribe, please go to:
>       [5][18]http://www.scottklement.com/mailman/listinfo/ftpapi
>
>     -----------------------------------------------------------------------
>     References
>       1. [19]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>       2. [20]https://scottklement.com/archives/ftpapi/201210/msg00121.html
>       3. [21]https://scottklement.com/archives/ftpapi/201210/msg00121.html
>       4. [22]http://www.scottklement.com/mailman/listinfo/ftpapi
>       5. [23]http://www.scottklement.com/mailman/listinfo/ftpapi
>     -----------------------------------------------------------------------
>     This is the FTPAPI mailing list.  To unsubscribe, please go to:
>     [24]http://www.scottklement.com/mailman/listinfo/ftpapi
>     -----------------------------------------------------------------------
>     -----------------------------------------------------------------------
>     This is the FTPAPI mailing list.  To unsubscribe, please go to:
>     [25]http://www.scottklement.com/mailman/listinfo/ftpapi
>
> ----------------------------------------------------------------------
> -
>
> References
>
>     1. http://schemas.xmlsoap.org/soap/envelope/
>     2. http://websvcs.otswebws/
>     3. http://docs.oasis-open.org/wss/2004/01/oasis-200401-'
>     4. http://docs.oasis-open.org/wss/2004/01/oasis-200401'
>     5. http://docs.oasis-open.org/wss/2004/01/oasis-200401-'
>     6. http://docs.oasis-open.org/wss'
>     7. http://docs.oasis-open.org/'
>     8. http://schemas.xmlsoap.org/soap/envelope/
>     9. http://schemas.xmlsoap.org/soap/encoding/
>    10. http://www.w3.org/2001/XMLSchema
>    11. http://www.w3.org/2001/XMLSchema-instance
>    12. http://websvcs.otswebws/
>    13. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>    14. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>    15. https://scottklement.com/archives/ftpapi/201210/msg00121.html
>    16. https://scottklement.com/archives/ftpapi/201210/msg00121.html
>    17. http://www.scottklement.com/mailman/listinfo/ftpapi
>    18. http://www.scottklement.com/mailman/listinfo/ftpapi
>    19. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>    20. https://scottklement.com/archives/ftpapi/201210/msg00121.html
>    21. https://scottklement.com/archives/ftpapi/201210/msg00121.html
>    22. http://www.scottklement.com/mailman/listinfo/ftpapi
>    23. http://www.scottklement.com/mailman/listinfo/ftpapi
>    24. http://www.scottklement.com/mailman/listinfo/ftpapi
>    25. http://www.scottklement.com/mailman/listinfo/ftpapi
> ----------------------------------------------------------------------
> - This is the FTPAPI mailing list.  To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> ----------------------------------------------------------------------
> -
>
>
>
> -----
> No virus found in this message.
> Checked by AVG - www.avg.com
> Version: 2015.0.6176 / Virus Database: 4483/11157 - Release Date:
> 12/11/15

-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------