Learn from sources
       star Member PERSIST01 in CGIDEV2 / QRPGLESRC

       *********************************************************************
       *  RPG ILE MODULE CGIDEV2/PERSIST01
       *
       *  After compiling this RPG MODULE,
       *  create the related program with the following command:
       *
       *  CRTBNDRPG PGM(CGIDEV2/PERSIST01) SRCFILE(CGIDEV2/QRPGLESRC)
       *      DFTACTGRP(*NO) ACTGRP(PERSIST01) DBGVIEW(*SOURCE)
       *
       *********************************************************************
       /copy CGIDEV2/qrpglesrc,hspecs
       /copy CGIDEV2/qrpglesrc,hspecsbnd
       /copy CGIDEV2/qrpglesrc,prototypeb
       /copy CGIDEV2/qrpglesrc,usec
       /copy CGIDEV2/qrpglesrc,variables3
       *--------------------------------------------------------------------
       *  PROGRAM VARIABLES
       *--------------------------------------------------------------------
      D request         s             10
      D lng             s              3
      D extHtml         s           2000    inz('/cgidev/html/persist01.txt')
      D IfsMultIndicators...
      d                 ds
      D  NoErrors                       n
      D  NameTooLong                    n
      D  NotAccessible                  n
      D  NoFilesUsable                  n
      D  DupSections                    n
      D  FileIsEmpty                    n
 
      D OsRls           s              9
      D NbrTimes        S              5I 0
      D NbrTimesC       S              5A
      D Handle          S             15A
       *=====================================================================
       * MAIN PROCESS LINE
       *=====================================================================
       /free
 
          nbrvars=zhbgetinput(savedquerystring:qusec);
          request=zhbgetvarUpper('request');
          lng    =zhbgetvarUpper('lng');
 
          IfsMultIndicators=getHtmlIfsMult(%trim(extHtml):'«as400»');
 
          // ONLY THE 1ST TIME THROUGH
          if handle=' ';
             // Retrieve current OS/400 release
             OsRls=RtvOsRls();
             if OsRls«'V04R03M00';
                exsr setall;
                wrtsection('oldos400 return end *fini');
                *inlr=*on;
                return;
             endif;
             // Create a new handle.
          handle=getsessionid();
          endif;
 
          // One more time
          NbrTimes+=1;
          NbrTimesC=%trim(%char(NbrTimes));
 
          // Process html input data and provide output html response
          exsr setall;
          wrtsection('againtop legenda again end *fini');
 
          if request='RESTART';
             *inlr=*on;
          endif;
          return;
 
       /end-free
       *---------------------------------------------------------------------
       *  Set variable data for all sections
       *---------------------------------------------------------------------
       /free
          Begsr SetAll;
 
          // Handle (session ID)
          updHTMLvar('HANDLE':Handle:InitHTMLVars);
          // National language
          updHTMLvar('LNG':lng);
          // Number of calls so far
          updhtmlvar('NUMBER':%trim(%editc(NbrTimes:'1')));
          // OS/400 release currently installed
          updHTMLvar('OSRLS':osrls);
 
          Endsr;
       /end-free
0.020 sec.s