some important tips
TRANSCRIPT
-
7/30/2019 Some Important Tips
1/15
-
7/30/2019 Some Important Tips
2/15
Save your work.
Select the Actions tab.
Actions Sequence: 10
Type: Message
Message Type: Warn
Message Text: Do you want to enter Query Mode?
Actions Sequence: 20
Type: Builtin
Builtin Type: DO_KEY
Argument: ENTER_QUERY
Save your work.
Close the Form Personalization window and the Master Item window.
Reopen the Master Item window and voil!
http://www.flickr.com/photos/34041331@N00/260016565/http://www.flickr.com/photos/34041331@N00/260016564/http://www.flickr.com/photos/34041331@N00/260016565/http://www.flickr.com/photos/34041331@N00/260016564/ -
7/30/2019 Some Important Tips
3/15
Next entry coming soon.
Cheers,
JA
http://it.toolbox.com/blogs/apps-traction-blog/how-to-create-a-zoom-using-oracle-form-
personalization-12081Read 19 commentsThis next example will feature the definition of a Zoom using Oracle Form Personalization functionality. We will define a Zoom fromthe PO form to the Supplier form. This is a request that clients often ask for.
We will need to define three Rules for each of the forms used to achieve this. Each Rules will have their own set of Conditions andActions.
The Rules definition logic will be as follows:
For the PO form
Create Menu Item
Check for NULL value
Open the Supplier form
For the Supplier form
Set initial value of Global Variable
Go to Block VNDR and enter Query mode
Execute query and set value of Global Variable back to NULL
http://it.toolbox.com/blogs/apps-traction-blog/how-to-create-a-zoom-using-oracle-form-personalization-12081http://it.toolbox.com/blogs/apps-traction-blog/how-to-create-a-zoom-using-oracle-form-personalization-12081http://it.toolbox.com/blogs/apps-traction-blog/oracle-form-personalization-intermediate-examples-12039#commentshttp://it.toolbox.com/blogs/apps-traction-blog/oracle-form-personalization-intermediate-examples-12039#commentshttp://it.toolbox.com/blogs/apps-traction-blog/oracle-form-personalization-intermediate-examples-12039#commentshttp://it.toolbox.com/blogs/apps-traction-blog/oracle-form-personalization-intermediate-examples-12039#commentshttp://www.flickr.com/photos/34041331@N00/260016567/http://it.toolbox.com/blogs/apps-traction-blog/oracle-form-personalization-intermediate-examples-12039#commentshttp://it.toolbox.com/blogs/apps-traction-blog/oracle-form-personalization-intermediate-examples-12039#commentshttp://it.toolbox.com/blogs/apps-traction-blog/how-to-create-a-zoom-using-oracle-form-personalization-12081http://it.toolbox.com/blogs/apps-traction-blog/how-to-create-a-zoom-using-oracle-form-personalization-12081 -
7/30/2019 Some Important Tips
4/15
-
7/30/2019 Some Important Tips
5/15
Rule Seq: 30
Description: Open the Supplier Form
Trigger Event: SPECIAL31
Context: User and set the value to your user name
Actions Seq: 10
Type: Property
Object Type: Global Variable
Target Object: XX_VENDOR (or name it wathever you want)
Property Name: VALUE
Value: =:PO_HEADERS.VENDOR_ID (using Object's identifier ID's as the Global Variable'svalue makes for a more robust custom)
Actions Seq: 20
Type: Builtin
Builtin Type: Launch a Function
Function Code: AP_APXVDMVD
Function Name: Suppliers
Save your work and exit all the forms.
At this point, you should test what you have done so far. From the Navigator, reopen the
Purchase Orders form. From the menu bar, select Actions > Zoom to Supplier form (the menuitem you defined earlier). Because you do not yet have a Supplier entered on your new PO and
you're trying to Zoom to the Supplier form, you should see the error message that you defined in
the Rule Seq 20. If this works, then continue with following:
Navigate to the Suppliers window using the Purchasing SuperUser responsibility.
Enter the Form Personalization form. (M) Help > Diagnostics > Custom Code > Personalize.
Rule Seq: 10
-
7/30/2019 Some Important Tips
6/15
Description: Set initial value of Global Variable
Trigger Event: WHEN-NEW-FORM-INSTANCE
Context: User and set the value to your user name
Select the Actions tab
Actions Seq: 10
Type: Property
Object Type: Global Variable
Target Object: XX_VENDOR (The Global Variable you defined earlier)
Property Name: INITIAL VALUE
Value: =NULL----------------------------------------------
Rule Seq: 20
Description: Go to Block VNDR and enter Query mode
Trigger Event: WHEN-NEW-FORM-INSTANCE
Condition: :GLOBAL.XX_VENDOR IS NOT NULL
Context: User and set the value to your user name
Actions Seq: 10
Type: Builtin
Builtin Type: GO_BLOCK
Argument: VNDR
Actions Seq: 20
Type: Builtin
Builtin Type: DO_KEY
-
7/30/2019 Some Important Tips
7/15
Argument: ENTER_QUERY
----------------------------------------------
Rule Seq: 30
Description: Execute query, go to Block SITE and reset Global Variable value to NULL
Trigger Event: WHEN-NEW-RECORD-INSTANCE
Trigger Object: VNDR
Condition: :GLOBAL.XX_VENDOR IS NOT NULL
Processing Mode: Both
Context: User and set the value to your user name
Actions Seq: 10
Type: Property
Object Type: Item
Target Object: VNDR.VENDOR_ID
Property Name: VALUE
Value: =:GLOBAL.XX_VENDOR
Actions Seq: 20
Type: Builtin
Builtin Type: DO_KEY
Argument: EXECUTE_QUERY
Actions Seq: 30
Type: Property
Object Type: Global Variable
Target Object: XX_VENDOR
-
7/30/2019 Some Important Tips
8/15
Property Name: VALUE
Value: =NULL
Now go ahead and test your custom. Open the Purchase Orders form and start defining a new
standard PO, enter a supplier in the Supplier field (in my example, I used "ABC Corp"). Click on(M) Actions > Zoom to Supplier Form
Bingo!, you are automatically taken to the Supplier form for "ABC Corp".
http://www.flickr.com/photos/34041331@N00/260846013/ -
7/30/2019 Some Important Tips
9/15
Once again, this is another example of how flexible Oracle Form Personalization is and don't
forget how much time I have saved. It took me about 20 minutes to do this, including defining
and testing. In the past, I would have had to send functional specs over to the Technical analyst
and it would have taken a couple of days to have this done thru the Custom Library.
http://it.toolbox.com/blogs/apps-traction-blog/oracle-form-personalization-basic-example-11936
For reader not yet familiar with Form Personalization, here is some summary information:
SECURING ACCESS AND TESTING
When using Form Personalization, it is recommended to take some precautions whenimplementing it.
1. Only trusted users should have access to this feature. Usethe system profiles:'Hide Diagnostics menuentry' and 'Utilities:Diagnostics' to control the visibility of
http://it.toolbox.com/blogs/apps-traction-blog/oracle-form-personalization-basic-example-11936http://it.toolbox.com/blogs/apps-traction-blog/oracle-form-personalization-basic-example-11936http://www.flickr.com/photos/34041331@N00/260846017/http://it.toolbox.com/blogs/apps-traction-blog/oracle-form-personalization-basic-example-11936 -
7/30/2019 Some Important Tips
10/15
the menu and the direct access to the feature (user requiresApps password or not?);
2. It is a good idea to test all Form Personalizations in a DEV orTEST environment before moving them to a Production
environment. Remember that changes made could impact orinterfere with the base code of a form;
3. Follow diligently the Support statements communicated byOracle.
OVERVIEW AND BASIC CONCEPTSForm Personalization is a declarative feature that alter the behavior of
Oracle Forms-based screens, including changing properties, executing
built-ins, displaying messages, and adding menu entries.
RULESFor each function, you can specify one or more Rules. Each Ruleconsists of an Event, an optional Condition, the Scope for which itapplies, and one or more Actions to perform.
An Event is a trigger point within a form, such as a startup(WHEN-NEW-FORM-INSTANCE), or a new record (WHEN-NEW-RECORD-INSTANCE). Oracle forms sends standard and
product-specific events.
A Condition is an optional SQL code fragment that is evaluatedwhen an Event occurs. If the Condition evaluates to TRUE thenthe Actions are processed.
A Scope is evaluated based on the current runtime context todetermine if a Rule should be processed or not. The Scope canbe Site, Responsibility or User. Each Rule can have one or more
Scopes associated with it. When defining new Rules in your DEVor TEST environment, I recommend setting the Scope to yourUser first just to be safe. If all is well with your personalization,then proceed in setting the Scope to it's intended level. If a Rulehas a context of "Site", it will apply for everyone. A Rule with a
-
7/30/2019 Some Important Tips
11/15
context of Responsibility doesn't override Site. A Rule with acontext of User doesn't override Site or Responsibility.
ACTIONS
Each Action consists of'Setting a property', such as making arequired field or hiding a Tab page, 'Executing a Built-in', suchas GO_BLOCK, DO_KEY orEND_FUNCTION.EXECUTE, 'Displaying aMessage' or'Enabling a Special menu entry', such as a zoom.Once Rules are defined, save and close the form and re-run the function
(the form). Then the Rules are automatically applied as Events occur
within that form.
EXAMPLE OF A BASIC FORM PERSONALIZATION
For this example, we will define a basic Forms Personalization by hiding
the Person, Customer and Fax fields of the User form. Follow the
following steps.
Responsibility: System Administrator
1 - Ensure to set system profile 'Hide Diagnostics menu entry' to
'No' and'Utilities:Diagnostics' to 'Yes' at the user level.
2 - Open the Users form. (N) Security > User > Define.
3 - This is the basic Users form as shown here:
-
7/30/2019 Some Important Tips
12/15
4 - From the menu, select (M) Help > Diagnostics > Custom Code > Personalize.
5 - If some Rules are already defined in the Users form, you will see them this window (as in this
example).
6 - Add a new Rule by selecting (M) File > New.
7 - This is the Form Personalisation form and it's Rules already defined. We will be adding seq.
40.
A - Rules Seq.: 40
B - Description: Hide Person, Customer and Fax fields
C - Trigger Event: WHEN-NEW-FORM-INSTANCE
http://www.flickr.com/photos/34041331@N00/258786454/http://www.flickr.com/photos/34041331@N00/258728479/http://www.flickr.com/photos/34041331@N00/258786454/http://www.flickr.com/photos/34041331@N00/258728479/ -
7/30/2019 Some Important Tips
13/15
D - Context or Scope: Set at User level and enter your user in the Value field
E - Select the Actions tab. This is the Actions tab of Rule seq. 40
F - Action Seq.: 1
G - Type: Property
H - Object Type: Item
I - Select the Select By Text button
J - Select the Person (Users) item from the LOV
K - Property Name: DISPLAYED
L - Value: False
M - Save your work
N - When you are done, it should look like this:
http://www.flickr.com/photos/34041331@N00/258811297/http://www.flickr.com/photos/34041331@N00/258804009/http://www.flickr.com/photos/34041331@N00/258811297/http://www.flickr.com/photos/34041331@N00/258804009/ -
7/30/2019 Some Important Tips
14/15
-
7/30/2019 Some Important Tips
15/15
Other basic Forms Personalization are just as easy as this example, such as changing prompts,
concealing data or hiding tabs.
On my next entry, I will try to cover an intermediate Form Personalization as an example.
Elements such as triggers, conditions, sequences, contexts, string evaluation, multi-lingual
issues, common actions and debugging will be covered
http://www.flickr.com/photos/34041331@N00/259740941/