You are on page 1of 74

Forms Personalization

Presented by

Talbott Jones

Talbott Jones Forms Personalization 1


©2009 Talbott Jones and Colibri Limited
Introduction
• Talbott Jones
– Consultant for Colibri Information Management
– BSBA 1978 – Old Dominion University
– MBA 1990 – Old Dominion University
– CPA 1985 – Virginia
– 1997 Began working with Oracle Applications
• General Ledger
• Payables
• Assets
• Purchasing
• Inventory
– tjones@Colibrilimited.com

Talbott Jones Forms Personalization 2


©2009 Talbott Jones and Colibri Limited
Colibri

• Provides services “Exclusively” for Oracle


Applications and RDBMS
• Each consultant has a minimum of 8 years
Oracle experience.
• Web Site
– http://www.Colibrilimited.com

Talbott Jones Forms Personalization 3


©2009 Talbott Jones and Colibri Limited
Topics
• Basics
• Create Personalizations
– Field Required
– Insert Default
– Display Message
– Hide Button
– Populate Field With One Of Three Possible Values
– Display Warning

• Documentation
• Migration
Talbott Jones Forms Personalization 4
©2009 Talbott Jones and Colibri Limited
Basics - Access

• Access to Forms Personalization


– Requires Apps Password
or
– Profile setting Utilities:Diagnostics = Yes
• Access to the form being Personalized

Talbott Jones Forms Personalization 5


©2009 Talbott Jones and Colibri Limited
Access
• Navigate to the form being personalized
– Help
– Diagnostics
– Custom Code
– Personalize

Talbott Jones Forms Personalization 6


©2009 Talbott Jones and Colibri Limited
Forms Personalization Form

Talbott Jones Forms Personalization 7


©2009 Talbott Jones and Colibri Limited
Personalization Header

• Function Name – How you got here


• Form Name – How Oracle identifies this form
• Input Area
– Seq – Order in which personalizations are performed
– Description
– Level – Form / Function

Talbott Jones Forms Personalization 8


©2009 Talbott Jones and Colibri Limited
Header - Continued
• Select Form or
Function
– Form if this
personalization is to
be done every time the
form is used
– Function, if just when
this function is being
called.

A form can be called by more than one function. This helps you be
more selective about when a Forms Personalization is invoked.

Talbott Jones Forms Personalization 9


©2009 Talbott Jones and Colibri Limited
Header - Continued
• Form / Function – Does it matter?
– If you are not sure where a form is used,
select Function.
– If you want to cover every possible use of the
form, select form.
– If you use Function and look at the form’s
personalizations in another function, you will
see gaps in your list.

Talbott Jones Forms Personalization 10


©2009 Talbott Jones and Colibri Limited
Condition Tab

Talbott Jones Forms Personalization 11


©2009 Talbott Jones and Colibri Limited
Condition Tab Elements
• Trigger Event – What event will invoke this
personalization?
• Trigger Object – The event relates to this object.
• Condition – What must be true to allow your
personalization to be invoked?
• Processing Mode – This personalization works in
Query Mode / Not in Query Mode or in either mode.
– We will not be discussing Query Mode Personalizations today.

Talbott Jones Forms Personalization 12


©2009 Talbott Jones and Colibri Limited
Trigger Events
This event invokes your personalization
• New form
• Navigate to a new block
• Navigate to a new item
• Validate a record
• Menus and Special
– (not covered today)

Talbott Jones Forms Personalization 13


©2009 Talbott Jones and Colibri Limited
Trigger Object
• Trigger Object relates
to the Trigger Event
– If the event is a new block, the
object is a block.

– If the event is a new item, the


object is a block and item
combination.

– Some events do not require


an object.

Talbott Jones Forms Personalization 14


©2009 Talbott Jones and Colibri Limited
Trigger Object
• How do you know what to use for a block or item?

Focus on
desired field.

Help
Diagnostics
Examine

Talbott Jones Forms Personalization 15


©2009 Talbott Jones and Colibri Limited
Careful With Examine!
• Look but don’t touch.

Talbott Jones Forms Personalization 16


©2009 Talbott Jones and Colibri Limited
Condition
• Null (blank) means every time. Below, the condition says “if
the lot number is 0”.
• You can add restrictions.
Block = LOT_ENTRY
• Data from the form is Item = LOT_NUMBER
referenced by a colon “:”.
Format
• Partial SQL statements :<BLOCK>.<ITEM>

Talbott Jones Forms Personalization 17


