You are on page 1of 10

When you enter a New Tran id:

Role of Online Program: When a new transaction id is given and pressed Enter the online program of that screen receives the map by calling AR60PD-RECEIVE-MAP in AR60PD Para and validates the tran id by calling the AR60PD-NEW-TRANS-ROUTINE Para in AR60PD copy book. This paragraph validates the given Tran id and passes the control to AR70PDXCTL-TO-AROXCTL Para in AR70PD copybook. This paragraph sets the necessary key code ( Stating whether it is a direct transfer and non Direct transfer in this case it is a Direct transfer) by calling AR70PD-CHECK-KEY-CODE in AR70PD copy book and then moves the new given tran id to ARCA-TRANS-ID ( Comm Area) and then passes the control to AROXCTL. AROXCTL FLOW: Aroxctl initially Sets and executes the Error routines and Date and Time and the communication area length is checked. If the Communication Area is valid then it checks for ARCA-DIRECT-TRANSFERCODE commarea variable. If this is set to true then it passes the control to 1140-MLCOMMAREA-VERIFY.In this Para it checks for the application code CMS and then passes the control to 1200-ML-GET-SECURITY-INFO to get the security information of the User. Here a service request is raised and it returns the following values. * * * * * * * * * * * * * * * -DATE-FORMAT -NAME -OPERATOR-ID -SOURCE-ID -ASM-REPID -ASM-ORG -COLLECTOR-ID -LANGUAGE-RULESET -APP-DATA-TABLE -USER -FIELD-SECURITY-CODE -FILE-TABLE -PGM-TABLE -TRANS-ID-PREFIX PIC X (01). PIC X (20). PIC X(03). PIC X(03). PIC X(03). PIC 9(03). PIC X(03). PIC X(03). OCCURS 30 TIMES PIC X(01). PIC PIC PIC PIC X(01). X(01). X(01). X(02).

It also tells us with a return code if the signon is * * * * * 1. VALID 2. FORCE-PURGED 3. NO ONE SIGNED-ON 4. EXPIRED 5. INVALID-STATUS

It also calls SSXODP-GET-OPERATOR-DATA and gets the operator data, in case if it finds it as invalid User it throws an error screen. Then it builds the SSCCLK AREA from the data passed back by the service request 1 by the XCTL program by performing SSXODQ-MOVE-SSCCLK-DATA and then bulids the AR60WS commarea.Then it Sets the Application code.Since the xctl program will Process trans-id's in two different applications, we must determine the occurrences number in the security system based on the trans-id area or the previous trans-id area whichever has a valid trans-id in it. Then it reads the FILE and PROGRAM data table records. Saves the Program Table Header and Detail record in the COMM AREA. This reads are only done when a COMM AREA does not exist and is being built initially.If there is no File table found it throws you an Error screen by calling the error routine 9000-ERROR-ROUTINE-SECT. It loads the program table header reocrd in to the COMM AREA.This load is attempted each time the XCTL program is invoked to insure that the program table header is indeed in the COMM AREA.If the Program Table Header is already in the COMM AREA, the "READ" to the program table will not be attempted.If there is no program table found it throws you an error screen by calling the error routine 9000-ERROR-ROUTINE-SECT.It also initializes the remaining fields of the COMM AREA. If the transaction was started with out a COMM AREA, it checks for a TEMPORARY STORAGE QUEUE record by calling the 1405-ML-ITS-TSQ-CHECK para.If the transaction was started with out a valid COMM AREA it looks for a temporary storage queue record defined by SS69WS.It saves the SS69WS date in the COMM AREA, to pass back to other applications if present and then it deletes the SS69WS-TSQ and then passes the control to 1405-ML-ITS-TSQ-CHECK. It reads the TSQ in to the AR03WS-TEMP-STORAGE-RECORD.It checks for the return code and populates the COMM AREA from AR03WS and deletes the TSQ.Then it passes the control to 1406-ML-BYPASS-TS-CHECK.In this it checks whether any PF key is pressed and then passes the control to 1500-ML-BYPASS-PF-KEYS. If, at this point, the trans-id is not equal to the previous Trans-id and the screen number is equal to 99 and the Trans-id is not a pf function, we must assume that a new Transaction was keyed into the new trans-id field of the Previous screen or the last screen

