APEX has the ability to easily have Read Only (RO) pages. The screen shot below shows how to define the page’s RO attribute. For this demo it’s set to
Always but it could use any of the usual conditions in APEX.
When the page is loaded, all its page items are not editable:
They’re a few things to consider when using the Read Only attribute for a page:
apex.item('P2_NAME').setValue('martin'); Submitting the page will trigger an error (which is good):
This information is relevant as you should probably disable any Dynamic Actions (DA) that modify page items when the page is in Read Only mode. Conditionally running DAs can easily be done by applying the declarative condition to a DA
Page/Region is Read Only. You could also use the
apex_page.is_read_only if you have additional server-side conditions for a DA.
In this demo, a page process has been created that logs a message using Logger.
If a user clicks the
Save button the process is still run, despite the page being in Read Only mode. The next logical thing to do is to put a condition on the
Save button so it does not appear when the page is in Read Only mode. Users can bypass this by running
apex.page.submit('SAVE'); in the console. The following demo highlights these concerns:
Similar to the previous section, if your page uses the Read Only attribute you should also apply conditions on the corresponding processes to restrict them when the page is in Read Only mode.