©2009 Talbott Jones and Colibri Limited
Processing Mode
Forms Personalizations
can be done in…
• Query Mode
• Not in Query Mode
• Both

Today, we will be talking about


“Not in Query Mode”.

Talbott Jones Forms Personalization 18


©2009 Talbott Jones and Colibri Limited
Context
For whom does the personalization work?

• Site – Everyone
• Responsibility – Designate
a responsibility in the value
column
• User – Designate a user in
the value column.

Talbott Jones Forms Personalization 19


©2009 Talbott Jones and Colibri Limited
Context Hint
When developing, assign the
personalization to yourself to avoid
affecting other users (even though you
should be in a test instance).

Talbott Jones Forms Personalization 20


©2009 Talbott Jones and Colibri Limited
Actions Tab

Talbott Jones Forms Personalization 21


©2009 Talbott Jones and Colibri Limited
Actions Tab Elements
• Seq – Multiple actions can be
assigned. This indicates the
sequence of these actions.
• Type – Action types are
– Property – assigns a property
to a target object.
– Message – Displays a
message
– Builtin – calls custom code or
function (not covered today)
– Menu – change or add a menu
selection (not covered today)
• Description – Optional
• Language
• Enabled

Talbott Jones Forms Personalization 22


©2009 Talbott Jones and Colibri Limited
Actions Tab
Right Hand Side
The right hand side of the
Actions tab changes
depending upon the
Action Type.
Today, we will discuss two
action types:
– Property
– Message

Talbott Jones Forms Personalization 23


©2009 Talbott Jones and Colibri Limited
Action Type - Message
If the Action Type is
Message, select a
message type:
• Show – display only
• Hint – Not covered today.
• Error – Stops commit (save) and
gives a reason (maybe).
• Debug – Not covered today
• Warn – Allows the user to choose
to proceed or not.

Talbott Jones Forms Personalization 24


©2009 Talbott Jones and Colibri Limited
Message Text
Text can be simple, or it can
have elements of SQL.

This example uses


information from the form
in the text displayed. The
Item Number is imbedded
in the message.

Talbott Jones Forms Personalization 25


©2009 Talbott Jones and Colibri Limited
Action Type - Property
There are 50 available
properties.
Examples:
• Value – Contents of the
field.
• Required – True/False
(required or not required)
• Enterable – True/False
(field can be entered or
cannot be entered)

Talbott Jones Forms Personalization 26


©2009 Talbott Jones and Colibri Limited
Validate
Use the Validate button to test your Personalization

Click “Validate” and if


your Personalization
works, the message
pops up.

Talbott Jones Forms Personalization 27


©2009 Talbott Jones and Colibri Limited
Examples
Purchase Order form Receiving Transactions
form
1. Field Required 4. Hide Button
– Item Revision – Inspection Button

1. Insert Default Value 5. Populate Field


– Revision Default – Lot Number

1. Display a message 5. Display Warning


– Pending Effectivity – Supplier Lot missing

Talbott Jones Forms Personalization 28


©2009 Talbott Jones and Colibri Limited
Ex. 1 – Field Required
Navigate to the form to be personalized. In this case, the Purchase
Order.

Talbott Jones Forms Personalization 29


©2009 Talbott Jones and Colibri Limited
Ex. 1 – Field Required
Navigate to Forms Personalization
• Help
• Diagnostics
• Custom Code
• Personalize

Talbott Jones Forms Personalization 30


©2009 Talbott Jones and Colibri Limited
Ex. 1 – Field Required

Our example is PO Revision Required


Why: For every item ordered, the business requires a
revision number. On this form, the revision number is
not required.

Talbott Jones Forms Personalization 31


©2009 Talbott Jones and Colibri Limited
Ex. 1 – Field Required

Talbott Jones Forms Personalization 32


©2009 Talbott Jones and Colibri Limited
Ex. 1 – Field Required

• Complete the Header section.


– Seq = 1
– Description = Revision Required
– Level = Function
– Enabled is checked

Talbott Jones Forms Personalization 33


©2009 Talbott Jones and Colibri Limited
Ex. 1 – Field Required
Complete the Condition Tab.
• Trigger Event = When Validate Record
• Trigger Object = Trigger
PO_LINESEvent = When Validate Record
• Condition is null Trigger Object = PO_LINES
• Processing ModeProcessing
Condition is null
= NotMode in= Enter Query
Not in Enter Query Mode
Mode Context = Site (no value needed)

• Context = Site (no value needed)

Talbott Jones Forms Personalization 34


