midrange.com code scratchpad
Name:
Member TESTSTUFF
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
05/30/2012 02:33:52 pm
IP:
Logged
Description:
Test code for passing data structure to a submitted job.
This sqlrpgle program submits TESTSTUFF2 passing the data structure
Compiled at 7.1
Code:
  1.      h  option(*srcstmt : *nounref : *nodebugio ) dftactgrp(*no) actgrp(*new)
  2.  
  3.       *--------------------------------------------------
  4.       * Program:        TestStuff
  5.       *
  6.       * Notes:
  7.       *
  8.       *--------------------------------------------------
  9. _____
  10.       * Program Prototype  (*Entry parms)
  11.      d TESTSTUFF       PR                  EXTPGM('TESTSTUFF')
  12.  
  13.      d TESTSTUFF       PI
  14.  
  15.       * Global definitions
  16.  
  17.       /define NMS_Details_DS
  18.       /copy TFSCOPYSRC,NMS_PROTOS
  19.       /undefine NMS_Details_DS
  20.  
  21.      d QCMDEXC         pr                  Extpgm('QCMDEXC')
  22.      d                             1024    Options(*varsize) Const
  23.      d                               15P 5 Const
  24.      d                                3    Options(*nopass) Const
  25. ____
  26.       * Global variables, constants, arrays
  27.      d Command         s           1024a   varying
  28.      d ParmInHex       s            512a   varying
  29.       * Note that NMS_DS length must be modified if NMS_OrderDetails changes. 
  30.      d NMS_DS          s            115a   based(NMS_DS@)
  31.      d NMS_DS@         s               *   inz(%addr(NMS_OrderDetails))
  32. ____  *
  33.       * Begin Mainline Logic
  34.  
  35.       /free
  36.        // set standard sql options.
  37.        exec sql
  38.        set option  closqlcsr = *endmod,
  39.                       commit = *none,
  40.                       datfmt = *iso;
  41.  
  42. vvvvv  // ~~~~~~~~~~~~~~~~THE STUFF TO TEST GOES BETWEEN HERE... ~~~~~~~~~~~~~~~
  43.  
  44.        // Load subfields here
  45.        NMS_OrderDetails.Order =  '092103';
  46.        NMS_OrderDetails.OrderType = 'CO';
  47.        NMS_OrderDetails.Phone# = 1234567;
  48.        NMS_OrderDetails.OldPh# = 0;
  49.        NMS_OrderDetails.CableType = 'FIBER ';
  50.        NMS_OrderDetails.PriorCableType =  *blanks;
  51.        NMS_OrderDetails.COE =  '00025-1';
  52.        NMS_OrderDetails.testvarying1 =  'testVarying number 1';
  53.        NMS_OrderDetails.testON =  *on;
  54.        NMS_OrderDetails.testP4point3 = 4.321;
  55.        NMS_OrderDetails.testvarying2 =  'testVarying number 2';
  56.  
  57. test   // stuff a loose apostrophe into a varying subfield.
  58. test   %subst(NMS_OrderDetails.testvarying1 : 4 : 1) =  x'7d';
  59.  
  60.        // Convert the data structuer to hex before passing to sbmjob command
  61.        exec sql
  62.        set :ParmInHex = 'X''' CONCAT HEX(trim(T FROM(:NMS_DS))) CONCAT '''';
  63.  
  64.        // Build the submit job command with hexed data structure to be passed
  65.        exec sql
  66.         set :Command = 'SBMJOB CMD(CALL PGM(TESTSTUFF2) PARM('
  67.                 concat :ParmInHex
  68.                 concat ')) JOB(MKTesting) JOBQ(QBATCH4)';
  69.  
  70.         // Execute TESTSTUFF2 from QBATCH4 jobq
  71.         CallP QCMDEXC(%trim(COMMAND) : %len(%trim(COMMAND)));
  72.  
  73. ^^^^^  // ~~~~~~~~~~~~~~~~   ... and HERE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  74.        *inLR = *ON;
  75.       /end-free
  76.  
  77.      C* End Mainline Logic
  78. ____  *--------------------------------------------------
© 2004-2019 by midrange.com generated in 0.005s valid xhtml & css