of a series of screens is returning back to the locate screen. Therefore, we must Reset the previous trans-id field to the trans-id field. Then it checks for the value of ARCA-ASR-XS-ASR-NOT-ACTIVE and then passes the control to 1599-ML-BYPASS-ASR. N O T E --- IF WE GET HERE, AN ASR SYSTEM TRANSFER IS NOT TO TAKE PLACE, OR THE ASR TRANSFER IS NOT TO TAKE PLACE YET, DUE TO.. 1. THE TRANS-ID HAS NOT CHANGED 2. AND/OR THE SPECIFIC SCREEN/PAGE IS STILL THE SAME AS THE ORIGINAL PAGE REQUESTED OR THE TRANSFER-TO SCREEN NUMBER IS A 99 (ALLOWS PAGING WITHIN A SPECIFIC TRANS-ID). 3. CALL THE TRAN-ID SECURITY SERVICE REQUEST Here in this paragraph it moves the ARCA-TI-POS-3-4 to SMPTWS-TRANS-ID and ARCA-SCREEN-NBR to SMPTWS-SCREEN-NBR then it checks with the SMPT key and when found it moves the SMPTWS-RECORD to ARCA-PGM-TABLE-DETAIL and passes the control to 1600-ML-BYPASS-SECURITY. In 1600-ML-BYPASS-SECURITY it Loads PF keys, Program-ID, and Map name into COMM AREA for this transaction. When we reach this point in the program the user has either had the security bypassed or has been approved to use this transaction.Then it passes the control to 1700-CHECK-USER-AREA Checking Security: In 1700-CHECK-USER-AREA it perform two paragraphs named 5000-SECURITYUSER-CODE-SECT and 6000-USER-WORK-AREA-SECT.These paragraphs will contain any user defined code for security.If the trans-id returned has a generic prefix pos 1-2='..' then it sets the prefix to the default prefix for this system then it verifies the transaction security whether the user can access the transaction or not. MOVE WS-APPL-CODE TO SSXTVI-APPL-CODE

PERFORM SSXTVP-VERIFY-FUNC-SEC THRU SSXTVP-VFS-EXIT.

Here after verifying the security information for the transaction ID for the user then it populates the reason code and reason description variables, if the USER ID is INVALID, or if the user does not have access to the specified tran id or if the user does not have access to the application, or if the user does not have access to the specified page no, or if there is no entry in SMPT.If security is valid then it checks for COMM AREA, if there is no COMM AREA then it will do XCTL to ARCA-PROGRAM-ID otherwise XCTL to ARCA-PROGRAM-ID with COMM AREA and length of COMM AREA.

When you press a PF key on a Screen:


when a PF key is pressed on an online screen, in the online program First the working storage PF key variable SS08WS-VALID-PF-KEY or SS08WS-EIBAID-VALID-PFKEY is checked and COMM AREA variable ARCA-SCREEN-NBR is populated with 99 (initial screen value )then the control is given to AR70PD-XCTL-TOAROXCTL.Here it sets the key code and then passes the control to AROXCTL When the control passes to AROXCTL, in 1406-ML-BYPASS-TS-CHECK Para it checks whether any PF key is pressed, and passes the control to 8100-SPECIAL-PFKEYS-SECT. 1406-ML-BYPASS-TS-CHECK Para performs the following things. CHECK THE PF KEYS/FUNCTIONS WHETHER KEYED OR THROUGH DATA ENTRY. THE PF KEYS/FUNCTIONS WILL ONLY BE CHECKED IF THE SCREEN NUMBER IS EQUAL TO 99. ALSO, IF THE SCREEN NUMBER IS 99, EIBAID (INDICATING WHICH FUNCTION KEY WAS HIT) IS RESET TO THE ENTER KEY (TO PREVENT OVERRIDES FROM HAPPENING TWICE) ALSO, PF13 = PF1. IF IN NEW TRANS-ID AREA PF1 OR PF01. ALSO, PF14 = PF2. IF IN NEW TRANS-ID AREA PF2 OR PF02. ALSO, PF15 = PF3. IF IN NEW TRANS-ID AREA PF3 OR PF03. ALSO, PF16 = PF4. IF IN NEW TRANS-ID AREA PF4 OR PF04. ALSO, PF17 = PF5. IF IN NEW TRANS-ID AREA PF5 OR PF05. ALSO, PF18 = PF6. IF IN NEW TRANS-ID AREA PF6 OR PF06. IN ADDITION THESE ROUTINES LOOK FOR THE SPECIAL LITERALS '?INQ' AND '?MNT'. IF '?INQ' IS ENCOUNTERED, THE 3RD DIGIT OF THE TRANS-ID WILL BE CHANGED TO A 'M' (MAINT FUNCTION) IF '?INQ' IS ENCOUNTERED, THE 3RD DIGIT OF THE TRANS-ID WILL BE CHANGED TO 'Q' (INQUIRY FUNCTION).