©2009 Talbott Jones and Colibri Limited
Ex. 1 – Field Required
Complete Actions Tab
• Seq = 1 • Object Type = Item
• Type = Property • Target Object = PO_LINES.ITEM_REVISION
• Property Name = Required
• Property Value = True

Talbott Jones Forms Personalization 35


©2009 Talbott Jones and Colibri Limited
Ex. 1 – Field Required

• Save your work!


• When this form is used in the future, the
field will be required.

Talbott Jones Forms Personalization 36


©2009 Talbott Jones and Colibri Limited
Ex. 2 – Insert Default Value
Revision Default to Highest Value
Why: The business wants to minimize
mistakes on purchase orders. Unless
there is a special need, the default revision
should be the most recent.

Talbott Jones Forms Personalization 37


©2009 Talbott Jones and Colibri Limited
Ex. 2 – Insert Default Value

We are already in the form from example 1.


• Complete the Header section.
– Seq = 2
– Description = Revision Default is most recent
– Level = Form
– Enabled is checked

Talbott Jones Forms Personalization 38


©2009 Talbott Jones and Colibri Limited
Ex. 2 – Insert Default Value
Complete the Conditions Tab

• Trigger Event = When New


Item Instance
• Trigger Object =
PO_LINES.ITEM_REVISION
• Context Level = Site
• No Context Value is needed.

Condition =
:PO_LINES.ITEM_REVISION IS NULL AND
:PO_LINES.ITEM_NUMBER IS NOT NULL

Talbott Jones Forms Personalization 39


©2009 Talbott Jones and Colibri Limited
Ex. 2 – Insert Default Value
Condition explained…
:PO_LINES.ITEM_REVISION IS NULL AND
:PO_LINES.ITEM_NUMBER IS NOT NULL

This means…
The item revision is blank, but the item number is
not blank. If this is true, the personalization will
be invoked.

Talbott Jones Forms Personalization 40


©2009 Talbott Jones and Colibri Limited
Ex. 2 – Insert Default Value
Complete the Actions Tab
• SEQ = 1 • Object Type = Item
• Type = Property • Object Target =
PO_LINES.ITEM_REVISI
ON
• Property Name = Value

Talbott Jones Forms Personalization 41


©2009 Talbott Jones and Colibri Limited
Ex. 2 – Insert Default Value
Actions Tab Continued

Complete the Value section…


• A SQL statement

Talbott Jones Forms Personalization 42


©2009 Talbott Jones and Colibri Limited
Ex. 2 – Insert Default Value
This SQL statement selects
the highest valued =SELECT A
revision, according to the from (
method used by Oracle. select
I.SEGMENT1
A SQL statement for this , max(R.revision) A
purpose can only return a FROM
single value, otherwise an INV.MTL_ITEM_REVISIONS_B R
error results. This makes ,APPS.MTL_SYSTEM_ITEMS_FVL I
since, because only one WHERE
value can be placed into R.inventory_item_id (+) = I.inventory_item_id
the field. AND R.organization_id (+) = I.organization_id
AND I.ORGANIZATION_ID = 167
The item number as AND SEGMENT1 = :PO_LINES.ITEM_NUMBER
delivered by the form is group by segment1
used at the bottom. You )
can see the :PO_LINES,
which is the block.

Talbott Jones Forms Personalization 43


©2009 Talbott Jones and Colibri Limited
Ex. 3 – Display a Message
Display a Pending Effectivity Message
Why? The business wants purchasing
agents to be aware of an expected change
to an item when placing an order. They
may decide to order less of the item, or
defer the purchase altogether.

Talbott Jones Forms Personalization 44


©2009 Talbott Jones and Colibri Limited
Ex. 3 – Display a Message

We are already in the form from example 1.


• Complete the Header section.
– Seq = 3
– Description = Item Pending Effectivity
– Level = Form
– Enabled is checked

Talbott Jones Forms Personalization 45


©2009 Talbott Jones and Colibri Limited
Ex. 3 – Display a Message
Complete the Conditions Tab
• Trigger Event = When New
Item Instance
• Trigger Object =
PO_LINES.ITEM_NUMBER
• Context Level = Site
• No Context Value is needed.

Condition = a SQL statement (next slide)

Talbott Jones Forms Personalization 46


