Skip to main content

Oracle Form Personalization

Why personalization?


  • Oracle Supports personalization unlike customization
  • Personalization are stored in tables rather than files
  • Will not have a bigger impact when you upgrade or apply patches to the environment
  • Can be moved easily through FNDLOAD from one instance to other
  • Can be restricted at site/responsibility/user level
  • Easy to disable/enable with click of a button.
  • Personalization will store who columns with which we have the ability to track who created/modified it where as in CUSTOM.PLL we don’t have that ability.
  • Can be applied to new responsibilities/users easily.
  • Can be restricted to function or form.
What can be done through personalization?
  • Zoom from one form to another
  • Pass data from one form to another through global variables
  • Change LOV values dynamically
  • Enable/Disable/Hide fields dynamically
  • Display user friendly messages when required
  • Launch URL directly from oracle form
  • Execute PL/SQL programs through FORM_DDL package
  • Call custom libraries dynamically
What cannot be done in Form Personalization:
  •  Adding a new screen/tab/form/column in an existing Oracle Application form.  This has to be done through development tool such as Forms. However, this approach is not advised.  If you must add a form, it can be developed and a Zoom into this if needed can be invoked in the Oracle Application's existing menu form/function. 
  • Altering the look and feel of an existing Oracle Screens completely different from the original.  For example, instead of the block being in the first tab, the block cannot be moved to the next tab.  However, sequence of tab function like the next navigation block can be controlled.
  • Adding a button in the existing form where the button has never existed.  However, an existing button can be disabled or can be made invisible.
  • There cannot be more than 100 sequence in the Form Personalization.  An error of FRM-40207: Must be in the range 1 to 100 will be displayed. However, there can be duplicate sequences.
  • No COMMIT triggers/event can be used (KEY-COMMIT, PRE-COMMIT, ON-COMMIT).  If requirement ask to prevent saving of a record given a particular condition the WHEN-VALIDATE-RECORD event can be used instead.  The negative about this trigger event is that a save event cannot be distinguished from the validation that is happening if user go to the next record or block where the form will be automatically gets validated before saving it.  The act of saving and validation are treated the same in this trigger.  If there is one that can identify one from the other, let me know and this blog needs updating.


Comments

Popular posts from this blog

How to setup and use AME - Approval Management Engine

Approval Management Engine - AME For Purchase Requisition Approvals Purchase Requisitions can be routed for approval using the AME Approval Management Engine. This whitepaper describes how to setup AME for use with requisition approvals, and shows how a requisition approval list is built based on the AME setup. Approvers in the AME based approver list are assigned to the requisition based on the AME rules setup for the Purchase Requisition Approval transaction. Similar setup can be done for Requester Change Order Approval and for Internal Requisition Approval, although those are not specifically covered in this whitepaper. The screenshots provided are based on 11i.AME.B, and some of the navigation details are specific to 11i.AME.B. However, most of the details provided are applicable to 11i.AME.A and higher including R12. Assign AME Roles and Responsibilities AME responsibilities in 11i.AME.A are assigned directly to the users. However, In R12 or 11i.AME.B and higher, AME respons

How to compile all INVALID objects in Oracle

There are five ways to recompile invalid objects in schema. DBMS_DDL DBMS_UTILITY UTL_RECOMP UTLRP.SQL Manually Recompile > Best Approach 1. DBMS_DDL This procedure is equivalent to the following SQL statement: ALTER PROCEDUREFUNCTIONPACKAGE [.] COMPILE [BODY] Syntax Exec dbms_ddl.alter_compile ( type , schema, name); Type : Must be either PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY or TRIGGER. Schema : Database Username Name : Objects name Example SQL> exec dbms_ddl.alter_compile ('PROCEDURE','SCOTT','TEST'); PL/SQL procedure successfully completed. 2. DBMS_UTILITY This procedure compiles all procedures, functions, packages, and triggers in the specified schema. Syntax Exec dbms_utility.compile_schema ( schema,compile all) Schema : Database Username Compile All : Object type ( procedure, function, packages,trigger) Example SQL> exec dbms_utility.compile_schema('SCOTT'); PL/SQL procedure successfully co

Workflow Important Debug Queries

deq_time is not always populated in WF_DEFERRED. The best way to monitor is to check if there are any READY events select msg_state,count(*) from applsys.aq$wf_deferred  group by msg_state; For getting Item_Type and Display name for Runnable processes. SELECT WFA_ACT.ITEM_TYPE ITEM_TYPE ,   WFA_ACT.NAME PROCESS_NAME ,   WFA_ACT.DISPLAY_NAME DISPLAY_NAME FROM wf_activities_vl wfa_act WHERE wfa_act.runnable_flag = 'Y' AND wfa_act. type            = 'PROCESS' AND sysdate BETWEEN wfa_act.begin_date AND NVL(wfa_act.end_date, sysdate); Query to find records that are pending in each of the workflow agent listener queues SELECT 'select ''' || t.component_name || ' (queue_table: ' || p.queue_table ||        ')''||'' Count: ''||count(*) c from ' || p.owner || '.' || .queue_table ||        ' where deq_time is null and nvl(delay,enq_time)<sysdate-1/24  ||        nvl2(t.correlation_id,