The simplest types of prompt key processing programs are the ones that display a list of values to the user.
The previous example that handled department number prompts would probably look like this (it does not use page at a time techniques because there are only 20 or so departments):
<< define browse list and exchange list >> DEF_LIST NAME(#DEPTS) FIELDS(#DEPTNO #DEPTDESC) SEL_ENTRY(#CURSORSEL) EXCHANGE FIELDS(#DEPTS) OPTION(*ALWAYS) << clear list and place details of all departments into it >> CLR_LIST NAMED(#DEPTS) SELECT FIELDS(#DEPTS) FROM_FILE(DEPTFILE) ADD_ENTRY TO_LIST(#DEPTS) ENDSELECT << Display list in pop-up window until user selects or cancels >> CHANGE FIELDS(#DEPTS) TO(*NULL) DOUNTIL COND('#CURSORSEL *GT 0') POP_UP BROWSELIST(#DEPTS) CURSOR_LOC(*ATFIELD #DEPTNO) EXIT_KEY(*NO) MENU_KEY(*YES *RETURN) IF COND('#CURSORSEL *GT 0') GET_ENTRY NUMBER(#CURSORSEL) FROM_LIST(#DEPTS) ENDIF ENDUNTIL RETURN