©2009 Talbott Jones and Colibri Limited
Ex. 3 – Display a Message
This Condition is a SQL
Statement.
This is looking for a flag :PO_LINES.ITEM_NUMBER in
in a descriptive flex (SELECT
SEGMENT1
field (DFF) for the FROM
item. APPS.MTL_SYSTEM_ITEMS_B
WHERE
If the item number is ATTRIBUTE17 = 'Y')
among those that
have this attribute, the
personalization will be
invoked.
Talbott Jones Forms Personalization 47
©2009 Talbott Jones and Colibri Limited
Ex. 3 – Display a Message
Complete the Actions Tab.
• Seq = 1 • Message Type = Show
• Type = Message • Message Text = a partial SQL statement

Talbott Jones Forms Personalization 48


©2009 Talbott Jones and Colibri Limited
Ex. 3 – Display a Message
Message Text
='Item '||:PO_LINES.ITEM_NUMBER||' is pending effectivity'

This message text includes elements of SQL, but is very


simple.
“=“ tells the system this is going to be a SQL statement.
‘Item ‘ is plain text.
|| concatenates text with :PO_LINES.ITEM_NUMBER
(:<Block>.<Item>)
|| attaches the “ is pending effectivity “

Talbott Jones Forms Personalization 49


©2009 Talbott Jones and Colibri Limited
Ex. 4 – Hide Button

Hide Inspection Button on The Receiving


Transactions Form
Why? Warehouse receivers are not permitted to also inspect.
That duty is restricted to QA. However, access to the form is
needed for other reasons. Thus, the business wants to hide the
button only for a particular responsibility.

Note: No SQL is involved in this personalization.

Talbott Jones Forms Personalization 50


©2009 Talbott Jones and Colibri Limited
Ex. 4 – Hide Button
Navigate to the Receiving Transactions Form

The Inspect Button


appears at the
bottom right of the
form.

Talbott Jones Forms Personalization 51


©2009 Talbott Jones and Colibri Limited
Ex. 4 – Hide Button
Navigate to Forms
Personalization
– Help
– Diagnostics
– Custom Code
– Personalize

Talbott Jones Forms Personalization 52


©2009 Talbott Jones and Colibri Limited
Ex. 4 – Hide Button

• Complete the Header section.


– Seq = 1
– Description = Inspection Button
– Level = Form
– Enabled is checked

Talbott Jones Forms Personalization 53


©2009 Talbott Jones and Colibri Limited
Ex. 4 – Hide Button
Complete the Condition Tab
• Trigger Event = When New Form Instance
• Context Level = Responsibility
• Context Value = Warehouse Receiving

Talbott Jones Forms Personalization 54


©2009 Talbott Jones and Colibri Limited
Ex. 4 – Hide Button
Complete the Actions Tab
• Seq = 1 • Object Type = Item
• Type = Property • Target Object = RCV_CONTROL.INSPECTION_BUT
• Property Name = Displayed
• Value = False (not displayed)

Talbott Jones Forms Personalization 55


©2009 Talbott Jones and Colibri Limited
Ex. 4 – Hide Button
Result - Button is gone

Talbott Jones Forms Personalization 56


©2009 Talbott Jones and Colibri Limited
Ex. 5 – Populate Field

Supplier Lot Number is to be populated with


one of three values.
• Receipt Number
• Supplier Lot Number – if a DFF flag indicates this is desired
• If Supplier Lot Number is indicated by DFF, but not provided,
populate with zero

Talbott Jones Forms Personalization 57


©2009 Talbott Jones and Colibri Limited
Ex. 5 – Populate Field

We are already in the form from example 4.


• Complete the Header section.
– Seq = 2
– Description = Lot Number Determination
– Level = Form
– Enabled is checked
Talbott Jones Forms Personalization 58
©2009 Talbott Jones and Colibri Limited
Ex. 5 – Populate Field

Complete the Condition Tab

• Trigger Event = When New Block


Instance
• Trigger Object = LOT_ENTRY
• Context Level = Site

Talbott Jones Forms Personalization 59


©2009 Talbott Jones and Colibri Limited
Ex. 5 – Populate Field
Complete the Actions Tab
• Seq = 1 • Object Type = Item
• Type = Property • Target Object = LOT_ENTRY.LOT_NUMBER
• Property Name = Value
• Value = a SQL statement

Talbott Jones Forms Personalization 60


