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

Re: http_url_get() - Previous Payload in Memory



   Hi Scott,
   It will be difficult to recreate as I was using CA Plex (and currently
   have no access to IBMi..no jobs). I created CA Plex patterns to
   leverage your great HTTPAPI work and gave it free to the community. One
   of the downloaders has reported this issue. Now you and I really should
   not kill ourselves looking at this (both do it for free) I just thought
   I would suggest some things to look at the for this particular CA Plex
   user (he is no dummy)
   I think the issue is it is a client server implementation. C++ Client
   calling RPG pgm and the RPG remains in memory until the c++ client is
   closed (which closes a listener job on the ibmi which dedicated to that
   particular C++ Client session)
   Attached is the �CA Plex generated rpg code (no comment on its format
   and why I have been forced to look at yours and others oss to bend and
   twist CA Plex to do 'modern' things.
   The example attached is based on your Example12, JSON over REST.
   First time all works fine but second time being called via the c++
   client I am assured after the following code there is the previous
   payload and current payload in the temp file.
   � � � � � � � � � �F0000B = http_url_get(F00002:F00008);
   Regards
   George Jeffcock
   [1]www.stellatools.com
   � � �Z* TEXT('StellaTools.IBMi.OpenSource.Examples.Example12 [RE')
   � � �H DFTACTGRP(*NO) BNDDIR('HTTPAPI':'POWEREXT') DEBUG � � � �   � � � � � � � � � � � � � � � � � *
   � � � *
   ***********************************************************************
   *********************
   � � � *
   ***********************************************************************
   *********************
   � � � *�   � � � * StellaTools.IBMi.OpenSource.Examples.Example12
   [REST-JSON].Example : STORHF
   � � � *�   � � � *
   ***********************************************************************
   *********************
   � � � *�   � � � * Generated by : CA Plex r7.2.1 � (Build 24.000)
   � � � * Date - Time �: 14 September 2016 - 10:42
   � � � * Group Model �: C:\StellaTools\ModelGroup\Plex7.2.1\StellaTL
   � � � * Local Model �: C:\StellaTools\ModelLocal\Local.mdl
   � � � * User � � � � : Admin
   � � � * Version � � �: V2.04
   � � � * Level � � � �: V2.04
   � � � * Variant � � �: Base
   � � � * Language � � : English
   � � � *�   � � � *
   ***********************************************************************
   *********************
   � � � *�   � � � *�   � � �D/INCLUDE HTTPAPI_H
   � � �D/INCLUDE qsrc,pxapicgicn
   � � � *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � �D UserDataVar � � s � � � � � 1024A � varying
   � � �D attrcount � � � s � � � � � � 10I 0
   � � �D attrname � � � �s � � � � � 1024A � varying
   � � �D attrval � � � � s � � � � �65535A � varying
   � � �D/DEFINE PROCESS_ENDONLY
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++�   � � �D EndOfElement � �PR
   � � �D � UserDataVar � � � � � � � 1024A � varying
   � � �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 �SRC � � � � � �S � � � � �20000A � varying
   � � �D �SRH � � � � � �S � � � � � 1024A � varying
   � � �D �REP � � � � � �S � � � � � 1024A � varying
   � � �D �POS � � � � � �S � � � � � � 10I 0 inz(0)
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++�
   � � �D ErrorNo � � � � S � � � � � � 10I 0
   � � �D V00001 � � � � �DS � � � � � � � � �INZ
   � � �D �F00001 � � � � � � � � � �65535A
   � � �D V00003 � � � � �DS � � � � � � � � �INZ
   � � �D �F00002 � � � � � � � � � � 1024A
   � � �D �F00003 � � � � � � � � � � 1024A
   � � �D �F00004 � � � � � � � � � � 1024A
   � � �D �F00005 � � � � � � � � � � � 10P 0
   � � �D �F00006 � � � � � � � � � � � �4A
   � � �D �F00007 � � � � � � � � � � � �1A
   � � �D �F00008 � � � � � � � � � � 1024A
   � � �D �F00009 � � � � � � � � � � � 10P 0
   � � �D �F0000A � � � � � � � � � � � �7A
   � � �D �F0000B � � � � � � � � � � � 10P 0
   � � �D �F0000C � � � � � � � � � � 1024A
   � � �D V00005 � � � � �DS � � � � � � � � �INZ
   � � �D �F0000D � � � � � � � � � � 1024A
   � � �D �F0000E � � � � � � � � � � 1024A
   � � �D V00007 � � � � �DS � � � � � � � � �OCCURS(20)
   INZ
   � � �D �F0000F � � � � � � � � � � � 50A
   � � �D �F0000G � � � � � � � � � � � 50A
   � � �D �F0000H � � � � � � � � � � � 50A
   � � �D �F0000I � � � � � � � � � � � 50A
   � � �D �F0000J � � � � � � � � � � � 50A
   � � �D �F0000K � � � � � � � � � � � 50A
   � � �D �F0000L � � � � � � � � � � � 50A
   � � �D �F0000M � � � � � � � � � � � 50A
   � � �D �F0000N � � � � � � � � � � � 50A
   � � �D �F0000O � � � � � � � � � � � 50A
   � � �D V0000A � � � � �DS � � � � � � � � �INZ
   � � �D �F0000P � � � � � � � � � � � 10P 0
   � � �D �F0000Q � � � � � � � � � � 1024A
   � � �D V0000C � � � � �DS � � � � � � � � �INZ
   � � �D �F0000R � � � � � � � � � � � 50A
   � � �D V0000E � � � � �DS � � � � � � � � �INZ
   � � �D �F0000S � � � � � � � � � � � �1A
   � � �D �F0000T � � � � � � � � � � � 32A
   � � �D �F0000U � � � � � � � � � � � 32A
   � � �D �F0000V � � � � � � � � � � �512A
   � � �D �F0000W � � � � � � � � � � � �7A
   � � �D �F00010 � � � � � � � � � � �256A
   � � �D �F00011 � � � � � � � � � � � �1A
   � � �D �F00012 � � � � � � � � � � �128A
   � � �D �F00013 � � � � � � � � � � � 32A
   � � �D �F00014 � � � � � � � � � � � �7A
   � � �D �F00015 � � � � � � � � � � � �7A
   � � �D �F00016 � � � � � � � � � � � �7A
   � � �D �F00017 � � � � � � � � � � � �7A
   � � �D �F00018 � � � � � � � � � � � �7A
   � � �D �F00019 � � � � � � � � � � � �7A
   � � �D �F0001A � � � � � � � � � � � �7A
   � � �D �F0001B � � � � � � � � � � � �1A
   � � �D �F0001C � � � � � � � � � � � 32A
   � � � *�   � � �D YZPGDS � � � �ESDS � � � � � � � �   �EXTNAME(YOBPGMDS4)
   � � � *�   � � �D YZSCF1 � � � � �S � � � � � 9999A � INZ
   � � �D YZSCF2 � � � � �S � � � � � 9999A � INZ
   � � �D YZSCRS � � � � �S � � � � � 9999A � INZ
   � � �D YZSCU1 � � � � �S � � � � � 9999C � INZ
   � � �D � � � � � � � � � � � � � � � � � �   CCSID(1200 )
   � � �D YZSCU2 � � � � �S � � � � � 9999C � INZ
   � � �D � � � � � � � � � � � � � � � � � �   CCSID(1200 )
   � � �D YZSCUS � � � � �S � � � � � 9999C � INZ
   � � �D � � � � � � � � � � � � � � � � � �   CCSID(1200 )
   � � �D J � � � � � � � S � � � � � � �5P 0 INZ(0)
   � � �D K � � � � � � � S � � � � � � �5P 0 INZ(0)
   � � �D L � � � � � � � S � � � � � � �5P 0 INZ(0)
   � � �D N � � � � � � � S � � � � � � �5P 0 INZ(0)
   � � �D YZDTV8 � � � � �S � � � � � � �8S 0 INZ(0)
   � � �D YZTCAST � � � � S � � � � � � 32A � INZ
   � � �D V0000D � � � � �DS
   � � �D �P0000R � � � � � � � � � � � 50A
   � � �D V00008 � � � � �DS � � � � � � � � �OCCURS(20)
   � � �D �P0000F � � � � � � � � � � � 50A
   � � �D �P0000G � � � � � � � � � � � 50A
   � � �D �P0000H � � � � � � � � � � � 50A
   � � �D �P0000I � � � � � � � � � � � 50A
   � � �D �P0000J � � � � � � � � � � � 50A
   � � �D �P0000K � � � � � � � � � � � 50A
   � � �D �P0000L � � � � � � � � � � � 50A
   � � �D �P0000M � � � � � � � � � � � 50A
   � � �D �P0000N � � � � � � � � � � � 50A
   � � �D �P0000O � � � � � � � � � � � 50A
   � � �D V0000B � � � � �DS
   � � �D �P0000P � � � � � � � � � � � 10P 0
   � � �D �P0000Q � � � � � � � � � � 1024A
   � � �D YZLN � � � � � �S � � � � � � �9B 0
   � � �D YZCMD � � � � � S � � � � � 3000A
   � � � *�   � � �D YZSTNG � � � � �S � � � � � �999A
   � � �D YZPTRN � � � � �S � � � � � �999A
   � � � *�   � � �D YZDSTR � � � � �S � � � � � 9999A
   � � �D YZDTGT � � � � �S � � � � � 9999A
   � � � *�   � � �D YZDST2 � � � � �S � � � � � 9999A
   � � � *�   � � �D YZUSTR � � � � �S � � � � �16383C
   � � �D � � � � � � � � � � � � � � � � � �   CCSID(1200 )
   � � �D YZUST2 � � � � �S � � � � �16383C
   � � �D � � � � � � � � � � � � � � � � � �   CCSID(1200 )
   � � �D YZUTGT � � � � �S � � � � �16383C
   � � �D � � � � � � � � � � � � � � � � � �   CCSID(1200 )
   � � � *�   � � �D C2 � � � � � � �C � � � � � � � � �   CONST('[2]http://autocomplete.wundergr-
   � � �D � � � � � � � � � � � � � � � � � �   [3]ound.com/aq?query=&(1:)&h=1&format-
   � � �D � � � � � � � � � � � � � � � � � � =json
   � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � ')
   � � �D C9 � � � � � � �C � � � � � � � � � CONST('
   � � � � � � � � � � � � � �-
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � ')
   � � �D C1 � � � � � � �C � � � � � � � � �   CONST('*ON ')
   � � �D C7 � � � � � � �C � � � � � � � � �   CONST('*OFF')
   � � �D C5 � � � � � � �C � � � � � � � � � CONST('
   � �')
   � � �D C10 � � � � � � C � � � � � � � � � CONST('1')
   � � �D C11 � � � � � � C � � � � � � � � � CONST('2')
   � � �D C12 � � � � � � C � � � � � � � � � CONST('3')
   � � �D C4 � � � � � � �C � � � � � � � � � CONST(-2)
   � � �D CR � � � � � � �C � � � � � � � � �   CONST('ERROR �')
   � � �D CS � � � � � � �C � � � � � � � � � CONST(0)
   � � �D CT � � � � � � �C � � � � � � � � � CONST(1)
   � � �D CP � � � � � � �C � � � � � � � � � CONST(-1)
   � � �D P0 � � � � � � �C � � � � � � � � �   CONST('STORHF')
   � � �D C8 � � � � � � �C � � � � � � � � �   CONST('debug')
   � � �D CN � � � � � � �C � � � � � � � � �   CONST('tempfile')
   � � �D CO � � � � � � �C � � � � � � � � �   CONST('url_get')
   � � �D CU � � � � � � �C � � � � � � � � �   CONST('parse_xml_stmf')
   � � �D CV � � � � � � �C � � � � � � � � �   CONST('clearSrvPgm')
   � � �D CW � � � � � � �C � � � � � � � � �   CONST('xmlFromStmf')
   � � �D C13 � � � � � � C � � � � � � � � �   CONST('jsonToXML')
   � � �D C14 � � � � � � C � � � � � � � � �   CONST('xmlToStmf')
   � � �D C15 � � � � � � C � � � � � � � � �   CONST('xmlFree')
   � � �D CA � � � � � � �C � � � � � � � � �   CONST('[')
   � � �D CH � � � � � � �C � � � � � � � � �   CONST('-')
   � � �D CE � � � � � � �C � � � � � � � � �   CONST(']')
   � � �D C3 � � � � � � �C � � � � � � � � �   CONST('&(1:) � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � � � � � � � � � � � � � -
   � � �D � � � � � � � � � � � � � � � � � � � �   � � � ')
   � � �C � � *ENTRY � � � �PLIST � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � �F00016 � � �   �P00016 � � � � � �7 � � � � � � � � � � � � � �   � �   � � �C � � � � � � � � � PARM � � � � � � � � �   �V0000D � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �V00008 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �V0000B � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � MOVEL (P) V0000D � � � �V0000C
   � � � � � � � � � � � � � � � � � � � � � ��   � � � *�   � � �C � � � � � � � � � MOVEL � � *OFF � � � �   �EFNZ00 � � � � � �1 � � � � � � � � � � � � � �   � �   � � � *
   ***********************************************************************
   *********************
   � � � * Note: The BNDDIR, tells ILE how to find the � � � � �   � � � � � � � � � � � � � � � � � � �*
   � � � * � � � service program which contains the routines. � �   � � � � � � � � � � � � � � � � � � *
   � � � *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � * � �The /INCLUDE directive provides prototypes and
   constants
   � � � * � �needed to call the routines.
   � � � *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � *
   ***********************************************************************
   *********************
   � � � * Prototype for procedure EndOfElement
   � � � * A Prototype which specifies the name, return value if any,
   � � � * and parameters if any.
   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0001 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � Z-ADD � � *ZEROS � � �   �F0000P � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   F0000Q � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   F00002 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   F00003 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   F00004 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � Z-ADD � � *ZEROS � � �   �F00005 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   F00006 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   F00007 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   F00008 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � Z-ADD � � *ZEROS � � �   �F00009 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   F0000A � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � Z-ADD � � *ZEROS � � �   �F0000B � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   F0000C � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) C1 � � � � �   �F00006 � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0004 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) C2 � � � � �   �F00002 � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � MOVEL (P) C3 � � � � �   �F0000E � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � MOVEL (P) F0000R � � � �F0000D
   � � � � � � � � � � � � � � � � � � � � � ��   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0005 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0007 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) F00003 � � � �F00008
   � � � � � � � � � � � � � � � � � � � � � ��   � � � *�   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0008 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ000A � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ000B � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ000C � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ000D � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ000E � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � Z-ADD � � C4 � � � � �   �F00009 � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0009 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) F00004 � � � �F0000Q
   � � � � � � � � � � � � � � � � � � � � � ��   � � � *�   � � � *
   ***********************************************************************
   *********************
   � � � * Begin-Procedure specification for EndOfElement - Do not
   touch - Must be present
   � � � *
   ***********************************************************************
   *********************
   � � �C � � � � � � � � � EXSR � � �YEXIT � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � � *�   � � �C � � SZ0001 � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � TZ0001 � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ0002 � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � EXSR � � �YEXIT � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � TZ0002 � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ0003 � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � TZ0003 � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ0004 � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � F00006 � � � �IFEQ � � �C5 � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � MOVEL (P) C7 � � � � �   �F00006 � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � � � � � � � � MOVEL (P) C8 � � � � �   �F0001C � � � � � � � � � � � � � � � � � � � � �   ��   � � �   *+++++++++++++++++++++++++HTTPAPI_VERSION_1.29++++++++++++++++++++++++�
   � � � * http_debug(): �Turn debugging info *ON or *OFF
   � � � *
   � � � * � � �peStatus = (input) status (either *ON or *OFF)
   � � � *
   � � � * � �peFilename = (input/optional) filename that debug info
   will be
   � � � * � � � � � � � � � �written to.� If not defined,
   the value from
   � � � * � � � � � � � � � �CONFIG_H is used.
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � *// Note: �http_debug(*ON/*OFF) can be used to turn debugging
   � � � *// � � � �on and off.� When debugging is turned on,
   diagnostic
   � � � *// � � � �info is written to an IFS file named
   � � � *// � � � �/tmp/httpapi_debug.txt
   � � � *//
   � � � *// � http_debug(*ON: debugLog + 'httpapi_example25.log');
   � � � *//
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � /FREE
   � � � � � if (F0000C = ' ');
   � � � � � �http_debug(F00006);
   � � � � � else ;
   � � � � � http_debug(F00006 : F0000C);
   � � � � � endif;
   � � � /END-FREE
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � �C � � � � � � � � � MOVEL (P) C5 � � � � �   �F00006 � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � TZ0004 � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ0005 � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � /FREE
   �   � � � � src = %trim(F00002); � � � � � � � � � � �   � � � � srh = %trim(F0000E); � � � � � � � � � � �   � � � � rep = %trim(F0000D); � � � � � � � � � � �   � � � � pos = %scan(srh: src); � � � � � � � � � �   � � � � dow pos > 0; � � � � � � � � � � � � � � �   � � � ��   � � � � � � src = %replace(rep: src: pos: %len(srh));
   � � � � � � if (pos+%len(rep) > %len(src)); � � ��   � � � � � � � � pos = 0; � � � � � � � � � � � � �   � �   � � � � � � else; � � � � � � � � � � � � � � �   ��   � � � � � � � � pos = %scan(srh: src: pos+%len(rep));�   � � � � � � endif;
   � � � � �enddo;
   � � � � F00002 = src; �   � � � /END-FREE
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � *�   � � �C � � TZ0005 � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ0006 � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � MOVEL (P) C9 � � � � �   �F00004 � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �   *+++++++++++++++++++++++++HTTPAPI_VERSION_1.29+++++++++++++++++++++++
   � � � *// Most of the HTTPAPI routines return 1 when successful
   � � � *// Although this allows you to detect when something has
   failed,
   � � � *// it only tells you that something failed, not what failed
   � � � *// The http_error() routine can tell you an error number, a
   message,
   � � � *// or both
   � � � * �http_error(): � Return the last error that occurred.
   � � � *
   � � � * � � peErrorNo = (optional) error number that occurred.
   � � � *
   � � � * �Returns the human-readable error message.
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � * D http_error � � �PR � � � � � �80A
   � � � * D � peErrorNo � � � � � � � � � 10I 0
   options(*nopass:*omit)
   � � �   *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � /FREE
   � � � � F00004 = http_error(ErrorNo);
   � � � � F00005 = ErrorNo;
   � � � /END-FREE
   � � �   *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � �C � � CA � � � � � �CAT � (P) F0001C:0 � � �T00029
   � � � � � 33 � � � � � � � � � � � � � � � �   � � �C � � T00029 � � � �CAT � (P) CE:0 � � � � �T0002C
   � � � � � 34 � � � � � � � � � � � � � � � �   � � �C � � T0002C � � � �CAT � (P) CH:0 � � � � �T0002F
   � � � � � 35 � � � � � � � � � � � � � � � �   � � �C � � T0002F � � � �CAT � (P) F00004:0 � � �T0002H �   � � � 1059 � � � � � � � � � � � � � � � �   � � �C � � � � � � � � � MOVEL (P) T0002H � � � �F00004
   � � � � � � � � � � � � � � � � � � � � � ��   � � � *�   � � � *�   � � �C � � TZ0006 � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ0007 � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � MOVEL (P) CN � � � � �   �F0001C � � � � � � � � � � � � � � � � � � � � �   ��   � � �   *+++++++++++++++++++++++++HTTPAPI_VERSION_1.29+++++++++++++++++++++++
   � � � *// Generate a unique temporary IFS file name
   � � �   *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � /FREE
   � � � � F00003 = http_tempfile();
   � � � /END-FREE
   � � �   *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � *�   � � �C � � TZ0007 � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ0008 � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � MOVEL (P) CO � � � � �   �F0001C � � � � � � � � � � � � � � � � � � � � �   ��   � � �   *+++++++++++++++++++++++++HTTPAPI_VERSION_1.29++++++++++++++++++++++++�
   � � � * �http_get(): Retrieve an HTTP document
   � � � * �http_url_get(): Retrieve an HTTP document
   � � � *
   � � � * � � � peURL = url to grab �(i.e.
   [4]http://www.blah.com/dir/file.txt)
   � � � * �peFilename = filename in IFS to save response into
   � � � * �peTimeout �= (optional) give up if no data is received
   for
   � � � * � � � � �this many seconds.
   � � � * �peModTime �= (optional) only get file if it was changed
   since
   � � � * � � � � �this timestamp.
   � � � * �peContentType = (optional) content type to supply (mainly
   � � � * � � � � �useful when talking to CGI scripts.) To supply
   the
   � � � * � � � � �default value for this parm, you can supply
   the
   � � � * � � � � �HTTP_CONTTYPE constant.
   � � � * �peUserAgent = (optional) This specifies the name & version
   � � � * � � � � �of your HTTP client to the server.� The
   server uses
   � � � * � � � � �it for statistics and sometimes to restrict
   pages
   � � � * � � � � �so that they're "only for Internet Explorer."
   � � � * �peSOAPAction = (optional) string used to specify the
   action
   � � � * � � � � �taken by some SOAP applications.
   � � � * � � � � �- pass *blanks to send an empty SoapAction.
   � � � * � � � � �- pass *omit (or don't pass the parm at all)
   if
   � � � * � � � � � � you don't want a SoapAction header to be
   sent.
   � � � *
   � � � * �Returns �-1 = internal error (check HTTP_ERROR)
   � � � * � � � � � �0 = timeout while receiving data or
   connecting
   � � � * � � � � � �1 = file retrieved successfully
   � � � * � � � � �> 1 = HTTP response code indicating server's
   error reply
   � � � * Now call HTTPAPI's "GET" routine. It'll download it to the
   IFS!
   � � � * �http_url_get() returns 1 when successful.
   � � � *
   � � � * �if it's unsuccessful, you can call the http_error()
   � � � * �routine to learn what went wrong.� In this example,
   � � � * �the error is put in the 'msg' variable.� You would
   � � � * �then add code to display it to a user, or write it
   � � � * �to a log file, or whatever is appropriate.�   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � /FREE
   � � � � � � � � � �F0000B = http_url_get(
   � � � � � � � � � � � � � �F00002
   � � � � � � � � � � � � �: F00008);
   � � � /END-FREE
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � �C � � F0000B � � � �IFEQ � � �CP � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0006 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) CR � � � � �   �F0000A � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � ELSE � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � F0000B � � � �IFEQ � � �CS � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0006 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) CR � � � � �   �F0000A � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � ELSE � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � F0000B � � � �IFEQ � � �CT � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � ELSE � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � F0000B � � � �IFGT � � �CT � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0006 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) CR � � � � �   �F0000A � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � ELSE � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0006 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) CR � � � � �   �F0000A � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � TZ0008 � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ0009 � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � MOVEL (P) CU � � � � �   �F0001C � � � � � � � � � � � � � � � � � � � � �   ��   � � �   *+++++++++++++++++++++++++HTTPAPI_VERSION_1.29++++++++++++++++++++++++�
   � � � * �http_parse_xml_stmf(): Parse XML data directly from a
   stream file
   � � � * � � � � � � � � � � � � (instead of downloading
   it from a server)
   � � � *
   � � � * � � �peFile = (input) Stream file (in IFS) to read data
   from
   � � � * � � peCCSID = (input) CCSID of stream file,
   � � � * � � � � � � � � � �or HTTP_XML_CALC to attempt to
   calculate it
   � � � * � � � � � � � � � � � from the XML encoding
   � � � * � � � � � � � � � �or HTTP_STMF_CALC to use the
   stream file's
   � � � * � � � � � � � � � � � CCSID attribute.
   � � � * peStartProc = (input) call-back procedure to call at the
   start
   � � � * � � � � � � � � � � � of each XML element
   received.
   � � � * � peEndProc = (input) call-back procedure to call at the
   end
   � � � * � � � � � � � � � � � of each XML element
   received.
   � � � * � �peUsrDta = (input) user-defined data that will be
   passed
   � � � * � � � � � � � � � � � � �to the call-back
   routine
   � � � *
   � � � * �Returns �-1 upon failure, 0 if successful
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � /FREE
   �   � � � /if defined(PROCESS_STARTONLY)
   � � � � � � � � � �F0000B = http_parse_xml_stmf(
   � � � � � � � � � � � � � �F00008
   � � � � � � � � � � � � �: F00009
   � � � � � � � � � � � � �: %paddr(StartOfElement)�   � � � � � � � � � � � � �: *NULL // No call-back
   procedure�   � � � � � � � � � � � � �: %addr(UserDataVar));
   � � � /endif
   �   � � � /if defined(PROCESS_ENDONLY)
   � � � � � � � � � �F0000B = http_parse_xml_stmf(
   � � � � � � � � � � � � � �F00008
   � � � � � � � � � � � � �: F00009
   � � � � � � � � � � � � �: *NULL // No call-back
   procedure�   � � � � � � � � � � � � �: %paddr(EndOfElement)�   � � � � � � � � � � � � �: %addr(UserDataVar));�   � � � /endif
   �   � � � /if defined(PROCESS_BOTHSTARTEND)
   � � � � � � � � � �F0000B = http_parse_xml_stmf(
   � � � � � � � � � � � � � �F00008
   � � � � � � � � � � � � �: F00009
   � � � � � � � � � � � � �: %paddr(StartOfElement)
   � � � � � � � � � � � � �: %paddr(EndOfElement)
   � � � � � � � � � � � � �: %addr(UserDataVar));
   � � � /endif
   �   �   � � � /END-FREE
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � �C � � F0000B � � � �IFEQ � � �CS � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � ELSE � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � F0000B � � � �IFEQ � � �CP � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0006 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) CR � � � � �   �F0000A � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � ELSE � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � EXSR � � �SZ0006 � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) CR � � � � �   �F0000A � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � TZ0009 � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ000A � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � MOVEL (P) CV � � � � �   �F0001C � � � � � � � � � � � � � � � � � � � � �   ��   � � �   *+++++++++++++++++++++++++powerEXT_Core_3.00++++++++++++++++++++++++++�
   � � � * // Clears the General Service API's global variables
   � � � * // (Tab counters and default settings and Tag array's
   � � � * // for Markup Language Node Support)
   � � � * // Clear powerEXT Service Program & Responce Object
   � � � * // Parameters:
   � � � *
   � � � * // o None
   � � � *
   � � � * // Returns:
   � � � *
   � � � * // o None
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � /FREE
   � � � � clearSrvPgm();
   � � � /END-FREE
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � *�   � � �C � � TZ000A � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ000B � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � MOVEL (P) CW � � � � �   �F0001C � � � � � � � � � � � � � � � � � � � � �   ��   � � �   *+++++++++++++++++++++++++powerEXT_Core_3.00++++++++++++++++++++++++++�
   � � � * // xmlFromStmf(filename)
   � � � * //�   � � � * // Reads a entire textbased XML File (or other) from the�   � � � * // IFS into the program memory.
   � � � * // �Parameters:
   � � � * //�   � � � * // �o File Name
   � � � * //�   � � � * // �Returns:
   � � � * //�   � � � * // �o returncode (0 = Successfull)
   � � � * //�   � � � * // �xmlFromStmf('/powerEXT/STD/PX/functions/pxwkpxxr.xml');
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � /FREE
   � � � � �F0000B = xmlFromStmf(F00008);
   � � � /END-FREE
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � �C � � F0000B � � � �IFEQ � � �CS � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �C � � � � � � � � � ELSE � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) CR � � � � �   �F0000A � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � �C � � TZ000B � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ000C � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � F00007 � � � �IFNE � � �C10 � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � � �C � � F00007 � � � �ANDNE � � C11 � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � � �C � � F00007 � � � �ANDNE � � C12 � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � � � *�   � � �C � � � � � � � � � MOVEL (P) C12 � � � � �   F00007 � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � � � � � � � � MOVEL (P) C13 � � � � �   F0001C � � � � � � � � � � � � � � � � � � � � �   ��   � � �   *+++++++++++++++++++++++++powerEXT_Core_3.00++++++++++++++++++++++++++
   � � � * // jsonToXML(%addr,%size)
   � � � * //�   � � � * // The JsonToXML method builds a XML tree of an JSON Object
   � � � * //�   � � � * // Parameters:
   � � � * // o %addr - The %addr of the string of data to be converted
   � � � * // o %size - The %size of the string of data to be converted
   � � � * //�   � � � * // Returns:
   � � � * // o None�   � � � * //
   � � � * // [5]http://powerext.com/pextdoc_CGI.htm Example
   � � � * // ExampleInput:
   � � � * // {success:false, "msg": "This is a test"}
   � � � * // ExampleOuptut:
   � � � * // <object depth="1"> � � � ��   � � � * // <success>false</success> �   � � � * // <msg>This is a Test</msg>�   � � � * // </object> � � � ��   �*++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   +
   � � � /FREE
   � � � � � � �select;
   � � � � � � �when F00007 = '1';
   � � � � � � � � �   jsonToXML(%addr(F00001):%len(%trimr(F00001)));�   � � � � � � �when F00007 = '2';
   � � � � � � � � � jsonToXML(%addr(F00001)+2:%len(F00001));�   � � � � � � �when F00007 = '3';
   � � � � � � � � � �// use xmlFromStmf();
   � � � � � � � � � jsonToXML(xmlAddr:xmlSize);�   � � � � � � �endsl;
   � � � � � � � � � F00001 = %STR(bufAddr());
   � � � /END-FREE
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � *�   � � �C � � TZ000C � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ000D � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � MOVEL (P) C14 � � � � �   F0001C � � � � � � � � � � � � � � � � � � � � �   ��   � � �   *+++++++++++++++++++++++++powerEXT_Core_3.00++++++++++++++++++++++++++�
   � � � * // xmlToStmf(filename:%addr:%size:CCSid)
   � � � * //�   � � � * // Writes a block of data (see also powerEXT stores)
   � � � * // �from memory into an IFS file.
   � � � * // �Parameters:
   � � � * //�   � � � * // �o File Name in the IFS
   � � � * // �o %addr - memory address
   � � � * // �o %size - memory size
   � � � * // �o CCSid - the file name CCSID (automatic conversion
   will occur)
   � � � * // �Returns:
   � � � * //�   � � � * // �o none
   � � � * //�   � � � * // �xmlToStmf('/powerEXT/STD/PX/functions/pxwkpxxr.xml'
   � � � * // � � � � � � � � � � � � � � � � �   :%addr(data):%len(data):1208);
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � /FREE
   � � � � � � � � � � � �xmlToStmf(
   � � � � � � � � � � � � � �F00008
   � � � � � � � � � � � � �: %addr(F00001)
   � � � � � � � � � � � � �: %len(%trimr(F00001))
   � � � � � � � � � � � � �: F00009);�   �   � � � /END-FREE
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � *�   � � �C � � TZ000D � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � SZ000E � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � MOVEL (P) C15 � � � � �   F0001C � � � � � � � � � � � � � � � � � � � � �   ��   � � �   *+++++++++++++++++++++++++powerEXT_Core_3.00++++++++++++++++++++++++++�
   � � � * // Deallocates xmlFromStmf Buffer memory used.
   � � � * // Parameters:
   � � � *
   � � � * // o None
   � � � *
   � � � * // Returns:
   � � � *
   � � � * // o None
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � /FREE
   � � � � xmlFree();
   � � � /END-FREE
   � � �   *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   � � � *�   � � �C � � TZ000E � � � �TAG � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � YSCAN � � � � BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � CALL � � �'QCLSCAN' � � � �   � � � � � � � � � �99 � � � � � � � � � � � � �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZSTNG � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZSTLN � � � � � �3 0 � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � �1 � � � � � �   YZSTPO � � � � � �3 0 � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZPTRN � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZPTLN � � � � � �3 0 � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � �*BLANKS � � �   YZTRNS � � � � � �1 � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � �'1' � � � � �   YZTRIM � � � � � �1 � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � �'?' � � � � �   YZWILD � � � � � �1 � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � � � � � � � �   �RZ � � � � � � � �3 0 � � � � � � � � � � � � �   � �   � � � *�   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   YZSTNG � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL � � *BLANKS � � �   YZPTRN � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � YOBSST � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � CALL � � �'YOBDSST' � � � �   � � � � � � � � � �99 � � � � � � � � � � � � �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDSTR � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDLEN � � � � � �5 0 � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � �'O' � � � � �   YZDKYB � � � � � �1 � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDSTP � � � � � �5 0 � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDLN2 � � � � � �5 0 � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDRSL � � � � � �5 0 � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � �'O' � � � � �   YZDKYB � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDTGT � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDRTN � � � � � �7 � � � � � � � � � � � � � �   � �   � � � *�   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � YOBCAT � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � CALL � � �'YOBDCAT' � � � �   � � � � � � � � � �99 � � � � � � � � � � � � �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDSTR � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDLEN � � � � � �5 0 � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDST2 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDLN2 � � � � � �5 0 � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDRSL � � � � � �5 0 � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � �'O' � � � � �   YZDKYB � � � � � �1 � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZDTGT � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � YOBUCAT � � � BEGSR � � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � � � *�   � � � /FREE
   � � � � YZUTGT= %TRIMR(YZUSTR) + %TRIMR(YZUST2);
   � � � /END-FREE
   � � � *�   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � *INZSR � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � Z-ADD � � *ZEROS � � �   �YYFSTS � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � YEXIT � � � � BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � CALL � � �'YOBCPYDS' � � �   � � � � � � � � � � � 99 � � � � � � � � � � � �   � � �C � � � � � � � � � PARM � � � � � � � � �   �V00007 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �V00008 � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � �10000 � � � �   YZCDSL � � � � � 13 0 � � � � � � � � � � � � � � �   � � �C � � � � � � � � � MOVEL (P) V0000A � � � �V0000B
   � � � � � � � � � � � � � � � � � � � � � ��   � � � *�   � � �C � � � � � � � � � RETURN � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � CMDEXC � � � �BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � CALL � � �'QCMDEXC' � � � �   � � � � � � � � � �99 � � � � � � � � � � � � �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZCMD � � � � � � � � � � � � � � � � � � � � �   � �   � � �C � � � � � � � � � PARM � � �3000 � � � �   �YZCMLN � � � � � 15 5 � � � � � � � � � � � � � �   �   � � � *�   � � �C � � � � � � � � � MOVE � � �*BLANKS � � �   YZCMD � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � ENDSR � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � � *�   � � �C � � *PSSR � � � � BEGSR � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � YYPSTS � � � �IFEQ � � �*ZEROS � � � � � �   � � � � � � � � � � � � � � � � � � � � � � ��   � � �C � � � � � � � � � MOVEL (P) YYFSTS � � � �F00016
   � � � � � � � � � � � � � � � � � � � � � ��   � � �C � � � � � � � � � ELSE � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � MOVEL (P) YYPSTS � � � �F00016
   � � � � � � � � � � � � � � � � � � � � � ��   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � �C � � � � � � � � � CALL � � �'YOBPSSR' � � � �   � � � � � � � � � �99 � � � � � � � � � � � � �   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZPGDS � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � PARM � � � � � � � � �   �YZRTPT � � � � � �6 � � � � � � � � � � � � � �   � �   � � �C � � � � � � � � � PARM � � �*BLANKS � � �   YZDUMP � � � � � �1 � � � � � � � � � � � � � � �   �   � � � *�   � � �C � � YZDUMP � � � �IFEQ � � �'1' � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � � �C � � � � � � � � � DUMP � � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � �C � � YZRTPT � � � �IFEQ � � �'*RETRN' � � � � �   � � � � � � � � � � � � � � � � � � � � � � ��   � � �C � � � � � � � � � MOVE � � �*ON � � � � �   *INLR � � � � � � � � � � � � � � � � � � � � � �   �   � � �C � � � � � � � � � RETURN � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   ��   � � �C � � � � � � � � � ENDIF � � � � � � � � �   � � � � � � � � � � � � � � � � � � � � � � � �   � �   � � � *�   � � �C � � � � � � � � � ENDSR � � YZRTPT � � � � �   � � � � � � � � � � � � � � � � � � � � � � �   ��   � � � *�   � � � *�   � � �P EndOfElement � �B
   � � � *
   ***********************************************************************
   *********************
   � � � * A Procedure-Interface definition, which specifies the return
   value�   � � � *
   ***********************************************************************
   *********************
   � � �D EndOfElement � �PI
   � � �D � UserDataVar � � � � � � � 1024A � varying
   � � �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)
   � � � *
   ***********************************************************************
   *********************
   � � � /FREE
   � � � *
   ***********************************************************************
   *********************
   �   �   � � � � � � �select;
   � � � � � � �when name = 'name';
   � � � � � � � �F0000P = F0000P + 1;
   � � � � � � � �// USE statement - increment FetchedData output
   array
   � � � � � � � �%OCCUR(V00007) = F0000P;
   � � � � � � � �F0000F = value;
   � � � � � � �when name = 'type';
   � � � � � � � �F0000G = value;
   � � � � � � �when name = 'c';
   � � � � � � � �F0000H = value;
   � � � � � � �when name = 'zmw';
   � � � � � � � �F0000I = value;
   � � � � � � �when name = 'tz';
   � � � � � � � �F0000J = value;
   � � � � � � �when name = 'tzs';
   � � � � � � � �F0000K = value;
   � � � � � � �when name = 'l';
   � � � � � � � �F0000L = value;
   � � � � � � �when name = 'll';
   � � � � � � � �F0000M = value;
   � � � � � � �when name = 'lat';
   � � � � � � � �F0000N = value;
   � � � � � � �when name = 'lon';
   � � � � � � � �F0000O = value;
   � � � � � � �endsl;
   �   �   �   � � � *
   ***********************************************************************
   *********************
   � � � /END-FREE
   � � � *
   ***********************************************************************
   *********************
   � � � * End-Procedure specification for EndOfElement - Do not touch
   - Must be present
   � � �P � � � � � � � � E
   � � � *
   ***********************************************************************
   *********************

References

   1. http://www.stellatools.com/
   2. http://autocomplete.wundergr-/
   3. http://ound.com/aq?query=&;(1:)&h=1&format-
   4. http://www.blah.com/dir/file.txt
   5. http://powerext.com/pextdoc_CGI.htm

Attachment: STorhF.rp4
Description: Binary data

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