code

Name
Astradyne (UK) Ltd
Scriptlanguage
Plain Text
Tabwidth
4
Date
Sun, 12 May 2013 12:35:02 +0000
IP
192.168.0.1

This is a CL example of using the QLICOBJD API to modify which source file and member an object was created from. This is particularly useful for modules created with embedded SQL as the SQL precompiler generates a temporary source member in QTEMP for compilation to the finished module.

  1.             PGM        PARM(&OBJ &LIB &TYP &SRCLIB &SRCF &SRCMBR)   
  2.                                                                      
  3.             DCL        VAR(&OBJ) TYPE(*CHAR) LEN(10)               
  4.             DCL        VAR(&LIB) TYPE(*CHAR) LEN(10)               
  5.             DCL        VAR(&TYP) TYPE(*CHAR) LEN(10)               
  6.             DCL        VAR(&DTA) TYPE(*CHAR) LEN(30)               
  7.             DCL        VAR(&SRCF) TYPE(*CHAR) LEN(10)               
  8.             DCL        VAR(&SRCLIB) TYPE(*CHAR) LEN(10)             
  9.             DCL        VAR(&SRCMBR) TYPE(*CHAR) LEN(10)             
  10.                                                                      
  11.             DCL        VAR(&RTNLIB) TYPE(*CHAR) LEN(10)             
  12.             DCL        VAR(&OBJECT) TYPE(*CHAR) LEN(20)             
  13.             DCL        VAR(&REQUEST) TYPE(*CHAR) LEN(64)           
  14.             DCL        VAR(&EC) TYPE(*CHAR) LEN(4) VALUE(X'00000000')
  15.                                                                      
  16.             CHGVAR    VAR(&OBJECT) VALUE(&OBJ *CAT &LIB)           
  17.                                                                      
  18. /* set number of variable records */                                 
  19.             CHGVAR    VAR(%SST(&REQUEST 1 4)) VALUE(X'00000001')
  20.                                                                        
  21. /* set key for user attribute */                                       
  22.             CHGVAR    VAR(%SST(&REQUEST 5 4)) VALUE(X'00000001')     
  23.                                                                        
  24. /* set data length to 30 */                                           
  25.             CHGVAR    VAR(%SST(&REQUEST 9 4)) VALUE(X'0000001E')     
  26.                                                                        
  27. /* set User Attribute */                                               
  28.             CHGVAR    VAR(&DTA) VALUE(&SRCF *CAT &SRCLIB *CAT &SRCMBR)
  29.             CHGVAR    VAR(%SST(&REQUEST 13 30)) VALUE(&DTA)         
  30.             CALL      PGM(QLICOBJD) PARM(&RTNLIB &OBJECT &TYP +     
  31.                           &REQUEST &EC)                               
  32.                                                                        
  33.             ENDPGM
  34.