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 -----------------------------------------------------------------------