1) SELECT FORM_ID, FORM_NAME, USER_FORM_NAME, DESCRIPTION
FROM FND_FORM_VL
WHERE FORM_NAME IN (SELECT FORM_NAME FROM FND_FORM_CUSTOM_RULES GROUP BY FORM_NAME)
2) Query to Get Form Personalization Details ( Oracle Applications ) from Database.
FND_FORM_CUSTOM_RULES - The Rules for the form customization's. A rule must have 1 more more FND_FORM_CUSTOM_SCOPES and a rule may have 1 or more FND_FORM_CUSTOM_ACTIONS.
FND_FORM_CUSTOM_ACTIONS - Holds the Actions for a specified Rule
FND_FORM - stores information about your registered application forms. Each row includes names (the actual SQL*Forms form name, and the Easy Form form title) and a description of the form. Each row also includes a flag that indicates whether this form is included in the Audit Trail audit set. You need one row for each form in each application. Oracle Application
Select Distinct
A.Id,
A.Form_Name ,
A.Enabled,
C.User_Form_Name,
D.Application_Name ,
A.Description,
Ca.Action_Type,
Ca.Enabled,
Ca.Object_Type,
ca.message_type,
ca.message_text
from
FND_FORM_CUSTOM_RULES a,
FND_FORM b,
FND_FORM_TL c,
Fnd_Application_Tl D,
Fnd_Form_Custom_Actions ca
where a.form_name = b.form_name
And B.Form_Id = C.Form_Id
And B.Application_Id = D.Application_Id
And D.Application_Id = 230 --For Order Management
And C.User_Form_Name Like 'Inventory%' --All the Forms that Start with Sales
And A.Enabled ='Y'
and a.id = ca.rule_id
SELECT
ffv.form_id "Form ID",
ffv.form_name "Form Name",
ffv.user_form_name "User Form Name",
ffv.description "Form Description",
ffcr.sequence "Sequence",
ffcr.description "Personalization Rule Name"
FROM fnd_form_vl ffv,
fnd_form_custom_rules ffcr
WHERE ffv.form_name = ffcr.form_name
ORDER BY ffv.form_name, ffcr.sequence;
SELECT
ffcr.SEQUENCE "Seq", ffcr.description "Description",
DECODE (ffcr.rule_type,
'F', 'Form',
'A', 'Function',
'Other'
) "Level",
ffcr.enabled "Enabled",
ffcr.trigger_event "Trigger Event",
ffcr.trigger_object "Trigger Object",
ffcr.condition "Condition",
DECODE (ffcr.fire_in_enter_query,
'Y', 'Both',
'N', 'Not in Enter-Query Mode',
'O', 'Only in Enter-Query Mode',
'Other'
) "Processing Mode"
FROM apps.fnd_form_custom_rules ffcr
WHERE ffcr.function_name = 'PO_POXPOEPO'
AND ffcr.form_name = 'POXPOEPO'
ORDER BY ffcr.SEQUENCE;
References:
http://amaralam.blogspot.com/2016_04_01_archive.html
Happy New Year 2023...! This is a blog for Oracle ERP lovers. BLOG - Begin Learning Oracle with Girish. :-)
Pages
OracleEBSpro is purely for knowledge sharing and learning purpose, with the main focus on Oracle E-Business Suite Product and other related Oracle Technologies.
I'm NOT responsible for any damages in whatever form caused by the usage of the content of this blog.
I share my Oracle knowledge through this blog. All my posts in this blog are based on my experience, reading oracle websites, books, forums and other blogs. I invite people to read and suggest ways to improve this blog.
I share my Oracle knowledge through this blog. All my posts in this blog are based on my experience, reading oracle websites, books, forums and other blogs. I invite people to read and suggest ways to improve this blog.
Showing posts with label Forms Personalization. Show all posts
Showing posts with label Forms Personalization. Show all posts
Tuesday, October 11, 2016
Friday, March 21, 2014
Maximum Personalization on Purchase Requisition Form
We keep on creating personalization on Purchase Requisition screen as per business requirements, one fine day we found the limit. Oracle allows only maximum of 100 personalizations in a standard form its what we thought but digging deeper we found that numbers could be tweaked with fractions (eg: 10.1, 10.2,10.3,11,12)
Its very rare you will need more than 100-Personalizations in a form.
Its very rare you will need more than 100-Personalizations in a form.
References:
Monday, May 6, 2013
Moving Personalizations between instances …FNDLOAD for Form Personalization
Most of developer always struggle when ever it come to migration of form personalization component, beacuse of limitation of full access in Production box. Therefore, It's better to use oracle seeded Migration tool FNDLOAD.
Once you created and done testing for personalizations in your development/test instance, you can move them to production instances.
As discussed in last post, Personalization is per Function not per form therefore this can extracted by the loader on a per-function basis.
You should take a note that upon uploading, all prior personalizations for that function are first deleted, and then the contents of the loader file are inserted. So be careful..)
you can either Download for a specific form or specfic function of the form. In both the case same affrmcus.lct is used.Download -specific form< /STRONG>FNDLOAD <userid>/<password> 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct <filename.ldt> FND_FORM_CUSTOM_RULES
form_name=<form name>< /FONT>Download -for all personalizations< /FONT>FNDLOAD <userid>/<password> 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct <filename.ldt> FND_FORM_CUSTOM_RULES function_name=<function name>< /FONT>
- Function_name is a required parameter
- You cann't download lct file with out any supplied value.
Upload
FNDLOAD <userid>/<password> 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct <filename.ldt>
Uasge
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct xxapperiod.lct FND_FORM_CUSTOM_RULES form_name=APXSUMPSFNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct xxapperiod.lct
Because the architecture has built-in support for all languages, you don’t translate ldt files, but instead you enter multiple Actions for different languages.
Sunday, April 7, 2013
Forms Personalization in Oracle Apps R12 Example: Zoom Functionality
In this post, I tried to explain the example implementation of a Zoom Functionality in R12
Instance: R12.1.1
Requirement:
1. Add an option named “Responsibility Details” to Tools Menu of the “APPLICATION USERS” Form.
2. By clicking the option said in requirement 1, the user must be able view the complete details of the selected responsibility via “DEFINE: RESPONSIBILITIES” forms
3. Independent Functionalities of “USERS” and “RESPONSIBILITIES” FORM should not get impacted
Implementation Steps:
Step1: Open the “Define User” Form from “SYSTEM ADMINISTRATOR” Responsibility
Step2: Open the personalization form by following the navigation shown below
Step3: Add a Menu Entry under “Tools” Option with the name “Responsibility Details”.
Step 3.1: Add a new Form rule named “Add and Enable a Special Menu under Tools Menu” with the triggering event as “WHEN-NEW-FORM-INSTANCE” as shown below,
Step 3.2: Add an action to create an entry under Tools menu
Step 4: Create and Initialize the GLOBAL_VARIABLE.XX_RESP_NAME with the “Responsibility name” and call the function corresponding to “Define: Responsibilities” Form i.e. FND_FNDSCRSP
Step 4.1: Add a rule with the triggering event “SPECIAL1” with the condition “:USER_RESP.RESPONSIBILITY_NAME IS NOT NULL” as given below
Step 4.2: Add an action to create and initialize a global variable with the Responsibility name i.e. Like “Application Developer”
Step 4.3: Add an action to launch the function corresponding to “Define: Responsibilities” form as below
Step 5: Invoke the Personalization form of “Responsibilities” form and perform the action to initialize “INITIAL VALUE” of the global variable “XX_RESP_NAME” as NULL. This action is to maintain the normal functionality of “Responsibilities Form”.
STEP 5.1: Invoke personalization form of “Responsibilities Form” as below
Step 5.2: Add a rule to create a global variable if not exists and assign a NULL to its “INITIAL VALUE”
STEP 6: Add a rule to perform the below actions with the triggering event as “WHEN-NEW-BLOCK-INSTANCE” of “RESPONSIBILITY” block and triggering condition as “:GLOBAL.XX_RESP_NAME IS NOT NULL”.
- Change the “Default where” Property of the responsibility to restrict the query to single responsibility
- Run the built in “EXECUTE_QUERY”
- Nullify the global variable “XX_RESP_NAME”
Testcase 1: “Responsibility Details” Option Disabled during Enter Query Mode
For example: The cursor is in the field Responsibility with the value “Application Developer” in the user form as shown in the above screenshot. So if the user clicks the “Responsibility Details” option, it should auto navigate to responsibilities form and auto query for the responsibility name “Application Developer”
Happy Sharing!!!
Credit goes to the below website(s) :
Sunday, February 17, 2013
Forms Personalization : How to Add a Web Link to the APPS Forms Menu
Forms
personalization feature may be used to add a new field in the menus of the
forms
in the e-business suite 11 i .
in the e-business suite 11 i .
Below is
the Forms Personalization code which will add a Web Link in
the Tools menu :
1) Login to your responsibility
2) Go to the Forms you need to personalize
3) Open personalizations forms : Help/Diagnostics/Custom Code/personalize
4) Enter sequence as ’1′ and in description enter ‘Init Web URL menu’
5) In condition tab, enter trigger event as ‘WHEN-NEW-FORM-INSTANCE’
6) Click on ‘Actions’ tab. Enter sequence as ’1′ and Type = ‘Menu’.
7) Choose Menu Entry (any of the special menu entries). Eg. Special 12
Enter menu label ( eg: Web URL )
8 ) In ‘Enabled in Blocks’ field you can choose for which blocks the special menu needs to be enabled or leave blank to be enabled for all the blocks of the forms
9) Go back to the main block where you entered ‘Init Web URL menu’.
10) Enter a new record with sequence as ’2′ and in description enter ‘Launch URL’
11)In Conditions tab, enter trigger event as ‘SPECIAL12′
12) Click on Actions tab. Enter sequence as ’1′ and Type = ‘Builtin’.
13) Choose ‘Launch a URL’ for Builtin Type
13) Enter the argument as your URL ( eg : http://www.oracle.com ) and click ‘Apply now’ button.
14 ) Save .
15) Exit form , logout , login and go to your Forms again.
16) Go to Tools menu. The new special menu ( Web URL ) entry will be displayed.
Click to launch URL.
1) Login to your responsibility
2) Go to the Forms you need to personalize
3) Open personalizations forms : Help/Diagnostics/Custom Code/personalize
4) Enter sequence as ’1′ and in description enter ‘Init Web URL menu’
5) In condition tab, enter trigger event as ‘WHEN-NEW-FORM-INSTANCE’
6) Click on ‘Actions’ tab. Enter sequence as ’1′ and Type = ‘Menu’.
7) Choose Menu Entry (any of the special menu entries). Eg. Special 12
Enter menu label ( eg: Web URL )
8 ) In ‘Enabled in Blocks’ field you can choose for which blocks the special menu needs to be enabled or leave blank to be enabled for all the blocks of the forms
9) Go back to the main block where you entered ‘Init Web URL menu’.
10) Enter a new record with sequence as ’2′ and in description enter ‘Launch URL’
11)In Conditions tab, enter trigger event as ‘SPECIAL12′
12) Click on Actions tab. Enter sequence as ’1′ and Type = ‘Builtin’.
13) Choose ‘Launch a URL’ for Builtin Type
13) Enter the argument as your URL ( eg : http://www.oracle.com ) and click ‘Apply now’ button.
14 ) Save .
15) Exit form , logout , login and go to your Forms again.
16) Go to Tools menu. The new special menu ( Web URL ) entry will be displayed.
Click to launch URL.
Saturday, February 16, 2013
Forms Personalization
The Form Personalization
feature allows you to declaratively alter the behavior of Forms-based screens,
including changing properties, executing builtins, displaying messages, and
adding menu entries.
For each function (a form
running in a particular context based on parameters passed to it), you can
specify one or more Rules. Each Rule consists of an Event, an optional
Condition, the Scope for which it applies, and one or more Actions to
perform. An Event is a trigger point within a form, such as startup (WHEN-NEW-FORM-INSTANCE),
or when focus moves to a new record (WHEN-NEW-RECORD-INSTANCE). There are
standard events that almost every form sends, and certain forms send additional
product-specific events.The Scope is evaluated based on the current runtime context
to determine if a Rule should be processed or not. The Scope can be at the
Site, Responsibility, User, or Industry level. Each Rule can have one or more
Scopes associated with it.
The Condition is an optional
SQL code fragment that is evaluated when the Event occurs; if it evaluates to
TRUE then the Actions are processed.
Each Action consists of one of
the following:
· setting a Property, such as making a field Required or hiding a
Tab page
· executing a Builtin, such as GO_BLOCK, DO_KEY or FND_FUNCTION.EXECUTE
· displaying a Message
· enabling a Special menu entry
Once Rules are defined, when
the target function is run then the Rules are automatically applied as events
occur within that form. Although the Form Personalization feature is
declarative, the intended audience is a person familiar with Oracle Forms
including the PL/SQL programming language, and the Oracle Applications
Development Guide. Additionally, any change made could interfere with the base
code of a form (the code that Oracle ships), thus the Support statements
discussed later in this chapter must be followed diligently.
Using the Personalization Form
To create personalizations for
a particular function, first invoke that function from the Navigation menu.
While in the form, choose Help->Diagnostics->Custom Code-> Personalize
from the pulldown menu. This menu entry is secured by the FND_HIDE_DIAGNOSTICS
(Hide Diagnostics menu entry) and DIAGNOSTICS (Utilities:Diagnostics) profiles,
as are most other entries on the Diagnostics menu.
The Personalization form will open and automatically query
existing Rules for that function. After making changes, Save them then close
and re-run the function to have them take effect. You can also Validate or
Apply certain changes immediately to test them without having to re-run the
target form by pressing the ‘Validate’ or ‘Apply Now’ buttons.
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
Personalization Tables:
FND_FORM_CUSTOM_RULES
FND_FORM_CUSTOM_ACTIONS
FND_FORM_CUSTOM_SCOPES
FND_FORM_CUSTOM_PARAMS
FND_FORM_CUSTOM_PROP_LIST
FND_FORM_CUSTOM_PROP_VALUES
Subscribe to:
Posts (Atom)

