4.5.5 More Complex Example
Imagine you have a more complex RDML function, which has three screens. It might look something like the following example. Using the re-entrant technique, you use a CASE statement and direct the processing to the correct part of the function based on the last screen processed.
FUNCTION OPTIONS(*DIRECT *WEBEVENT)
...
CASE OF_FIELD(#RENTRY)
WHEN VALUE_IS('= 1')
CHANGEFIELD(#RENTRY) TO(2)
...
DISPLAY FIELDS(...) USER_KEYS((01 SUBMIT))
WHEN VALUE_IS('= 2')
CHANGE FIELD(#RENTRY) TO(*NULL)
...
DISPLAY FIELDS(...) USER_KEYS((01 RETURN))
OTHERWISE
CHANGE FIELD(#RENTRY) TO(1)
...
REQUEST FIELDS(...) USER_KEYS((01 SEARCH))
ENDCASE
In this example, the #RENTRY field is set in each branch of the CASE statement in order to control how the function will execute the next time it is called.