Introduction:
When a profile is changed and saved, the change does not become effective immediately. The command 'RELOAD PROF=profile', executed in TPXOPER, is necessary to reload the specific profile. There are no wildcards available to reload more than one profile at a time.
Question:
How to reload all profiles with one single command?
Answer
Attached are two sample ACLs, PROFALL and PROFGET, that will accomplish this.
Setup:
- Add members PROFALL and PROFGET to your custom ACL library in your ACLLIB concatenation.
- Enter TPXOPER:
- RELOAD ACL=PROFALL
- RELOAD ACL=PROFGET
To reload all profiles at any time:
- Enter TPXOPER
- Start PROFALL by entering: /S PROFALL<cmdkey>
- Ensure no space after PROFALL when pressing Cmdkey.
- Command Key default is PF12.
PROFALL executes PROFGET to obtain the list of all profiles. It then issues a RELOAD command for every profile. At the end, a status message is displayed.
Additional Information:
PROFALL.txt
PROFGET.txt
ACL PROFALL
******************************************************************* 00010000
* ACL PROFALL * 00020012
* =========== * 00030001
* * 00040000
* Disclaimer * 00050014
* ========== * 00060010
* This special example is provided by CA technical Support and is * 00070009
* not a supported feature/function of the CA-TPX product or its * 00080009
* documentation. Customers choose to implement at own discretion. * 00090009
* * 00100009
* * 00110009
* Purpose of this ACL * 00120001
* =================== * 00130010
* This ACL reloads all Profiles which are defined in TPXADMIN. * 00140006
* The complete list of Profiles can be seen in the "TPX Profile * 00150006
* Table List" (access from TPXADMIN by selecting Option 1 * 00160006
* 'TPX User/Group Maintenance', then 2 'Profile Maintenance'). * 00170011
* In the 1st panel of the SMRT the parameter 'Load profiles at * 00180006
* startup:' determines if all Profiles are preloaded into Storage * 00190006
* during start of TPX or not. This Parameter has to be set to 'Y' * 00200006
* if dynamic Users are used in the TPX. * 00210006
* When a Profile is changed and saved the change does not become * 00220006
* effective immediately. The command 'RELOAD PROF=profile', * 00230011
* executed in TPXOPER, is necessary to reload the specific * 00240006
* profile. There are no Wildcards available to reload more than * 00250006
* one profile at a time. * 00260006
* * 00270006
* To reload all Profiles this ACL reads all Profiles (done by * 00280006
* subroutine PROFGET) and issues the RELOAD-Command for every * 00290006
* profile one after the other. * 00300006
* * 00310008
* * 00320008
* Prerequisites * 00330013
* ============= * 00340013
* - The user that runs the ACL needs to have authority to * 00350008
* administer ALL groups that exist in a shop. * 00360008
* If they do not have full authority then the only profiles * 00370008
* that will get put into the list, produced by PROFGET, would * 00380008
* be those created in the groups for which they do have * 00390008
* administrative authority. * 00400008
* - The user also needs to have access to TPXOPER for start this * 00410008
* ACL (/S PROFALL) * 00420008
* - The user also needs to have authority to issue the RELOAD * 00430008
* command. * 00440008
* * 00450008
* * 00460008
* Results of running ACL: * 00470006
* ======================= * 00480010
* 1) Successful completion * 00490013
* ------------------------ * 00500013
* Successful completion is indicated by these messages in the * 00510013
* TPXOPER-Session: * 00520010
* +TPX ************** TPX Operator ************ 5.1/SP02 TEN0200+ * 00530006
* | | * 00540006
* | | * 00550006
* | | * 00560006
* | | * 00570006
* | Profile table is pre-defined for 300 entries. | * 00580006
* | | * 00590006
* | Number of profiles found and reloads issued: 12 | * 00600006
* | | * 00610006
* | Please check TPXlog for the profile names. | * 00620006
* | | * 00630006
* | TPXL1001 is only generated for already resident profiles. | * 00640006
* | There will be no message for not loaded profiles. | * 00650006
* | | * 00660006
* | Command ==> | * 00670006
* +---------- PF1=Help PF3=End PF4=Return PF6=Repeat --------+ * 00680006
* * 00690006
* The TPXlog contains a TPXL1001 Message for every Profile * 00700006
* already placed in the storage: * 00710006
* TPXL1001 date time OPERATOR - USER=user ==> RELOAD PROF=profile * 00720006
* * 00730006
* * 00740006
* 2) Unsuccessful completion * 00750013
* -------------------------- * 00760013
* If the Array used for storing the names of the profiles is too * 00770010
* small (the Default is 300 Entries) then this Messages appear on * 00780013
* the TPXOPER-Screen: * 00790010
* +TPX ************** TPX Operator ************ 5.1/SP02 TEN0200+ * 00800006
* | | * 00810006
* | | * 00820006
* | | * 00830006
* | | * 00840006
* | Profile table is pre-defined for 300 entries. | * 00850006
* | | * 00860006
* | Profile table too small - increase size in ACL PROFALL | * 00870006
* | | * 00880006
* | Number of reloads issued: 0 | * 00890006
* | | * 00900006
* | | * 00910006
* | | * 00920006
* | | * 00930006
* | Command ==> | * 00940006
* +---------- PF1=Help PF3=End PF4=Return PF6=Repeat --------+ * 00950006
* * 00960006
* In this case the solution is to increase the Array by setting * 00970011
* Variable A3 in line 14400 to a higher value. * 00980010
* * 00990001
* * 01000010
* Call: * 01010006
* ===== * 01020010
* - Execute this ACL in TPXOPER by /S PROFALL * 01030006
* (assuming that '/' is the Command Character and PF12 is the * 01040006
* Command Key) * 01050006
* * 01060006
* * 01070010
* Subroutines: * 01080006
* ============ * 01090010
* - PROFGET * 01100006
* Reading all Profiles and stores them in Variables PROF(1), * 01110006
* PROF(2), ... * 01120006
* * 01130002
* * 01140010
* Variables used: * 01150002
* =============== * 01160010
* - PROF(n) Array to store the read profile names * 01170002
* - PROFCNT Size of Array (= Number of Profiles, max is 9999)* 01180008
* - A1 Counter * 01190002
* - A2 Number of read Profiles * 01200002
* - A3 Size of Array (= Number of Profiles) * 01210002
* - FLAG Flag for result of Profile Reading in PROFGET * 01220008
* - NAME Name of Profile (used for RELOAD-Command) * 01230002
* - MSG1 to MSG5 Messages displayed in TPXOPER-Panel. * 01240008
* * 01250002
* Variables filled in ACL PROFGET * 01260002
* - COUNT Number of read Profiles * 01270002
* - PROF(n) Array to store the read profile names * 01280002
* * 01290002
* * 01300010
* INPUT: * 01310002
* ====== * 01320010
* - *NONE* * 01330002
* * 01340002
* * 01350010
* OUTPUT: * 01360002
* ======= * 01370010
* - Display of Results in TPXOPER Session * 01380002
*-----------------------------------------------------------------* 01390002
OPTION MAXI,10000 01400000
* 01410000
* Increase size of Array containing 01420004
* the Profile names here| 01430004
SET A3,300 <--- Number of profiles defined 01440006
* 01450000
UDEFINE PROFCNT,4,NUM 01460000
SET PROFCNT,&A3 01470000
UDELETE PROF 01480000
UDEFINE PROF(&A3),8 01490000
UDEFINE COUNT,4,NUM 01500000
UDEFINE NAME,8 01510000
UDEFINE MSG1,70 01520000
UDEFINE MSG2,70 01530000
UDEFINE MSG3,70 01540000
UDEFINE MSG4,70 01550000
UDEFINE MSG5,70 01560000
UDEFINE FLAG,8 01570008
* 01580000
SET MSG2,'Number of profiles found and reloads issued: ' 01590000
SET MSG3,'Please check TPXlog for the profile names.' 01600000
SET MSG4,'TPXL1001 is only generated for already resident profiles.' 01610000
SET MSG5,'There will be no message for not loaded profiles.' 01620000
SET FLAG,' ' 01630008
* 01640000
*-----------------------------------------------------------------* 01650000
* Check if Session TPXADMIN is active. * 01660000
* If 'YES' then end and restart of TPXADMIN. * 01670000
* If 'NO' then start of TPXADMIN. * 01680000
*-----------------------------------------------------------------* 01690000
ADMCHECK NOP 01700000
SCAN &SESS_INF(TPXADMIN),'ACTIVE' 01710000
BRANCH NE,ADMSTART 01720000
COMMAND 'I TPXADMIN' 01730000
WAIT 2 01740000
* 01750000
*-----------------------------------------------------------------* 01760000
* Start of TPXADMIN. * 01770000
*-----------------------------------------------------------------* 01780000
ADMSTART NOP 01790000
COMMAND 'A TPXADMIN' 01800000
WAIT 4 01810000
* 01820000
*-----------------------------------------------------------------* 01830000
* Start of ACL PROFGET which reads all Profiles. * 01840000
* This ACL waits for PROFGET to complete. * 01850000
*-----------------------------------------------------------------* 01860000
PROFGET NOP 01870000
ACLPGM TPXADMIN,PROFGET 01880006
SUSPEND 1 01890000
* 01900000
*-----------------------------------------------------------------* 01910000
* Was List of Profiles found? * 01920008
*-----------------------------------------------------------------* 01930000
LIST NOP 01940008
COMPARE &FLAG,'FULL' 01950008
BRANCH EQ,NOTFOUND 01960008
* 01970008
*-----------------------------------------------------------------* 01980008
* Execution of RELOAD for all Profiles read by PROFGET. * 01990008
*-----------------------------------------------------------------* 02000008
SET A2,&COUNT 02010000
COMPARE A2,0 02020000
BRANCH EQ,END 02030000
SET A1,1 02040000
LOOP NOP 02050000
SET NAME,&PROF(&A1) 02060000
CLEAR 02070000
KEY 'RELOAD PROF=&NAME' 02080000
ENTER 02090000
ADD A1,1 02100000
COMPARE A1,A2 02110000
BRANCH LE,LOOP 02120000
END NOP 02130000
CLEAR 02140008
ENTER 02150008
OUTPUT 'Profile table is pre-defined for &PROFCNT entries.',10/2 02160011
OUTPUTC '&MSG1',12/2 02170011
OUTPUTC '&MSG2. &COUNT',14/2 02180011
OUTPUTC '&MSG3',16/2 02190011
OUTPUTC '&MSG4',18/2 02200011
OUTPUTC '&MSG5',19/2 02210011
PAUSE 02220008
CLEAR 02230000
ENTER 02240000
* 02250008
*-----------------------------------------------------------------* 02260008
* Delete defined variables as they are defined on User-Level. * 02270008
* This avoids strange results if ACL is restarted from same user. * 02280008
*-----------------------------------------------------------------* 02290008
DELETION NOP 02300008
UDELETE PROF 02310000
UDELETE PROF(&A3) 02320000
UDELETE COUNT 02330000
UDELETE NAME 02340000
UDELETE MSG1 02350000
UDELETE MSG2 02360000
UDELETE MSG3 02370000
UDELETE MSG4 02380000
UDELETE MSG5 02390000
STOP 02400000
END 02410008
* 02420008
*-----------------------------------------------------------------* 02430008
* End this ACL and show Error Message defined on User-Level. * 02440008
* This avoids strange results if ACL is restarted from same user. * 02450008
*-----------------------------------------------------------------* 02460008
NOTFOUND NOP 02470008
CLEAR 02480008
ENTER 02490008
OUTPUT 'No Profile Table found. Please check authority of',12/2 02500008
OUTPUTC 'this user to access the Profile list in TPXADMIN.',13/2 02510008
PAUSE 02520008
BRANCH ANY,DELETION 02530008
ACL PROFGET
******************************************************************* 00010000
* ACL PROFGET * 00020016
* =========== * 00030017
* * 00040013
* Disclaimer * 00050013
* ========== * 00060015
* This special example is provided by CA technical Support and is * 00070013
* not a supported feature/function of the CA-TPX product or its * 00080013
* documentation. Customers choose to implement at own discretion. * 00090013
* * 00100013
* * 00110013
* Purpose of this ACL * 00120000
* =================== * 00130015
* This ACL is called by ACL PROFALL. It reads all Profiles from * 00140000
* TPXADMIN and writes them into Variables PROF(1), PROF(2), ... * 00150000
*-----------------------------------------------------------------* 00160000
OPTION FLOW,ON 00170009
OPTION MAXI,10000 00180000
* 00190000
*-----------------------------------------------------------------* 00200000
* Call Option '1', then '2' in TPXADMIN to get into the list of * 00210000
* Profiles. * 00220000
*-----------------------------------------------------------------* 00230000
NAVIGATE NOP 00240000
HOME 00250000
KEY '1' 00260000
ENTER 00270000
KEY '2' 00280000
ENTER 00290000
* 00300000
*-----------------------------------------------------------------* 00310000
* Check if List of Profiles is reached. If not, then end. * 00320008
*-----------------------------------------------------------------* 00330008
WAIT 3 00340008
SEARCH 'TPX Profile Table' 00350008
BRANCH NE,NOTFOUND 00360009
* 00370008
*-----------------------------------------------------------------* 00380008
* Reading of the Profiles. * 00390008
* On the screen the first Profile is located at line 7 and column * 00400008
* 4, means at Byte 484 (= 6*80+4). * 00410000
* - When reading reaches literal '********' the list is complete. * 00420000
* - When reaching ' ' PF08 needs to be entered and reading * 00430000
* commences at the top (line 7). * 00440000
*-----------------------------------------------------------------* 00450000
LISTE NOP 00460000
SET A1,1 Counter and Index for PROF(...) 00470000
SET A3,484 00480000
SET A2,&PROFCNT 00490000
LOOP NOP 00500000
COMPARE A2,A1 00510000
BRANCH EQ,TABFULL 00520000
SET PROF(&A1),&SCREEN(&A3,8) 00530000
COMPARE '&PROF(&A1)','********' 00540000
BRANCH EQ,RETOUR 00550000
COMPARE '&PROF(&A1)',' ' 00560000
BRANCH EQ,PF08 00570000
ADD A1,1 next Index 00580000
ADD A3,80 next Line 00590000
BRANCH ANY,LOOP 00600000
* 00610000
PF08 NOP 00620000
HOME 00630000
PF 8 00640000
SET A3,484 Byteposition of first Profile name 00650000
BRANCH ANY,LOOP 00660000
* 00670000
*-----------------------------------------------------------------* 00680000
* End of list reached. ACL gives work back to PROFALL, ends the * 00690000
* TPXADMIN-Session and ends itself. * 00700000
*-----------------------------------------------------------------* 00710000
RETOUR NOP 00720000
SET PROF(&A1),' ' 00730000
SUB A1,1 Lower Index by 1 as '********' is no 00740000
* valid Profile. 00750000
SET COUNT,&A1 00760000
NOTIFY TPXOPER 00770000
COMMAND 'I TPXADMIN' 00780000
STOP 00790000
* 00800008
TABFULL NOP 00810000
SET MSG1,'Profile table too small - increase size in ACL PROFALL' 00820004
SET MSG2,'Number of reloads issued: ' 00830004
SET MSG3,' ' 00840004
SET MSG4,' ' 00850004
SET MSG5,' ' 00860004
SET A1,0 00870000
SET COUNT,&A1 00880000
NOTIFY TPXOPER 00890000
COMMAND 'I TPXADMIN' 00900000
STOP 00910000
* 00920008
NOTFOUND NOP 00930008
SET MSG1,'No Profile Table found. Please check authority of' 00940008
SET MSG2,'this user to access the Profile list.' 00950008
SET MSG3,' ' 00960008
SET MSG4,' ' 00970008
SET MSG5,' ' 00980008
SET FLAG,'FULL' 00990010
NOTIFY TPXOPER 01000008
COMMAND 'I TPXADMIN' 01010008
STOP 01020008