Why does a screen’s functionality change when it is attached to different functions?
This happens because the screens are developed in such a manner that their functionalities can differ depending upon the parameters that are passed into that screen. Menus never pass parameters to the screens, but a function can.
When a given screen is attached to two different functions, each function can pass different parameters to the screen. Consequently, even though the same screen is reachable via two different menus, the functionality exposed by the screen can vary, depending upon the parameters passed by the function to the screen. The typical example is when a screen is developed to cater to both Data Entry and Read Only modes.
For example, if the page flow requires this screen in Read Only mode, you can create a function for this screen and pass parameter to it so that the underlying code can pick it up at runtime and render the screen in Read Only mode.
A responsibility is attached to a menu, and a menu can have several menu items. Each menu item can be attached to a function, and the function is attached to a screen. At the time of defining a function, you specify a screen name and optional parameters with their default values.
Is a menu item always attached to a function?
No. Sometimes a menu item is attached to another menu. By doing so, you effectively create submenus within the menu, which creates a menu nesting. However, a function must be attached to a menu in order for it to be accessed by the end user.
Does a function always pass parameters and parameter values to a screen?
No. If the screen has not been developed to be dependent on any parameter, then of course there is no need to pass any parameters. However, you will still have to define a function if you want a screen to become accessible.
Query only menu:
Read only responsibility: