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

Re: java.lang.RuntimeException: Invocation of program failed.AS400Message (ID: CPF9897 text: XML parse failed at line 1, col 2: not well-formed (invalid token)):com.ibm.as400.access.AS400Message@34ce34ce



   Hi Kevin,
   Yes, you're right there appears to be a bug in the HTTP_XML_STMF
   support that's preventing it from properly enabling translation -- so
   for this reason, HTTP_XML_STMF is giving the same results as
   HTTP_XML_CALC.  I will fix this for the next beta/release of HTTPAPI.
   In the mean time there are two ways to work around the problem (these
   are alternatives, please do not try to do both, just one or the other)
   1) Hard-code the CCSID in the call to http_parse_xml_stmf() such as:
     rc = http_parse_xml_stmf( wFile
          : 37
          : %paddr(StartOfElement)
          : %paddr(EndOfElement)
          : *Null);

   In this case, HTTPAPI will not try to calculate the CCSID at all, it'll
   just use the one you provided (which is 37 in this example, but you can
   use whichever CCSID is appropriate for your environment.)
   2)  Let the open() API translate it to UTF-8 (or any other CCSID that
   Expat understands) when writing the data to the IFS.   This will
   convert your data to UTF-8, which the Expat XML parser understands.
        flags = O_WRONLY + O_CREAT + O_EXCL
              + O_CCSID + O_TEXT_CREAT + O_TEXTDATA;
        mode = S_IRUSR + S_IWUSR + S_IRGRP + S_IROTH;
        fd = Open(wFile:flags:mode:1208:0);
        If fd >= *Zero;
          Monitor;
            callp write(fd:%addr(DriverProExport) + 4:
                        %len(%Trim(DriverProExport)));
            callp close(fd);
            rc = http_parse_xml_stmf( wFile
                 : 1208
                 : %paddr(StartOfElement)
                 : %paddr(EndOfElement)
                 : *Null);

   Well, now that I think about it, #2 is really the same as #1 with an
   extra step added. Though, it's generally better to have your data in
   Unicode, it doesn't help too much here since it was already in EBCDIC
   to begin with, so you're already going to lose stuff.
   Also notice the changes to the 'flags' variable. I didn't understand
   why you were doing O_TRUNC or O_RDWR when you are generating a
   temporary filename and therefore the file couldn't possibly already
   exist, and also your code doesn't make any attempt to read it, it only
   writes to it.  Seems like a strange thing to do.   So I changed it to
   writing only and used O_EXCL.  This way, it'll give you an error on any
   file that already exists (preventing accidentally overwriting someone
   else's file) and now that we know that it's created new, we can rely on
   it being given the 1208 CCSID.

   On 2/16/2014 5:11 AM, Kevin Wengert wrote:

   Hi Scott,


   I've attached a simplified version of the code that does no processing,
   and just passes the CTDATA table, writes it to the IFS, then tries to
   parse it.  Still getting the same error.


   Looking at the "D" on line 1, col 2 of the IFS, the hex code is x'C4'.
   That is what I see when I DSPPFM on the source code and put it in hex
   mode.


   The CCSID on the IFS file is 37.


   Here are the contents of the debug file:


   HTTPAPI Ver 1.24 released 2012-01-23

   OS/400 Ver
   V7R1M0



   New iconv() objects set, PostRem=819. PostLoc=0. ProtRem=819.
   ProtLoc=0

   SetError() #66: XML parse failed at line 1, col 2: not well-formed
   (invalid token)


   Thanks,


   Kevin



   -----Original Message-----
   From: [1]ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   [[2]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Scott
   Klement
   Sent: Saturday, February 15, 2014 10:18 PM
   To: HTTPAPI and FTPAPI Projects
   Subject: Re: java.lang.RuntimeException: Invocation of program
   failed.AS400Message (ID: CPF9897 text: XML parse failed at line 1, col
   2: not well-formed (invalid
   token)):com.ibm.as400.access.AS400Message@34ce34ce


   Kevin,


   It's hard to guess when you don't have things to look at and see what
   the problem is.


   Can you look at the CCSID on the IFS file that's being fed to

   http_parse_xml_stmf() and see what the CCSID is?   Can you look at the

   data in that file in hex and see whether those hex values make sense
   for the CCSID that was used?


   Can you provide me with the needed details to try to reproduce this on
   my box so I can try it and troubleshoot it?


   -SK



   On 2/15/2014 7:02 PM, Kevin Wengert wrote:

   >     HI Scott,

   >

   >

   >     Thanks for the quick reply.  The error message I copies was from
   using

   >     the "Test Service" function under "Manage Deployed Services" in
   IBM Web

   >     Administration for i.  I used one of your presentations to step
   through

   >     the IWS Wizard to create my web service provider.  I know that I
   have

   >     problems with my WSDL and SOAP envelope, but in trying to isolate
   and

   >     fix one error at a time, I figured I would take the possibility
   of

   >     corruption through the web service as my problem so I wrote the
   first

   >     program to try to send a sample xml file through my program just

   >     dealing with everything on the iSeries, where I'm most
   comfortable.

   >     The first program just allows me to pass the xml as a parameter.

   >

   >

   >     All that said, I changed HTTP_XML_CALC to HTTP_STMF_CALC and I'm

   >     getting the same error, "XML parse failed at line 1, col 2: not

   >     well-formed (invalid token)".  Any other ideas?

   >

   >

   >     Thanks,

   >

   >

   >     Kevin

   >

   >

   >

   >     -----Original Message-----

   >     From: [[3]1]ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx

   >     [[2][4]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
   Scott

   >     Klement

   >     Sent: Saturday, February 15, 2014 5:23 PM

   >     To: HTTPAPI and FTPAPI Projects

   >     Subject: Re: java.lang.RuntimeException: Invocation of program

   >     failed.AS400Message (ID: CPF9897 text: XML parse failed at line
   1, col

   >     2: not well-formed (invalid

   >     token)):com.ibm.as400.access.AS400Message@34ce34ce

   >

   >

   >

   >     You are passing HTTP_XML_CALC to the XML parser.  This tells it
   to

   >     Expat's ability to figure out the text encoding from the contents
   of

   >     the

   >

   >     XML data, but Expat does not support EBCDIC.    An easy work
   around is

   >

   >     to use HTTP_STMF_CALC instead of HTTP_XML_CALC.   This tells it
   to use

   >

   >     the CCSID of your stream file, which IIRC, will default to your
   job's

   >     CCSID, so should be correct.

   >

   >

   >     It seems very weird to me that you refer to this as a web service

   >     provider, and give a Java error message when nothing here appears

   > to be

   >

   >     a web service provider or written in Java.   I can only assume
   that the

   >

   >     RPG program you provided that loads the XML from a CTDATA array
   is not

   >     the "normal" way of calling this.

   >

   >

   >     If this is called from Java, are you required to have the data in

   >     EBCDIC

   >

   >     there, too?   This would likely work better if the data could be

   >

   >     provided in Unicode, since the callers may not want to be
   restricted to

   >     only passing data that fits in an EBCDIC character set -- that's
   not

   >     your immediate problem, but could potentially be a problem down
   the

   >     road.

   >

   >

   >     -SK

   >

   >

   >

   >     On 2/15/2014 11:25 AM, Kevin Wengert wrote:

   >

   >     >     Hi,

   >

   >     >

   >

   >     >

   >

   >     >     I'm a newbie with creating a web service provider, but have
   been

   >     doing

   >

   >     >     RPG coding for 20 years.  This one has me pulling my hair
   out so

   >     any

   >

   >     >     help would be greatly appreciated.

   >

   >     >

   >

   >     >

   >

   >     >     I've written a test program to send a sample XML file to my
   web

   >     service

   >

   >     >     provider RPG.  The web service accepts the xml as the first

   >     parameter

   >

   >     >     in a variable length field, writes it to the IFS, then
   calls

   >

   >     >     http_parse_xml_stmf to parse the file.  The error message
   tells

   >     me that

   >

   >     >     XML parse failed at line 1, col2: not well-formed (invalid

   >     token).  I'm

   >

   >     >     lost.  Here are the relevant samples of the code:

   >

   >     >

   >

   >     >

   >

   >     >          H Copyright('Logistix Software Solutions, 2014')

   >

   >     >

   >

   >     >          H Option(*SrcStmt: *NoDebugIO) DatEdit(*MDY)
   DatFmt(*MDY)

   >

   >     >

   >

   >     >          H DftActGrp(*NO) ActGrp(*CALLER) Bnddir('HTTPAPI')

   >

   >     >

   >

   >     >

   >

   >     >          D LPDBPSRR        PR
   ExtPgm('LPDBPSRR')

   >

   >     >

   >

   >     >          D  DriverProExport...

   >

   >     >

   >

   >     >          D                          9999995a   Varying

   >

   >     >

   >

   >     >          D  Valid                         5a   Options(*NoPass)

   >

   >     >

   >

   >     >          D  Msg                         256a   Options(*NoPass)

   >

   >     >

   >

   >     >

   >

   >     >          D                 DS

   >

   >     >

   >

   >     >          D  DriverProExport...

   >

   >     >

   >

   >     >          D                          9999995a   Varying

   >

   >     >

   >

   >     >          D XML                            1    DIM(3984)

   >

   >     >

   >

   >     >          D

   >     Overlay(DriverProExport:5)

   >

   >     >

   >

   >     >

   >

   >     >          D txml            s              1    DIM(3984) CTDATA

   >     PERRCD(80)

   >

   >     >

   >

   >     >          D y               s             10i 0

   >

   >     >

   >

   >     >

   >

   >     >           /Free

   >

   >     >

   >

   >     >             %Len(DriverProExport) = %elem(xml);

   >

   >     >

   >

   >     >             For y = 1 to %Elem(XML);

   >

   >     >

   >

   >     >               XML(y) = TXML(y);

   >

   >     >

   >

   >     >             EndFor;

   >

   >     >

   >

   >     >             LPDBPSRR(DriverProExport);

   >

   >     >

   >

   >     >             Return;

   >

   >     >

   >

   >     >           /End-Free

   >

   >     >

   >

   >     >     **

   >

   >     >

   >

   >     >     <DriverProExport

   >

   >     >

   >

   >
   xmlns="[1][1][3][5]http://tempuri.org/";><RouteUpdates><Route><DCID>2</DCID
   >

   >

   >     >

   >

   >     >

   >

   >
   <RouteID>2018</RouteID><ScheduledDate>2014-01-24T00:00:00</ScheduledDa

   > t

   >

   >     >     e><Stops>

   >

   >     >

   >

   >     >

   >

   >
   <Stop><StopID>74071</StopID><AlternateStopNumber>1</AlternateStopNumbe

   > r

   >

   >     >     ><Manifes

   >

   >     >

   >

   >     >

   >

   >
   tNumber></ManifestNumber><DriverSignIndicator>false</DriverSignIndicat

   > o

   >

   >     >     r><Driver

   >

   >     >

   >

   >     >

   >

   >
   ID>4060</DriverID><DelivScanQty></DelivScanQty><DelivManualPickQty></D

   > e

   >

   >     >     livManual

   >

   >     >

   >

   >     >

   >

   >
   PickQty><ArrivalTime>2014-02-12T12:39:46</ArrivalTime><DepartureTime>2

   > 0

   >

   >     >     14-02-12T

   >

   >     >

   >

   >     >

   >

   >
   12:47:18</DepartureTime><StopWorkDuration>450</StopWorkDuration><GPSLa

   > t

   >

   >     >     itude>29.

   >

   >     >

   >

   >     >

   >

   >
   7247</GPSLatitude><GPSLongitude>-95.5534</GPSLongitude><GPSDateTime>20

   > 1

   >

   >     >     4-02-12T1

   >

   >     >

   >

   >     >

   >

   >
   2:39:47</GPSDateTime><ScheduledReturns><ScheduledReturn><PickupID>1456

   > 9

   >

   >     >     08</Picku

   >

   >     >

   >

   >     >

   >

   >
   pID><ProductID>1114</ProductID><Quantity>1</Quantity><CreditReferenceI

   > D

   >

   >     >     >1258513<

   >

   >     >

   >

   >     >

   >

   >
   /CreditReferenceID><OriginalUOM></OriginalUOM><UOM>CS</UOM><Dispositio

   > n

   >

   >     >     ></Dispos

   >

   >     >

   >

   >     >

   >

   >
   ition><ReturnReasonCode></ReturnReasonCode><CreditAmount>0</CreditAmou

   > n

   >

   >     >     t><Weight

   >

   >     >

   >

   >     >

   >

   >
   >0</Weight><ReturnedProductID></ReturnedProductID><ReturnQuantity>1</R

   > e

   >

   >     >     turnQuant

   >

   >     >

   >

   >     >

   >

   >
   ity><TaxPerItem>0</TaxPerItem><TaxTotal>0</TaxTotal><AddChgPerItem>0</

   > A

   >

   >     >     ddChgPerI

   >

   >     >

   >

   >     >

   >

   >
   tem><AddChgTotal>0</AddChgTotal><Price>17.109</Price></ScheduledReturn

   > >

   >

   >     >     </Schedul

   >

   >     >

   >

   >     >

   >

   >
   edReturns><RejectItems><RejectItem><ProductID>64454</ProductID><Reject

   > R

   >

   >     >     easonCode

   >

   >     >

   >

   >     >

   >

   >
   >D30</RejectReasonCode><RejectQuantity>1</RejectQuantity><ReturnedProd

   > u

   >

   >     >     ctID>6445

   >

   >     >

   >

   >     >

   >

   >
   4</ReturnedProductID><Weight>0</Weight><ItemClass>O</ItemClass><Invoic

   > e

   >

   >     >     Number>12

   >

   >     >

   >

   >     >

   >

   >
   62878</InvoiceNumber><UOM>CS</UOM><ItemID>1262878-50</ItemID><Original

   > Q

   >

   >     >     uantity>1

   >

   >     >

   >

   >     >

   >

   >
   </OriginalQuantity><InvoiceSequence>50</InvoiceSequence><LotNumber></L

   > o

   >

   >     >     tNumber><

   >

   >     >

   >

   >     >

   >

   >
   TaxPerItem>1.23876</TaxPerItem><TaxTotal>1.24</TaxTotal><AddChgPerItem

   > >

   >

   >     >     0</AddChg

   >

   >     >

   >

   >     >

   >

   >
   PerItem><AddChgTotal>0</AddChgTotal><CreditAmount>19.59</CreditAmount>

   > <

   >

   >     >     ItemDescr

   >

   >     >

   >

   >     >     iption>GLOVE VINYL POWDER FREE

   >

   >     >     X-LARGE</ItemDescription><AlternateProductID></Al

   >

   >     >

   >

   >     >

   >

   >
   ternateProductID><Price>18.352</Price></RejectItem><RejectItem><Produc

   > t

   >

   >     >     ID>7420</

   >

   >     >

   >

   >     >

   >

   >
   ProductID><RejectReasonCode>D30</RejectReasonCode><RejectQuantity>1</R

   > e

   >

   >     >     jectQuant

   >

   >     >

   >

   >     >

   >

   >
   ity><ReturnedProductID>7420</ReturnedProductID><Weight>9.99</Weight><I

   > t

   >

   >     >     emClass>O

   >

   >     >

   >

   >     >

   >

   >
   </ItemClass><InvoiceNumber>1262878</InvoiceNumber><UOM>CS</UOM><ItemID

   > >

   >

   >     >     1262878-1

   >

   >     >

   >

   >     >

   >

   >
   </ItemID><OriginalQuantity>1</OriginalQuantity><InvoiceSequence>1</Inv

   > o

   >

   >     >     iceSequen

   >

   >     >

   >

   >     >

   >

   >
   ce><LotNumber></LotNumber><TaxPerItem>0</TaxPerItem><TaxTotal>0</TaxTo

   > t

   >

   >     >     al><AddCh

   >

   >     >

   >

   >     >

   >
   gPerItem>0</AddChgPerItem><AddChgTotal>0</AddChgTotal><CreditAmount>74.

   >

   >     >     06</Credi

   >

   >     >

   >

   >     >     tAmount><ItemDescription>N A SALMON 2-3 ATLANTIC FILLET

   >

   >     >     PBO</ItemDescription><Al

   >

   >     >

   >

   >     >

   >

   >
   ternateProductID></AlternateProductID><Price>7.413</Price></RejectItem

   > >

   >

   >     >     </RejectI

   >

   >     >

   >

   >     >

   >

   >
   tems><InRouteSplits><InRouteSplit><ProductID>64212</ProductID><PackQua

   > n

   >

   >     >     titySplit

   >

   >     >

   >

   >     >

   >

   >
   >10</PackQuantitySplit><SplitReasonCode>D70</SplitReasonCode><Invoiced

   > A

   >

   >     >     mount>2.7

   >

   >     >

   >

   >     >

   >

   >
   </InvoicedAmount><AdjustedWeight>0</AdjustedWeight><MultiPickIndicator

   > >

   >

   >     >     false</Mu

   >

   >     >

   >

   >     >

   >

   >
   ltiPickIndicator><InRouteSplitQuantity>1</InRouteSplitQuantity><Invoic

   > e

   >

   >     >     Number>12

   >

   >     >

   >

   >     >

   >

   >
   62878</InvoiceNumber><UOM>EA</UOM><OriginalQuantity>1</OriginalQuantit

   > y

   >

   >     >     ><ItemID>

   >

   >     >

   >

   >     >

   >

   >
   1262878-49</ItemID><InvoiceSequence>49</InvoiceSequence><CaseWeight>0<

   > /

   >

   >     >     CaseWeigh

   >

   >     >

   >

   >     >

   >

   >
   t><TaxPerCase>0</TaxPerCase><CaseTaxTotal>0</CaseTaxTotal><CaseCreditA

   > m

   >

   >     >     ount>3.26

   >

   >     >

   >

   >     >

   >

   >
   </CaseCreditAmount><TaxPerSplit>0</TaxPerSplit><SplitTaxTotal>0</Split

   > T

   >

   >     >     axTotal><

   >

   >     >

   >

   >     >

   >

   >
   SplitChargeAmount>2.7</SplitChargeAmount><SplitsPerCase>12</SplitsPerC

   > a

   >

   >     >     se><PackQ

   >

   >     >

   >

   >     >
   uantityReturned>2</PackQuantityReturned><ItemDescription>DELI

   >     PAPER 8 X

   >

   >     >     10 3 4</

   >

   >     >

   >

   >     >

   >

   >
   ItemDescription><AlternateProductID></AlternateProductID><Price>3.262<

   > /

   >

   >     >     Price><Sp

   >

   >     >

   >

   >     >

   >

   >
   litPrice>0.27</SplitPrice></InRouteSplit></InRouteSplits><CatchWeightA

   > d

   >

   >     >     justments

   >

   >     >

   >

   >     >

   >

   >
   ><CatchWeightAdjustment><ItemID>1262878-55</ItemID><ProductID>90676</P

   > r

   >

   >     >     oductID><

   >

   >     >

   >

   >     >

   >

   >
   InvoiceNumber>1262878</InvoiceNumber><InvoiceSequence>55</InvoiceSeque

   > n

   >

   >     >     ce><Origi

   >

   >     >

   >

   >     >

   >

   >
   nalWeight>17.95</OriginalWeight><AdjustedWeight>15.22</AdjustedWeight>

   > <

   >

   >     >     TaxPerIte

   >

   >     >

   >

   >     >

   >

   >
   m>0</TaxPerItem><TaxTotal>0</TaxTotal><CreditAmount>11.84</CreditAmoun

   > t

   >

   >     >     ><Price>4

   >

   >     >

   >

   >     >

   >

   >
   .338</Price></CatchWeightAdjustment></CatchWeightAdjustments><SalesOff

   > T

   >

   >     >     ruck /></

   >

   >     >

   >

   >     >     Stop></Stops><Inputs
   /></Route></RouteUpdates></DriverProExport>

   >

   >     >

   >

   >     >

   >

   >     >

   >

   >     >          H Copyright('Logistix Software Solutions, 2014')

   >

   >     >

   >

   >     >          H Option(*SrcStmt: *NoDebugIO) DatEdit(*MDY)
   DatFmt(*MDY)

   >

   >     >

   >

   >     >          H DftActGrp(*NO) ActGrp(*CALLER) Bnddir('HTTPAPI')

   >

   >     >

   >

   >     >          H PgmInfo(*PCML: *MODULE)

   >

   >     >

   >

   >     >

   >

   >     >

   > *****************************************************************

   >

   >     >

   >

   >     >           * Copyright  Logistix Software Solutions 2014

   >

   >     >

   >

   >     >

   >

   >     >

   > *****************************************************************

   >

   >     >

   >

   >     >

   >

   >     >

   > *****************************************************************

   >

   >     >

   >

   >     >           *  Logistix PoD Header

   >

   >     >

   >

   >     >          FLPODSHM   IF   E           K DISK

   >

   >     >

   >

   >     >

   >

   >     >           /copy qrpglesrc,httpapi_h

   >

   >     >

   >

   >     >           /copy qrpglesrc,ifsio_h

   >

   >     >

   >

   >     >

   >

   >     >          D LPDBPSRR        PR
   ExtPgm('LPDBPSRR')

   >

   >     >

   >

   >     >          D  DriverProExport...

   >

   >     >

   >

   >     >          D                          9999995a   Varying

   >

   >     >

   >

   >     >          D  Valid                         5a   Options(*NoPass)

   >

   >     >

   >

   >     >          D  Msg                         256a   Options(*NoPass)

   >

   >     >

   >

   >     >

   >

   >     >          D LPDBPSRR        PI

   >

   >     >

   >

   >     >          D  DriverProExport...

   >

   >     >

   >

   >     >          D                          9999995a   Varying

   >

   >     >

   >

   >     >          D  Valid                         5a   Options(*NoPass)

   >

   >     >

   >

   >     >          D  Msg                         256a   Options(*NoPass)

   >

   >     >

   >

   >     >

   >

   >     >          D StartOfElement  PR

   >

   >     >

   >

   >     >          D   UserData                      *   value

   >

   >     >

   >

   >     >          D   depth                       10I 0 value

   >

   >     >

   >

   >     >          D   name                      1024A   varying const

   >

   >     >

   >

   >     >          D   path                     24576A   varying const

   >

   >     >

   >

   >     >          D   value                    65535A   varying const

   >

   >     >

   >

   >     >          D   attrs                         *   dim(32767)

   >

   >     >

   >

   >     >          D                                     const

   >     options(*varsize)

   >

   >     >

   >

   >     >

   >

   >     >          D EndOfElement    PR

   >

   >     >

   >

   >     >          D   UserData                      *   value

   >

   >     >

   >

   >     >          D   depth                       10I 0 value

   >

   >     >

   >

   >     >          D   name                      1024A   varying const

   >

   >     >

   >

   >     >          D   path                     24576A   varying const

   >

   >     >

   >

   >     >          D   value                    65535A   varying const

   >

   >     >

   >

   >     >          D   attrs                         *   dim(32767)

   >

   >     >

   >

   >     >          D                                     const

   >     options(*varsize)

   >

   >     >

   >

   >     >

   >

   >     >          d GetLib          PR
   extpgm('WUTBOBJC')

   >

   >     >

   >

   >     >          d                               10    const

   >

   >     >

   >

   >     >          d                               10

   >

   >     >

   >

   >     >          d                                7    const

   >

   >     >

   >

   >     >          d                               50

   >

   >     >

   >

   >     >          d                                1

   >

   >     >

   >

   >     >

   >

   >     >          D RunCommand      PR
   ExtPgm('QCMDEXC')

   >

   >     >

   >

   >     >          D  Command                      70a   Const

   >

   >     >

   >

   >     >          D  Length                       15p 5 Const

   >

   >     >

   >

   >     >

   >

   >     >          D                SDS

   >

   >     >

   >

   >     >          D  PgmId            *PROC

   >

   >     >

   >

   >     >          D  WrkStn               244    253

   >

   >     >

   >

   >     >          D  UsrNm                254    263

   >

   >     >

   >

   >     >

   >

   >     >          D rc              s             10I 0

   >

   >     >

   >

   >     >          D fd              S             10I 0

   >

   >     >

   >

   >     >          D flags           S             10U 0

   >

   >     >

   >

   >     >          D mode            S             10U 0

   >

   >     >

   >

   >     >          D len             S             10I 0

   >

   >     >

   >

   >     >

   >

   >     >           /Free

   >

   >     >

   >

   >     >

   >

   >     >             GetDate(DateTime);

   >

   >     >

   >

   >     >             wDebugFile = '/Logistix/Debug/DQ' +
   %EditC(DateTime:'X')

   >     +

   >

   >     >     '.txt';

   >

   >     >

   >

   >     >             http_debug(*ON: wDebugFile);

   >

   >     >

   >

   >     >

   >

   >     >             GetLib('KINETICS':ObjLib:'*JOBD':ObjDesc:ObjErr);

   >

   >     >

   >

   >     >             Chain (ObjLib) LPODSHM;

   >

   >     >

   >

   >     >

   >

   >     >             wTimeStamp = %Char(%Timestamp():*ISO0);

   >

   >     >

   >

   >     >             wFile = '/Logistix/Events/EV' + wTimeStamp +
   '.xml';

   >

   >     >

   >

   >     >             flags = O_RDWR + O_CREAT + O_TRUNC;

   >

   >     >

   >

   >     >             mode = S_IRUSR + S_IWUSR + S_IRGRP + S_IROTH;

   >

   >     >

   >

   >     >             fd = Open(wFile:flags:mode);

   >

   >     >

   >

   >     >             If fd >= *Zero;

   >

   >     >

   >

   >     >               Monitor;

   >

   >     >

   >

   >     >                 callp write(fd:%addr(DriverProExport) + 4:

   >

   >     >

   >

   >     >                             %len(%Trim(DriverProExport)));

   >

   >     >

   >

   >     >                 callp close(fd);

   >

   >     >

   >

   >     >                 rc = http_parse_xml_stmf( wFile

   >

   >     >

   >

   >     >                      : HTTP_XML_CALC

   >

   >     >

   >

   >     >                      : %paddr(StartOfElement)

   >

   >     >

   >

   >     >                      : %paddr(EndOfElement)

   >

   >     >

   >

   >     >                      : *Null);

   >

   >     >

   >

   >     >                 If RC <> *Zero;

   >

   >     >

   >

   >     >                   //  Error processing;

   >

   >     >

   >

   >     >                   http_error(err);

   >

   >     >

   >

   >     >                   http_crash();

   >

   >     >

   >

   >     >                   Valid = 'false';

   >

   >     >

   >

   >     >                   Msg = 'Unable to parse file';

   >

   >     >

   >

   >     >                 Else;

   >

   >     >

   >

   >     >                   Valid = 'true';

   >

   >     >

   >

   >     >                   Msg = 'OK';

   >

   >     >

   >

   >     >                   // Do some processing

   >

   >     >

   >

   >     >                 EndIf;

   >

   >     >

   >

   >     >               On-Error;

   >

   >     >

   >

   >     >                 //  Error processing;

   >

   >     >

   >

   >     >                 http_error(err);

   >

   >     >

   >

   >     >                 http_crash();

   >

   >     >

   >

   >     >                 Valid = 'false';

   >

   >     >

   >

   >     >                 Msg = 'Unknown error in writing or parsing ifs
   file';

   >

   >     >

   >

   >     >               EndMon;

   >

   >     >

   >

   >     >             Else;

   >

   >     >

   >

   >     >               //  Error processing;

   >

   >     >

   >

   >     >               http_error(err);

   >

   >     >

   >

   >     >               http_crash();

   >

   >     >

   >

   >     >               Valid = 'false';

   >

   >     >

   >

   >     >               Msg = 'Unable to open ifs file';

   >

   >     >

   >

   >     >             EndIf;

   >

   >     >

   >

   >     >

   >

   >     >             Return;

   >

   >     >

   >

   >     >           /End-Free

   >

   >     >

   >

   >     >

   >

   >     >     Thanks,

   >

   >     >

   >

   >     >

   >

   >     >     Kevin

   >

   >     >

   >

   >     >

   >

   >     >

   >

   >     >     Thanks,

   >

   >     >

   >

   >     >

   >

   >     >     Kevin

   >

   >     >

   >

   >     > References

   >

   >     >

   >

   >     >     1. [2][4][6]http://tempuri.org/

   >

   >     >

   >

   >     >

   >

   >     >

   >

   >     >

   >

   >
   ----------------------------------------------------------------------

   >

   >     > - This is the FTPAPI mailing list.  To unsubscribe, please go
   to:

   >

   >     > [3][5][7]http://www.scottklement.com/mailman/listinfo/ftpapi

   >

   >     >

   >

   >
   ----------------------------------------------------------------------

   >

   >     > -

   >

   > References

   >

   >     1.
   [6][8]http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c
   /DCID

   >     2. [7][9]http://tempuri.org/

   >     3. [8][10]http://www.scottklement.com/mailman/listinfo/ftpapi

   >

   >

   >

   >
   ----------------------------------------------------------------------

   > - This is the FTPAPI mailing list.  To unsubscribe, please go to:

   > [9][11]http://www.scottklement.com/mailman/listinfo/ftpapi

   >
   ----------------------------------------------------------------------

   > -

References

   1. [12]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   2. [13]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   3. [14]http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c/D
CID
   4. [15]http://tempuri.org/
   5. [16]http://www.scottklement.com/mailman/listinfo/ftpapi
   6. [17]http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c/D
CID
   7. [18]http://tempuri.org/
   8. [19]http://www.scottklement.com/mailman/listinfo/ftpapi
   9. [20]http://www.scottklement.com/mailman/listinfo/ftpapi


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

References

   1. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   2. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   3. mailto:1]ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   4. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   5. http://tempuri.org/
   6. http://tempuri.org/
   7. http://www.scottklement.com/mailman/listinfo/ftpapi
   8. http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c
   9. http://tempuri.org/
  10. http://www.scottklement.com/mailman/listinfo/ftpapi
  11. http://www.scottklement.com/mailman/listinfo/ftpapi
  12. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
  13. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
  14. http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c/DCID
  15. http://tempuri.org/
  16. http://www.scottklement.com/mailman/listinfo/ftpapi
  17. http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c/DCID
  18. http://tempuri.org/
  19. http://www.scottklement.com/mailman/listinfo/ftpapi
  20. http://www.scottklement.com/mailman/listinfo/ftpapi
  21. 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
-----------------------------------------------------------------------