Flow: 1

Passes the control to 8100-SPECIAL-PF-KEYS-SECT if the PF key pressed is

DFHPF9 DFHPF11 DFHPF12 DFHPF19 DFHPF20 DFHPF21 DFHPF23 DFHPF24.

In this section, in 8110-SPFK-BEGIN Para Tran ID is reassigned to ARCA-TRANS-ID by checking the key pressed and also the ARCA-SCREEN-NO is initialized to 99 then it passes the control to 1200-ML-GET-SECURITY-INFO.Here it executes the security routine. PERFORM SSXODP-GET-OPERATOR-DATA THRU SSXODP-OD-EXIT. Then it checks for the operator data and if invalid user then it passes the control to 9000 error routine Para. Then it builds all the security data in COMM AREA (operator ID, source ID, Rep ID etc) and then reads the file and program table data table records. Saves the program table header and detail record in COMM AREA.This reads are only done when a COMM AREA does not exist and is being built initially. Then the control is passed to 1407-ML-BYPASS-SPECIAL-PF-KEYS Para. Here as the ARCA-SCREENNO is equal to 99 it passes the control to 1500-ML-BYPASS-PF-KEYS.Here it resets the ARCA-TRANS-ID value from ARCA-PREV-TRANS-ID and passes the control to 1599ML-BYPASS-ASR. Here in this paragraph it moves the ARCA-TI-POS-3-4 to SMPTWS-TRANS-ID and ARCA-SCREEN-NBR to SMPTWS-SCREEN-NBR then it checks with the SMPT key and when found it moves the SMPTWS-RECORD to ARCA-PGM-TABLE-DETAIL and passes the control to 1600-ML-BYPASS-SECURITY.

In 1600-ML-BYPASS-SECURITY it Loads PF keys, Program-ID, and Map name into COMM AREA for this transaction. When we reach this point in the program the user has either had the security bypassed or has been approved to use this transaction.Then it passes the control to 1700-CHECK-USER-AREA Checking Security: In 1700-CHECK-USER-AREA it perform two paragraphs named 5000-SECURITYUSER-CODE-SECT and 6000-USER-WORK-AREA-SECT.These paragraphs will contain any user defined code for security.If the trans-id returned has a generic prefix pos 1-2='..' then it sets the prefix to the default prefix for this system then it verifies the transaction security whether the user can access the transaction or not. MOVE WS-APPL-CODE TO SSXTVI-APPL-CODE

PERFORM SSXTVP-VERIFY-FUNC-SEC THRU SSXTVP-VFS-EXIT. Here after verifying the security information for the transaction ID for the user then it populates the reason code and reason description variables,if the USER ID is INVALID, or if the user does not have access to the specified tran id or if the user does not have access to the application, or if the user does not have access to the specified page no, or if there is no entry in SMPT.If security is valid then it checks for COMM AREA, if there is no COMM AREA then it will do XCTL to ARCA-PROGRAM-ID otherwise XCTL to ARCA-PROGRAM-ID with COMM AREA and length of COMM AREA.

PF Key Flow 2:
Suppose if the PF key pressed is not DFHPF9 DFHPF11 DFHPF12 DFHPF19 DFHPF20 DFHPF21 DFHPF23 DFHPF24 Then it passes thru the following paragraphs and the ARCA-TRAN-ID is assigned with the corresponding program table value.

1410-ML-CHECK-PF1. CHECK PF1 IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 1 IS '?INQ' OR '?MNT' TAKE SPECIAL ACTION AND CHANGE THE 3RD CHARACTER OF THE TRANS-ID TO 'Q' OR 'M'. IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 1 IS SPACES OR 'RESV' BYPASS THE 'PF1' FUNCTION EVEN IF THE PF1 KEY WAS DEPRESSED OR ENTERED. 1420-ML-CHECK-PF2. CHECK PF2 IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 2 IS '?INQ' OR '?MNT' TAKE SPECIAL ACTION AND CHANGE THE 3RD CHARACTER OF THE TRANS-ID TO 'Q' OR 'M'. IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 2 IS SPACES OR 'RESV' BYPASS THE 'PF2' FUNCTION EVEN IF THE PF2 KEY WAS DEPRESSED OR ENTERED. 1430-ML-CHECK-PF3.