©2009 Talbott Jones and Colibri Limited
Ex. 5 – Populate Field
The value is a SQL statement. = Select A from (select
CASE WHEN ATTRIBUTE11 = 'Y' THEN
Reference is made to a nvl(:RCV_TRANSACTION.VENDOR_LOT_NU
descriptive flexfield. If its M,'0') ELSE
value is Y, then use the :OVERFLOW_AREA.RECEIPT_NUM
supplier lot number. END A
Otherwise, use receipt from
number. apps.mtl_system_items
If DFF = ‘Y’ but there is no where segment1 =
value in supplier lot :LOT_CONTEXT.ITEM
number, use ‘0’.
and organization_id = 168)

Talbott Jones Forms Personalization 61


©2009 Talbott Jones and Colibri Limited
Ex. 6 – Display Warning
To fill a gap on Ex. 5…
What if the supplier lot number is not there
when needed?
Using a zero for the lot number is not
desired.
The system should provide a warning.

Talbott Jones Forms Personalization 62


©2009 Talbott Jones and Colibri Limited
Ex. 6 – Display Warning

• Complete the Header section.


– Seq = 3
– Description = Warning Supplier Lot Missing
– Level = Form
– Enabled is checked
Talbott Jones Forms Personalization 63
©2009 Talbott Jones and Colibri Limited
Ex. 6 – Display Warning
Complete the Condition Section
• Trigger Event = When Validate Record
• Trigger Object = LOT_ENTRY
• Condition =:LOT_ENTRY.LOT_NUMBER = '0‘
• Context Level = Site

Talbott Jones Forms Personalization 64


©2009 Talbott Jones and Colibri Limited
Ex. 6 – Display Warning
Complete the Actions Tab
• Seq = 1 • Message Type = Warn
• Type = Message
• Message Text = The lot number
selected appears to be incorrect. Click
"Cancel" to go back and reenter your data.

Talbott Jones Forms Personalization 65


©2009 Talbott Jones and Colibri Limited
Ex. 6 – Display Warning
• If a lot number of “0” is encountered, the
system displays this message.

Talbott Jones Forms Personalization 66


©2009 Talbott Jones and Colibri Limited
Documentation
• How you can document Forms
Personalizations
– Manual
– Query
• How to verify your documentation
– Oracle’s Find Personalizations Form

Talbott Jones Forms Personalization 67


©2009 Talbott Jones and Colibri Limited
Documentation
• Forms Personalizations typically do not
have a large volume of data. Cut and
paste into a document can be useful
• A query can be useful too.

Talbott Jones Forms Personalization 68


©2009 Talbott Jones and Colibri Limited
Documentation
A Query
SELECT fcr.id
, fff.user_function_name
, FCR.FORM_NAME FORM
, FCR.SEQUENCE SEQ
, FCR.DESCRIPTION
, case when fcr.rule_type = 'F' then 'FORM'
when fcr.rule_type = 'A' then 'FUNCTION'
ELSE 'UNKNOWN' END P_LEVEL
, FCR.ENABLED
, FU.USER_NAME
, FCR.TRIGGER_EVENT
, FCR.TRIGGER_OBJECT
, FCR.LAST_UPDATE_DATE
FROM APPLSYS.FND_FORM_CUSTOM_RULES FCR
,APPS.FND_USER FU
,apps.FND_FORM_FUNCTIONS_VL FFF
where
fcr.function_name = fff.function_name
and fcr.last_updated_by = FU.USER_ID
AND FCR.ENABLED LIKE :ENABLED
order by form_name, sequence;

Talbott Jones Forms Personalization 69


©2009 Talbott Jones and Colibri Limited
Documentation
While in a Forms Personalization
• Tools
– Administration

Talbott Jones Forms Personalization 70


©2009 Talbott Jones and Colibri Limited
Documentation
The system lists all the forms with Forms
Personalizations, with a count of each.

Talbott Jones Forms Personalization 71


©2009 Talbott Jones and Colibri Limited
Migration to Production
There are two methods to migrate into
production.
• Enter directly as shown in these slides.
• Use scripts which are available to copy
from a test instance into production.

Talbott Jones Forms Personalization 72


©2009 Talbott Jones and Colibri Limited
Cautions
• Future Oracle patches could impact your Forms
Personalizations. Testing is needed when you
patch.
• Don’t try to remove standard Oracle restrictions
through Forms Personalization. If you want to
skip a field that is required, try using an “auto-
populate” method instead.
• It would be a good idea to restrict access to the
“Utilities:Diagnostics” profile.

Talbott Jones Forms Personalization 73


©2009 Talbott Jones and Colibri Limited
Q&A
• tjones@colibrilimited.com

Talbott Jones Forms Personalization 74


©2009 Talbott Jones and Colibri Limited

You might also like