some important tips

Upload: sundarapu-gunabhiram

Post on 04-Apr-2018

224 views

Category:

Documents


0 download

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/