ORACLE RECOMMENDED SOLUTION
AAIdentify the menu that is attached to the GL super user and Payables manager.
AAIdentify the form functions that are attached to this menu.
AANow create a new form function exactly similar to the standard one but with the option
aaaaQUERY_ONLY="YES" in the location
a Sysadmin è application è function è Form è Parameter.
This makes the function read only.
AANow create a new menu with these read-only functions and attach the menu to a new responsibility which is
aaaaassigned to users who need to have read-only privileges.
CREATE READ ONLY DATABASE USERS
aaaCreate a Database user apps_readonly
aaaGrant all the objects/synonyms from apps to apps_readonly
aaaCreate synonym for all the apps objects in apps_readonly
aaaIn Oracle apps, register apps_readonly as a user and Datagroup (Similar to apps)
aaaCreate responsibilities (similar to apps) but attach to apps_readonly datagroup created in Step 4.
CUSTOM.PLL
aaaCreate read-only responsibilities follow naming convention, all of them should end with same string
aaaae.g. "Read Only".
aaaExtend custom.pll to prevent save function if user responsibility ends with "Read Only".