Working with GoSub Process
Process Purpose
The "GoSub" process is used to call a label (part of code packaged as a unit), a routine or a screen under the form of a subroutine/function. This means that the called element should end its process with a "Go to < Exit>" (in the case of a called screen) OR a "Go to <End of GoSub>" (when calling a label, a routine, etc.).
Check the examples below.
When you add a process, you are required to define its settings. This occurs in the process's properties window which is displayed automatically after having added the "GoSub" process.
If any subsequent edition is required, double-click the process to open its properties window and enter the necessary modifications.
Fill in the box:
Gosub Routine, Screen, etc |
Select a destination from the drop-down OR list. See Detail of a window below.
When defining a screen as a target destination (ex: via a “GoSub” process), you CANNOT use variables to specify the name of that target screen. You must select the intended screen from the available drop-down/list.
|
Detail of a window:
"S:Menu" is a screen included in the same program as the process.
"R:Routine_1" is a routine included in the same program as the process.
If required, use (on the upper right corner of the properties window) to attach any relevant notes to this process.
Click it and enter your notes in the resulting text box. These notes will be displayed in the corresponding "Actions" tab or "Process" window (in the "Notes" field) and in the "Developer Report".
After filling in the required options, click to conclude or to abort the operation.
The added process is displayed in the corresponding "Actions" tab or "Process" window.
If you want to use a label as a target destination, you can use the "Auto-Label" mechanism. This alternative to the "Set Label" process allows you to create a label in the properties window of a process - specifically, in the fields used to define target destinations (ex: the "If Error..." type fields). See To Automatically Create a Label.
Use the right-click in MCL-Designer's input boxes to access some related options as well as the general "Cut", "Copy"; "Paste"; "Search" actions (active/inactive according to the current context).
Ex: If you right-click the "Variable" input box (included in a "Conversion's" properties window), you are provided with general editing/search actions and other more specific options such as "Variable Select" (see "Variable Select"); "Variable Insert" (see "Variable Insert"); "Insert Special Character" (see To Insert Special Characters into a Control's Text Input Field) and "Localization Select" (see Localization List).
If you right-click another input box, it may provide other possibilities.
Example 1 - "GoSub" process used to call a label.
Using a "GoSub: <element>" (a label, a routine, etc.) jumps the workflow to the specified target - in this case, the label "FAHRENHEIT_TO_CELSIUS".
The "Go to: <End of GoSub>" returns the flow to the execution line that is immediately below the calling "GoSub" process - in this case, the message box display.
Example 2 - "GoSub" process used to call a screen.
There is a button control in "Screen_1" that includes a "GoSub" to call "Screen_2". "Screen_2" uses another button with a "Go to: <Exit>", added at the end of its process execution, to return to the calling element - "Screen_1".
|