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:
- h option(*srcstmt : *nounref : *nodebugio ) dftactgrp(*no) actgrp(*new)
-
- *--------------------------------------------------
- * Program: TestStuff
- *
- * Notes:
- *
- *--------------------------------------------------
- _____
- * Program Prototype (*Entry parms)
- d TESTSTUFF PR EXTPGM('TESTSTUFF')
-
- d TESTSTUFF PI
-
- * Global definitions
-
- /define NMS_Details_DS
- /copy TFSCOPYSRC,NMS_PROTOS
- /undefine NMS_Details_DS
-
- d QCMDEXC pr Extpgm('QCMDEXC')
- d 1024 Options(*varsize) Const
- d 15P 5 Const
- d 3 Options(*nopass) Const
- ____
- * Global variables, constants, arrays
- d Command s 1024a varying
- d ParmInHex s 512a varying
- * Note that NMS_DS length must be modified if NMS_OrderDetails changes.
- d NMS_DS s 115a based(NMS_DS@)
- d NMS_DS@ s * inz(%addr(NMS_OrderDetails))
- ____ *
- * Begin Mainline Logic
-
- /free
- // set standard sql options.
- exec sql
- set option closqlcsr = *endmod,
- commit = *none,
- datfmt = *iso;
-
- vvvvv // ~~~~~~~~~~~~~~~~THE STUFF TO TEST GOES BETWEEN HERE... ~~~~~~~~~~~~~~~
-
- // Load subfields here
- NMS_OrderDetails.Order = '092103';
- NMS_OrderDetails.OrderType = 'CO';
- NMS_OrderDetails.Phone# = 1234567;
- NMS_OrderDetails.OldPh# = 0;
- NMS_OrderDetails.CableType = 'FIBER ';
- NMS_OrderDetails.PriorCableType = *blanks;
- NMS_OrderDetails.COE = '00025-1';
- NMS_OrderDetails.testvarying1 = 'testVarying number 1';
- NMS_OrderDetails.testON = *on;
- NMS_OrderDetails.testP4point3 = 4.321;
- NMS_OrderDetails.testvarying2 = 'testVarying number 2';
-
- test // stuff a loose apostrophe into a varying subfield.
- test %subst(NMS_OrderDetails.testvarying1 : 4 : 1) = x'7d';
-
- // Convert the data structuer to hex before passing to sbmjob command
- exec sql
- set :ParmInHex = 'X''' CONCAT HEX(trim(T FROM(:NMS_DS))) CONCAT '''';
-
- // Build the submit job command with hexed data structure to be passed
- exec sql
- set :Command = 'SBMJOB CMD(CALL PGM(TESTSTUFF2) PARM('
- concat :ParmInHex
- concat ')) JOB(MKTesting) JOBQ(QBATCH4)';
-
- // Execute TESTSTUFF2 from QBATCH4 jobq
- CallP QCMDEXC(%trim(COMMAND) : %len(%trim(COMMAND)));
-
- ^^^^^ // ~~~~~~~~~~~~~~~~ ... and HERE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *inLR = *ON;
- /end-free
-
- C* End Mainline Logic
- ____ *--------------------------------------------------
|
|
|