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

RE: New to XML - Dequeue2 Request Issue



   I resolved part of my decoding issue.  It was a case of too many
   versions of my own code.  However, I'm still running into an issue.  My
   file contains vehicle position information for our trucks.  The file is
   rather large.  The full file comes in fine.  When I go to decode, It
   gives me the first 180 or so lines fine.  After that, jumbled garbage.
    I'm bringing my encoded xml file into an ifs file.  I need to decode
   what is inside of the "transactions" tags.  My code is as follows:
   D Element_Val_t   ds                  qualified

   D                                     based(template)

   D   buf                           *

   D   len                         10i 0



      // ----------------------------------------------
      //  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);
            http_crash();
        endif;
     *inlr = *on;

      // ----------------------------------------------


   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                             likeds(Element_Val_t)

   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



   D outbuf          S          24576A

   D outlen          S             10I 0



         // ------------------------------------------

         //   create new stream file in IFS

         //   tag it with CCSID 1208 (UTF-8)

         // ------------------------------------------



     http_XmlReturnPtr(*On);



         if name = 'transactions';

         unlink(embfile);

         fd = open(embfile: O_CREAT + O_CCSID + O_WRONLY
                       : S_IRUSR + S_IWUSR
                       : 819);


         outlen = base64_decode( value.buf
                   : value.len
                   : %addr(outbuf)
                   : %size(outbuf) );

         callp write(fd: %addr(outbuf): outlen);

         callp close(fd);
         endif;
    /end-free
   P                 E
   Corby Weaver
   From:        Paul Reid <PReid@xxxxxxxxxxxx>
   To:        HTTPAPI and FTPAPI Projects <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>,
   Date:        01/21/2016 10:12 AM
   Subject:        RE: New to XML - Dequeue2 Request Issue
   Sent by:        ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
     __________________________________________________________________

   Hello again Corby.
   If you look in the example program that I posted previously, called
   DSRPERFMON, you should see a data area named ##PERFMON. This data area
   contains the Last Transaction that was received and saved from the
   previous run. If you include this Last Transaction in your next request
   you only receive data that is greater than this Last Transaction. At
   the end of each run I store the Last Transaction in the data area
   ##PERFMON and so on...This way I only get "new" data that I haven't yet
   received that I can append to my database file on our backend system. I
   believe this is doing what you are asking.
   As far as I know, with this service,  there is no way to select data
   via a date/time stamp range. I believe you have to use this Transaction
   number.
   I hope this helps.
   -----------------------------------------------------------------------
   -------------------------------
   Paul Reid
   Application Developer III
   Erb Group of Companies | 290 Hamilton Road | New Hamburg, Ontario | N3A
   1A2
   Phone: 519.662.6133 ext. 2363
   Web: [1]http://www.erbgroup.com/
   -----Original Message-----
   From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   [[2]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
   corby.weaver@xxxxxxxxxxxxxxxxx
   Sent: Thursday, January 21, 2016 10:20 AM
   To: HTTPAPI and FTPAPI Projects
   Subject: Re: New to XML - Dequeue2 Request Issue
     I've gotten some good data with my Dequeue2 requests.  Thanks for
     everyone's help.
     Can I select by date/time stamp which records I pull prior to the
     decoding process?  I only want to pull information since the previous
     request.
   -----------------------------------------------------------------------
   This is the FTPAPI mailing list.  To unsubscribe, please go to:
   [3]http://www.scottklement.com/mailman/listinfo/ftpapi
   -----------------------------------------------------------------------
   -----------------------------------------------------------------------
   This is the FTPAPI mailing list.  To unsubscribe, please go to:
   [4]http://www.scottklement.com/mailman/listinfo/ftpapi
   -----------------------------------------------------------------------

References

   1. http://www.erbgroup.com/
   2. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   3. http://www.scottklement.com/mailman/listinfo/ftpapi
   4. 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
-----------------------------------------------------------------------