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-TRANSACTION-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. IF (FILE-CLOSED) GO TO AA900-GOBACK. MOVE REDKY TO TWA-DB-CMD. MOVE THIS-PGMS-ELEMENTS TO TWA-ELT-LIST. CALL 'MAGECSET' USING TWA-DB-AREA-A VAC01-ELEMENT PERFORM AA840-CALL-MAGEC-IO THRU AA899-EXIT. MOVE AUDIT-STAMP TO SAVE-AUDIT-STAMP. PERFORM JA100-LOGICAL-JOIN THRU JA999-EXIT. * * * DEFAULT ALGORITHM %REDKY ENDS HERE GO TO AAM440-TEST-RETURN-CODE. AAM420-READ-BY-KEY-FOR-UPDATE. * * * DEFAULT ALGORITHM %RDUKY STARTS HERE MOVE RDUKY TO TWA-DB-CMD. MOVE THIS-PGMS-ELEMENTS TO TWA-ELT-LIST. CALL 'MAGECSET' USING TWA-DB-AREA-A VAC01-ELEMENT PERFORM AA840-CALL-MAGEC-IO THRU AA899-EXIT. IF (REC-FOUND) AND (TWA-ELT00 NOT = SPACES) AND (AS-TERM-LAST-UPDATED NOT = TWA-TERMINAL-ID) AND (AUDIT-STAMP NOT = SAVE-AUDIT-STAMP) * THEN MOVE MULTI-TASKS-UPDATING TO ERROR-NUMBER PERFORM CA100-LOAD-ERR-CODE-TBL THRU CA199-EXIT. PERFORM JA100-LOGICAL-JOIN THRU JA999-EXIT. * * * DEFAULT ALGORITHM %RDUKY ENDS HERE GO TO AAM440-TEST-RETURN-CODE. AAM430-READ-NEXT-RECORD. * * * DEFAULT ALGORITHM %REDNX STARTS HERE IF TWA-DB-CMD = LOCKY MOVE REDLE TO TWA-DB-CMD ELSE MOVE REDNX TO TWA-DB-CMD. MOVE THIS-PGMS-ELEMENTS TO TWA-ELT-LIST. CALL 'MAGECSET' USING TWA-DB-AREA-A VAC01-ELEMENT PERFORM AA840-CALL-MAGEC-IO THRU AA899-EXIT. MOVE TWA-DB-REQUEST TO TWA-DB-REQ-SAV. MOVE AUDIT-STAMP TO SAVE-AUDIT-STAMP. MOVE VAC01-KEY TO NORMALIZED-KEY. MOVE NORMALIZED-KEY TO TWA-KEY-VALUE. PERFORM JA100-LOGICAL-JOIN THRU JA999-EXIT. * * * DEFAULT ALGORITHM %REDNX ENDS HERE GO TO AAM440-TEST-RETURN-CODE. AAM440-TEST-RETURN-CODE. IF VS-MARKER NOT EQUAL TWA-TIME Next: https://magec.com/DOC/markdown/genmmp12.md.txt