CHECK PF3 IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 3 IS '?INQ' OR '?MNT' TAKE SPECIAL ACTION AND CHANGE THE 3RD CHARACTER OF THE TRANS-ID TO 'Q' OR 'M'. IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 3 IS SPACES OR 'RESV' BYPASS THE 'PF3' FUNCTION EVEN IF THE PF3 KEY WAS DEPRESSED OR ENTERED. 1440-ML-CHECK-PF4. CHECK PF4 IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 4 IS '?INQ' OR '?MNT' TAKE SPECIAL ACTION AND CHANGE THE 3RD CHARACTER OF THE TRANS-ID TO 'Q' OR 'M'. IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 4 IS SPACES OR 'RESV' BYPASS THE 'PF4' FUNCTION EVEN IF THE PF4 KEY WAS DEPRESSED OR ENTERED. 1450-ML-CHECK-PF5 CHECK PF5 IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 5 IS '?INQ' OR '?MNT' TAKE SPECIAL ACTION AND CHANGE THE 3RD CHARACTER OF THE TRANS-ID TO 'Q' OR 'M'. IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 5 IS SPACES OR 'RESV' BYPASS THE 'PF5' FUNCTION EVEN IF THE PF5 KEY WAS DEPRESSED OR ENTERED. 1460-ML-CHECK-PF6. CHECK PF6 IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 6 IS '?INQ' OR '?MNT' TAKE SPECIAL ACTION AND CHANGE THE 3RD CHARACTER OF THE TRANS-ID TO 'Q' OR 'M'. IF THE TRANS-ID IN THE AROPGMX PF KEYS TABLE ENTRY 6 IS SPACES OR 'RESV' BYPASS THE 'PF6' FUNCTION EVEN IF THE PF6 KEY WAS DEPRESSED OR ENTERED.

It executes the approximate PF key paragraph and in that paragraph it moves MOVE ARCA-PGMX-PF-TRANS-ID (i) TO ARCA-PREV-TRANS-ID. MOVE ARCA-PGMX-PF-TRANS-ID (i) TO ARCA-TRANS-ID. Here i refers to ( 1 if PF1 key is pressed and so on ) and then control passes to 1500-MLBYPASS-PF-KEYS.From here the control passes to 1599-ML-BYPASS-ASR. Here in this paragraph it moves the ARCA-TI-POS-3-4 to SMPTWS-TRANS-ID and ARCA-SCREEN-NBR to SMPTWS-SCREEN-NBR then it checks with the SMPT key and when found it moves the SMPTWS-RECORD to ARCA-PGM-TABLE-DETAIL and passes the control to 1600-ML-BYPASS-SECURITY. In 1600-ML-BYPASS-SECURITY it Loads PF keys, Program-ID, and Map name into COMM AREA for this transaction. When we reach this point in the program the user has either had the security bypassed or has been approved to use this transaction.Then it passes the control to 1700-CHECK-USER-AREA In 1700-CHECK-USER-AREA it perform two paragraphs named 5000-SECURITYUSER-CODE-SECT and 6000-USER-WORK-AREA-SECT.These paragraphs will contain any user defined code for security.If the trans-id returned has a generic prefix pos 1-2='..' then it sets the prefix to the default prefix for this system then it verifies the transaction security whether the user can access the transaction or not. MOVE WS-APPL-CODE TO SSXTVI-APPL-CODE

PERFORM SSXTVP-VERIFY-FUNC-SEC THRU SSXTVP-VFS-EXIT. Here after verifying the security information for the transaction ID for the user then it populates the reason code and reason description variables,if the USER ID is INVALID, or if the user does not have access to the specified tran id or if the user does not have access to the application, or if the user does not have access to the specified page no, or if there is no entry in SMPT.If security is valid then it checks for COMM AREA, if there is no COMM AREA then it will do XCTL to ARCA-PROGRAM-ID otherwise XCTL to ARCA-PROGRAM-ID with COMM AREA and length of COMM AREA.

You might also like