MOVE SKEY TO TEST-KEY
IF (TK-BYTE (30) EQUAL SPACES)
MOVE '1/' TO TEST-KEY
MOVE SKEY TO TK-DATA
MOVE TEST-KEY TO SKEY
GO TO AA900-GOBACK
ELSE
GO TO AA900-GOBACK.
* * * * PF2 = field-level HELP PF16/PF17 = Copy/Paste
IF (TWA-MSK-PF1-HIT)
OR
(TWA-MSK-PF2-HIT)
OR
(TWA-MSK-PF16-HIT)
OR
(TWA-MSK-PF17-HIT)
THEN
MOVE SFUNCT TO TWA-LAST-FUNCT
MOVE SKEY TO TWA-LAST-KEY
MOVE '**ERR1' TO SFUNCT
MOVE FTH-FUNCT TO TWA-NONTP-REQUEST
GO TO AA900-GOBACK.
IF (TWA-MSK-PF11-HIT)
MOVE '**HELP' TO SFUNCT
MOVE FTH-FUNCT TO TWA-NONTP-REQUEST
GO TO AA900-GOBACK.
IF (TWA-MSK-PF3-HIT)
IF (TWA-SWAP-ATTACHED)
GO TO AA770-DETACH
ELSE
GO TO AA780-ESCAPE-TO-MENU.
IF (TWA-MSK-CUR-AD-IN EQUAL TWA-MSK-CUR-AD-OT)
IF (TWA-MSK-PF7-HIT)
MOVE NXT-LIT TO T-FUNCT
MOVE TEST-FUNCT TO SFUNCT
MOVE B TO TWA-BROWSE-DIRECTION
ELSE
IF (TWA-MSK-PF8-HIT)
MOVE NXT-LIT TO T-FUNCT
MOVE TEST-FUNCT TO SFUNCT
MOVE F TO TWA-BROWSE-DIRECTION.
IF (NXT-FUNCTION)
MOVE SPACES TO TWA-ERR-CODES.
* * * DON'T RESEND DATA IF OPER. TRIED TO ENTER ON SEE-FUNCTION
IF (SEE-FUNCTION) AND (TWA-MSK-CUR-AD-IN GREATER EIGHTY)
AND (TWA-LAST-FUNCT = TEST-FUNCT)
AND (TWA-LAST-KEY = TEST-KEY)
AND (TWA-MSK-CUR-AD-IN NOT = TWA-MSK-CUR-AD-OT)
THEN
MOVE DID-YOU-INTEND-MSG TO SCOMPL
MOVE FOUR TO TWA-MSK-CUR-AD-OT
GO TO AA800-SEND-SCREEN.
* * * DEFAULT ALGORITHM %PFKEYM ENDS HERE
IF (TWA-MSK-PF13-HIT)
MOVE PRINTS-FUNCT TO SFUNCT
MOVE FTH-FUNCT TO TWA-NONTP-REQUEST
GO TO AA900-GOBACK.
IF TWA-MSK-ID NOT = THIS-PGMS-MSK
MOVE N TO MMP-NEW-TRANSACTION
MOVE MSK-CMD TO TWA-TP-REQUEST
MOVE THIS-PGMS-MSK TO TWA-TP-TRM
PERFORM AA800-CALL-MONITOR THRU AA899-EXIT
MOVE E TO TWA-MSK-WRT-CMD
IF (GET-MSK-ERR)
PERFORM BB800-MSK-ERR-MSG THRU BB899-EXIT
GO TO AA800-SEND-SCREEN
ELSE
MOVE TEST-FUNCT TO SFUNCT
MOVE TEST-KEY TO SKEY
COMPUTE STD-CUR-AD-OT = TWA-MSK-CUR-AD-OT - ONE
MOVE STD-CUR-AD-OT TO TWA-MSK-CUR-AD-OT
ELSE
IF (DUP-FUNCTION)
AND
((FUNCT-WAS-SEE) OR (FUNCT-WAS-NXT)
OR (FUNCT-WAS-DUP))
IF (TEST-KEY = TWA-LAST-KEY)
MOVE CHG-KEY-TO-DUP TO SCOMPL
MOVE SKEY-POSN TO TWA-MSK-CUR-AD-OT
GO TO AA800-SEND-SCREEN
ELSE
MOVE SPACE TO MMP-NEW-TRANSACTION
MOVE ADD-LIT TO T-FUNCT
MOVE TEST-FUNCT TO SFUNCT
ELSE
IF TEST-KEY NOT = TWA-LAST-KEY
MOVE N TO MMP-NEW-TRANSACTION
ELSE
IF ((CHG-FUNCTION) OR (DEL-FUNCTION))
AND ((FUNCT-WAS-SEE) OR (FUNCT-WAS-NXT))
THEN
MOVE SPACE TO MMP-NEW-TRANSACTION
ELSE
IF TEST-FUNCT NOT = TWA-LAST-FUNCT
MOVE N TO MMP-NEW-TRANSACTION
ELSE
IF (SEE-FUNCTION)
MOVE N TO MMP-NEW-TRANSACTION
ELSE
MOVE SPACE TO MMP-NEW-TRANSACTION.
IF (NXT-FUNCTION)
AND
(TWA-LAST-FUNCT-PREFIX NOT EQUAL TEST-FUNCT-KEY)
THEN
MOVE NOOPS TO TWA-DB-CMD
MOVE SPACES TO TWA-LAST-KEY
MOVE THIS-PGMS-ELEMENTS TO TWA-ELT-LIST
MOVE MASTER-KEY-NAME TO TWA-DB-KEY-NAME
MOVE TWA-DB-REQUEST TO TWA-DB-REQ-SAV.
```**
This AAM200 routine starts off the Maintenance Functions' Mainline. The %PFKEYM insertion point is for you to allow you (cont.)
to intercept the transaction early. The Default code provides for transfer to the LOC Function if the Operator hits PF4 (cont.)
and for not overlaying the Operator's entry when he/she tries to update in a SEE Function, forgetting to alter the (cont.)
Function Code to ...CHG. You may add code to test for other PF keys here or to intercept the Key Value before Normalize (cont.)
Key gets it.
If the screen is not already formatted into the proper Mask for this MMP's Maintenence Functions then the MSK record is (cont.)
read now to initialize the screen. The MMP-NEW-TRANSACTION indicator is set here depending on whether the Operator (cont.)
changed the Function Code or Key. Refer to Appendix A at the back of this section.
| ```
**
****************************************************************
* AAM300 *
* THIS ROUTINE INITIALIZES THE MASK, EDITS AND REFORMATS *
* THE ENTERED KEY AND PREPARES THE DB-REQUEST. *
* *
****************************************************************
AAM300-INITIALIZE.
IF (MSK-IS-CURRENT-VERSION)
NEXT SENTENCE
ELSE
MOVE OLD-MSK-COPYBOOK-MSG TO SCOMPL
MOVE SPACES TO TWA-LAST-FUNCT
GO TO AA800-SEND-SCREEN.
PERFORM BA200-INIT-ATTRIBUTES THRU BA299-EXIT.
MOVE MASTER-KEY-NAME TO TWA-DB-KEY-NAME.
MOVE TEST-FUNCT TO TWA-LAST-FUNCT.
IF (NXT-FUNCTION)
MOVE TWA-DB-REQ-SAV TO TWA-DB-REQUEST
MOVE THIS-PGMS-ELEMENTS TO TWA-ELT-LIST
IF TEST-KEY = TWA-LAST-KEY
IF (REC-FOUND) AND ((RED-CMD) OR (RDU-CMD))
MOVE TEST-FUNCT TO TWA-LAST-FUNCT
GO TO AAM430-READ-NEXT-RECORD
ELSE
MOVE LOC-LIT TO T-FUNCT
MOVE TEST-FUNCT TO SFUNCT
GO TO AA100-CHECK-FUNCTION
ELSE
MOVE LOCKY TO TWA-DB-CMD.
IF TEST-KEY EQUAL SPACES
MOVE SKEY-POSN TO TWA-MSK-CUR-AD-OT
MOVE E TO SCOMPLE
MOVE E TO SKEYE
MOVE ENTER-KEY-MSG TO SCOMPL
GO TO AA800-SEND-SCREEN
ELSE
PERFORM BA400-NORMALIZE-MAINT-KEY THRU BA499-EXIT
IF SKEYE = E
MOVE SKEY-POSN TO TWA-MSK-CUR-AD-OT
MOVE INVALID-KEY-MSG TO SCOMPL
MOVE E TO SCOMPLE
GO TO AA800-SEND-SCREEN.
AAM310-CONTINUE.
MOVE TEST-FUNCT TO TWA-LAST-FUNCT.
MOVE NORMALIZED-KEY TO TWA-KEY-VALUE.
IF (NXT-FUNCTION) AND (TWA-DB-CMD = LOCKY)
GO TO AAM400-RESTART-BROWSE.
IF (ADD-FUNCTION) OR (SEE-FUNCTION)
OR
(NEW-TRANCTION-MODE)
THEN
GO TO AAM410-READ-BY-KEY
ELSE
IF (CHG-FUNCTION) OR (DEL-FUNCTION)
GO TO AAM420-READ-BY-KEY-FOR-UPDATE.
```**
The AAM300 routine does initializations. It performs the BA200 routine to initialize all the screen field Attributes (cont.)
after verifying that the Mask Copy Book is the same version number as the MSK initialization record which was read. (cont.)
This traps the common Developer's error of altering the Mask and forgetting to recompile the MMP to get the new Mask (cont.)
Copy Book included.
The Normalize Key routine is performed from here to convert the Key Value entered by the Operator into proper format (cont.)
for reading the file. Then the AAM300 routine determines whether it is time to do a read-for-update or just a plain (cont.)
read, the type of Function and the Mode are both factors in the determination.
| ```
**
****************************************************************
* AAM400 *
* THESE ROUTINES READ THE DATABASE AND CHECK THE *
* RETURN CODE: *
* FOR AN ADD COMMAND, RECORD SHOULD NOT BE FOUND. *
* FOR ANY OTHER COMMAND RECORD SHOULD BE FOUND. *
****************************************************************
AAM400-DB-IO.
AAM400-RESTART-BROWSE.
CALL 'MAGECSET' USING TWA-DB-AREA-A NORMALIZED-KEY.
PERFORM AA840-CALL-MAGEC-IO THRU AA899-EXIT.
GO TO AAM430-READ-NEXT-RECORD.
AAM410-READ-BY-KEY.
* * * DEFAULT ALGORITHM %REDKY STARTS HERE
PERFORM BA500-CHECK-FSTAT THRU BA599-EXIT.
next: genmmp16.md.txt