/*******************************************************************/
/* */
/* FUNCTION: ILLUSTRATES HOW TO GENERATE, CHANGE, AND RELEASE */
/* PROFILE HANDLES IN A CL PROGRAM. */
/* */
/* LANGUAGE: CL */
/* */
/* APIS USED: QSYGETPH - GET PROFILE HANDLE */
/* QWTSETP - SET PROFILE */
/* QSYRLSPH - RELEASE PROFILE HANDLE */
/* */
/*******************************************************************/
/*******************************************************************/
PGM (&USERID &PWD &PWDLEN)
/*----------------------------------------------------------*/
/* PARAMETERS: */
/*----------------------------------------------------------*/
/* 10 CHARACTER USER ID */
DCL VAR(&USERID) TYPE(*CHAR) LEN(10)
/* PASSWORD (UP TO 50 BYTES) */
/* THIS PASSWORD IS CASE SENSITIVE */
DCL VAR(&PWD) TYPE(*CHAR) LEN(50)
/* LENGTH OF THE PASSWORD IN BINARY(4) FORM (EXAMPLE-- A */
/* 5 BYTE PASSWORD LENGTH WOULD BE X'00000005) */
DCL VAR(&PWDLEN) TYPE(*CHAR) LEN(4)
/*----------------------------------------------------------*/
/* VARIABLES NEEDED BY THIS PROGRAM: */
/*----------------------------------------------------------*/
/* PASSWORD CCSID VALUE OF -1. THE CURRENT PASSWORD LEVEL */
/* FOR THE SYSTEM IS USED TO DETERMINE THE CCSID OF THE */
/* PASSWORD. */
DCL VAR(&PWDCCSID) TYPE(*CHAR) LEN(4) +
VALUE( X'FFFFFFFF')
/* EXCEPTIONS WILL BE SIGNALLED */
DCL VAR(&ERRCODE) TYPE(*CHAR) LEN(8) +
VALUE( X'0000000000000000')
/* PASSWORD FOR *CURRENT USER ID. WHEN *CURRENT IS */
/* SPECIFIED FOR THE USER ID, THE PASSWORD FIELD WILL BE */
/* IGNORED. */
DCL VAR(&CURPWD) TYPE(*CHAR) LEN(10) +
VALUE(' ')
/* PROFILE HANDLES RETURNED */
DCL VAR(&PRFHNDL1) TYPE(*CHAR) LEN(12)
DCL VAR(&PRFHNDL2) TYPE(*CHAR) LEN(12)
/*----------------------------------------------------------*/
/* GENERATE PROFILE HANDLES FOR THE USER ID THIS PROGRAM */
/* IS CURRENTLY RUNNING UNDER AND FOR THE USER ID PASSED */
/* TO THIS PROGRAM: */
/*----------------------------------------------------------*/
CALL PGM(QSYGETPH) PARM('*CURRENT ' +
&CURPWD /* PASSWORD IGNORED +
WHEN *CURRENT IS +
SPECIFIED */+
&PRFHNDL1)
CALL PGM(QSYGETPH) PARM(&USERID +
&PWD +
&PRFHNDL2 +
&ERRCODE /* EXCEPTIONS WILL +
BE SIGNALLED */ +
&PWDLEN /* LENGTH OF PWD */ +
&PWDCCSID) /* PASSWORD CCSID */
/*----------------------------------------------------------*/
/* CHANGE THE USER FOR THIS JOB TO THE USER ID PASSED TO */
/* THIS PROGRAM: */
/*----------------------------------------------------------*/
CALL PGM(QWTSETP) PARM(&PRFHNDL2)
/*----------------------------------------------------------*/
/* THIS PROGRAM IS NOW RUNNING UNDER THE USER ID PASSED TO */
/* THIS PROGRAM. */
/*----------------------------------------------------------*/
/*----------------------------------------------------------*/
CALL PROGRAMAS
/* AQUI DEBERIAMOS INSERTAR LAS ACCIONES A REALIZAR */
/*----------------------------------------------------------*/
/* NOW CHANGE THE USER ID FOR THIS JOB BACK TO THE USER ID */
/* IT WAS ORIGINALLY RUNNING UNDER */
/*----------------------------------------------------------*/
CALL PGM(QWTSETP) PARM(&PRFHNDL1)
/*----------------------------------------------------------*/
/* THE PROFILE HANDLES GENERATED IN THIS PROGRAM CAN NOW */
/* BE RELEASED: */
/*----------------------------------------------------------*/
CALL PGM(QSYRLSPH) PARM(&PRFHNDL1)
CALL PGM(QSYRLSPH) PARM(&PRFHNDL2)
ENDPGM