MENU
The MENU statement allows you to alter the flow of processing by invoking an APPX menu process from within an ILF routine.
••••• MENU •••
•••••••••••••••••••••••••••••• •••••••••• END? • FAIL •
(1)
(2) (3) (4) (5) (6)
(2) Application ID |
(3) Menu process name |
(4) Invocation type (SUBPROCESS, RELATED, DETACHED) |
(5) End current process first? (Y/N) |
(6) Fail action (0=nothing, 1=warning, 2=error, 3=cancel) |
The next status indicator is set to T if the process is invoked successfully, and to F, otherwise. If the process cannot be invoked successfully, the FAIL parameter determines what additional action to take.
In addition to the application ID and menu process name to be invoked, you specify the invocation type (subprocess, related, or detached). As with all other child invocations, this parameter controls the level of data sharing between the parent and the menu process that is invoked.
If END? is set to Y, the current process will end before invoking the menu process. The menu process will return to the parent of the current process when it is finished. If END? is set to N, the menu process returns to the current process (beginning with the first statement after the MENU statement).
If the application ID is blank, the value in the predefined field NEXT APPLICATION is used. If the process name is blank, the value in the predefined field NEXT PROCESS NAME is used.
If the application ID is supplied but the menu name is left blank, the menu is obtained from the Application Parameters file for the specified application.
If both the application ID and the menu name are blank, the application used is the Startup Application for the current database (specified in the Database file in System Administration), and the menu name is then obtained from the Application Parameters file for that application.
The MENU statement passes the current PASS list, if any. Refer to the PASS Lists section for details.
NEXT APPLICATION, NEXT PROCESS NAME
INPUT, INQUIRY, JOB, OUTPUT, PASS, QUERY, STATUS, SUBR, UPDATE
The following example checks to see if it is the last processing day in the month. If so, the MENU statement is executed, invoking an end-of-month file menu.
IF TAR
WORK END OF MONTH EQ
Y
T MENU TAR
END OF MONTH MENU SUBPROCESS END?
Y FAIL 3