formpers ml rup4

21
Form Personalizati on This document describes the use of the Form Personalization feature, which allows you to declaratively alter the behavior of Forms-based screens. The following topics are covered: Overview sing the Personalization form !imitations "#amples and Tips  $dministration %in dow &oving Personalizations between instances 'elationship to ()TO& library 'elationship to Folder Troubleshoot ing, )upport, and pgrade considerations (hanges to Form Personalization in **.+.* (* (hanges to Form Personalization in **i.$TPF./ 'ollup 0 1Patch 200234+5 (hanges to Form Personalization in **i.$TPF./ 'ollup 2 1Patch 2464+735 Overview The Form Personalization feature allows you to declaratively alter the behavior of Forms-based screens, including changing properties, e#ecuting builtins, displaying messages, and adding menu entries. For each function 1a form running in a particular conte#t based on parameters passed to it5, you can specify one or more 'ules. "ach 'ule consists of an "vent, an optional (ondition, the )cope for which it applies, and one or more $ctions to perform.  $n "vent is a trigger point w ithin a form, such as startup 1 %/"8-8"%-FO'&-98) T$ 8("5, or when focus moves to a new record 1%/"8-8"%-'" (O'-98)T$ 8("5. There are standard events that almost every form sends, and certain forms send additional product-specific events. The )cope is evaluated based on the current runtime conte#t to determine if a 'ule should be processed or not. The )cope can be at the )ite, 'esponsibility , ser, or 9ndustry level. "ach 'ule can have one or more )copes associated with it. 8OT": the scope of ;9ndustry; is reserved for future use. The (ondition is an optional )<! code fragment that is evaluated when the "vent occurs= if it evaluates to T'" then the $ctions are processed. "ach $ction consists of one of the following: setting a Property, such as ma>ing a field 'e?uired or hiding a Tab page e#ecuting a @uiltin, such as O@!O(A, OA"B or F8F8(T9O8."C"(T" displaying a &essage enabling a )pecial menu entry Once 'ules are defined, when the target function is run then the 'ules are automatically applied as events occur within that form.   $lthough the For m Personalizati on feature is declara tive, the int ended audience is a person familiar with Oracle Forms including the P!D)<! programming language, and the Oracle  $pplications ev elopment uide. $dditionally, any change made could interfere with the base

Upload: andres-lopez

Post on 10-Oct-2015

4 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/20/2018 Formpers Ml Rup4

    1/21

    Form Personalization

    This document describes the use of the Form Personalization feature, which allows you todeclaratively alter the behavior of Forms-based screens.

    The following topics are covered:

    Overview sing the Personalization form

    !imitations

    "#amples and Tips

    $dministration %indow

    &oving Personalizations between instances

    'elationship to ()TO& library

    'elationship to Folder

    Troubleshooting, )upport, and pgrade considerations

    (hanges to Form Personalization in **.+.* (*

    (hanges to Form Personalization in **i.$TPF./ 'ollup 0 1Patch 200234+5

    (hanges to Form Personalization in **i.$TPF./ 'ollup 2 1Patch 2464+735

    Overview

    The Form Personalization feature allows you to declaratively alter the behavior of Forms-basedscreens, including changing properties, e#ecuting builtins, displaying messages, and addingmenu entries.

    For each function 1a form running in a particular conte#t based on parameters passed to it5, youcan specify one or more 'ules. "ach 'ule consists of an "vent, an optional (ondition, the )copefor which it applies, and one or more $ctions to perform.

    $n "vent is a trigger point within a form, such as startup 1%/"8-8"%-FO'&-98)T$8("5, orwhen focus moves to a new record 1%/"8-8"%-'"(O'-98)T$8("5. There are standard

    events that almost every form sends, and certain forms send additional product-specific events.

    The )cope is evaluated based on the current runtime conte#t to determine if a 'ule should beprocessed or not. The )cope can be at the )ite, 'esponsibility, ser, or 9ndustry level. "ach 'ulecan have one or more )copes associated with it.

    8OT": the scope of ;9ndustry; is reserved for future use.

    The (ondition is an optional )

    "ach $ction consists of one of the following: setting a Property, such as ma>ing a field 'e?uired or hiding a Tab page

    e#ecuting a @uiltin, such as O@!O(A, OA"B or F8F8(T9O8."C"(T" displaying a &essage

    enabling a )pecial menu entry

    Once 'ules are defined, when the target function is run then the 'ules are automatically appliedas events occur within that form.

    $lthough the Form Personalization feature is declarative, the intended audience is a personfamiliar with Oracle Forms including the P!D)

    $pplications evelopment uide. $dditionally, any change made could interfere with the base

  • 5/20/2018 Formpers Ml Rup4

    2/21

    code of a form 1the code that Oracle ships5, thus the )upport statements discussed later in thischapter must be followed diligently.

    Using the Personalization Form

    To create personalizations for a particular function, first invo>e that function from the 8avigation

    menu. %hile in the form, choose /elp-Eiagnostics-E(ustom (ode-E Personalize from thepulldown menu. This menu entry is secured by the F8/9"9$8O)T9() 1/ide iagnosticsmenu entry5 and 9$8O)T9() 1tilities:iagnostics5 profiles, as are most other entries on theiagnostics menu.

    The Personalization form will open and automatically ?uery e#isting 'ules for that function. $fterma>ing changes, )ave them then close and re-run the function to have them ta>e effect. Bou canalso alidate or $pply certain changes immediately to test them without having to re-run thetarget form by pressing the GalidateH or G$pply 8owH buttons.

    Figure *: The Personalization screen, when opened from the sers form 1Function 8ame F8F8)($)5

    "ach 'ule consists of the following fields:

    Seq:The se?uence in which rules will be processed. This is a value between * and *, with *being processed first. The se?uence of rules does not have to be uni?ue. 8ote that there is aninteraction with the Trigger "vent field, described below.

    Description:se this field to document the personalization you are ma>ing.

    Enabled:nchec> this chec>bo# to temporarily disable processing of a 'ule.

    The following fields appear on the (ondition tab:

    Trigger Event:)elect the event at which you want the 'ule to be processed. Bou can pic> fromthe list of standard events, or type in a specific event uni?ue to the form. 8ote that this field is a

  • 5/20/2018 Formpers Ml Rup4

    3/21

    (ombobo#, which is a hybrid of a Poplist and Te#t 9tem. 'ules are processed f irst by matchingthe "vent, then by their )e?uence number.

    Trigger Object: epending on the Trigger "vent, this field may be isabled, or "nabled and'e?uired in which case it will validate against a !ist of alues. For e#ample, if Trigger "vent%/"8-8"%-9T"&-98)T$8(" is selected, then you must enter a specific block.fieldfor that

    trigger to be processed.

    Condition:This is an optional )

    'eferences to bind variables 1:bloc>.field5, including :system, :global and :parametervalues. se the ;$dd 9tem...; button to assist with item names.

    (alls to server-side functions that do not have OT parametersThe entire fragment must be syntactically correct, and can be tested with the ;alidate; button,which will evaluate it in the current conte#t of the target form. 9f the evaluation fails, theprocessing engine will return an O'$ error as if the condition had been part of a )

    Condition Comments:users.username is not null and:users.description is null

    The rule will be processed if the username field has avalue and the description field does not

    sysdate EI todate1G*-*-J+H, G-&&-''''H5

    The rule will be processed if the current date is e?ual toor after Kanuary *, J+.

    Fire in Enter-Qer! "ode:This chec>bo# controls whether the 'ule should be processed if theevent occurs during enter-?uery mode processing.

    "ach 'ule consists of one or more )cope rows, and one or more $ctions. 9f a 'ule has no )coperows or $ction rows, it is not processed. 8ote that upon saving a 'ule, if no )cope rows havebeen entered the form will automatically create a row at the )ite level. 9f any scope matches thecurrent runtime conte#t then the 'ule will be processed.

    The following )cope fields appear in the (onte#t region of the (ondition tab:

    #evel:)elect the level at which you want the rule to be applied, either )ite, 'esponsibility, ser,or 9ndustry.

    $ale: @ased on the !evel, either isabled, or "nabled and 'e?uired in which case it will validateagainst a !ist of alues.

    $ll $ction fields appear on the $ctions tab:

  • 5/20/2018 Formpers Ml Rup4

    4/21

    Figure J: the $ctions tab of the Personalization form

    Seq:The se?uence in which actions will be processed within that 'ule. This is a value between *and *, with * being processed first. The se?uence does not have to be uni?ue. $ll of theactions associated with a particular rule are processed as a group, then the ne#t rule 1if any5 isprocessed. This feature is particularly useful when moving items, in which case a canvas mayhave to be resized first before an C Position can be altered.

    T!pe:the type of action to ta>e: Property: allows you to select a specific obLect, a property of that obLect, and specify a

    new value for that property @uiltin: allows e#ecution of a standard Forms @uiltin, such as O@!O(A or OA"B

    &essage: displays a message in one of several styles

    )pecial: enables a special menu entry, defining its label, icon name and which bloc>s itapplies to.

    Description:se this field to document the personalization action you are ma>ing.

    #angage:)pecify ;$ll; to have the action processed for any language, or select a specificlanguage. Typically te#t-related personalizations would be applied for a specific language.

    Enabled:nchec> this chec>bo# to temporarily disable processing of the action.

    %ppl! &o': For several Types, this button will be enabled. 9t allows you to apply the changeimmediately to the target form to test its effect. 8ote that the actual effect that will occur duringnormal runtime e#ecution of rules may be different, due to timing of triggers and otherconsiderations.

    The following buttons are enabled conditionally based on the Type field:

    %dd (ara)eter*: !ist of alues that displays currently used parameters. $pplies to the builtinF8F8(T9O8."C"(T" only.

  • 5/20/2018 Formpers Ml Rup4

    5/21

    %dd +lock*:!ist of alues that displays bloc> names.

    %dd ,te)*:!ist of alues that displays item names.

    $alidate: sed to test if the synta# of your string is valid. 9f the evaluation fails, the processing

    engine will return an O'$ error as if the string had been part of a )

    The following fields appear conditionally based on the Type field:

    For a Type of ;Property;:

    Figure 0: The fields associated with an action of ;Property;

    Select +! Tet: This button allows you to select an obLect based on te#t appearing on thescreen at the point in time that you invo>e the Personalization form, including any changesthat current rules might have performed. For e#ample, if you want to change a field with the

    current prompt of ;9tem 8umber;, you should see ;9tem 8umber; in this list, and selecting it willautomatically fill in the ObLect Type and Target ObLect fields.Object T!pe:the type of obLect, including 9tem, %indow, @loc>, Tab, (anvas, 'adio button,iew, !O@$!, or P$'$&"T"'.

    Target Object:based on the ObLect Type, the internal name of the obLect. For ObLect Types of!O@$! and P$'$&"T"', the Target ObLect name must not include those >eywords. Fore#ample, to refer to !O@$!.CC&B$'9$@!", only enter CC&B$'9$@!".

    (ropert! &a)e:based on the ObLect Type, the properties that can be personalized. TheObLect Type of 9tem supports a vast array of properties including:

    9tem-level properties, which set the property for all instances of that obLect.

    9tem-instance properties, which set the property for the current record of that bloc>using setiteminstanceproperty15

    $pplications cover properties, which are a hybrid of multiple item and item-instancelevel properties. These are fully documented in the Oracle $pplications evelopmentuide.

    $ale:the new value. The appearance and validation of this field changes based on whetherthe property accepts @oolean values 1TrueDFalse5, numbers, a restricted set of values, or astring 1)ee "valuation of )trings below5

  • 5/20/2018 Formpers Ml Rup4

    6/21

    et $ale: This button gets the current property value of the obLect.

    For a Type of ;&essage;:

    Figure 2: The fields associated with an action of ;&essage;

    "essage T!pe:either ;)how;, ;/int;, G%arnH, ;"rror;, or GebugH. G"rrorH and G%arnH if the userselects the G(ancelH button will raise a formtriggerfailure after e#ecuting, and stop all furtherprocessing. &essages of type GebugH will only be displayed if the G)how ebug &essagesHchec>bo# is chec>ed.

    "essage Tet:The te#t you want to display in the message. 1)ee "valuation of )tringsbelow5

    For a Type of ;@uiltin;:

    Figure +: The fields associated with an action of G@uiltin;

    +iltin T!pe:The name of the builtin, such as O9T"&, OA"B, O@!O(A, '$9)"

    FO'&T'9"'F$9!'", FO'&)!, F8T9!9T9").OP"8'! orF8F8(T9O8."C"(T".

    %rg)ent:The argument for the currently selected builtin, if applicable.

    epending on the specific builtin, other argument fields may appear.

    Figure 4: The fields associated with an action of G@uiltinH and @uiltin Type of F8F8(T9O8."C"(T"

    Fnction &a)e:The name of the function that should be e#ecuted.

    (ara)eters:Bou can manually enter parameters or use the G$dd ParameterMH button. The

  • 5/20/2018 Formpers Ml Rup4

    7/21

    G$dd ParameterMH button displays an !O listing currently defined parameters for theFunction 8ame, by ?uerying other functions for that same form. 9t is possible that otherparameters e#ist that will not be displayed in the !O. The only way to see all parametersthat a function has is to open the form in the Oracle Forms @uilder. Oracle ma>es nowarranties that any function provides the specific input parameters that you may desire, northat any e#isting parameter and its behavior will remain unchanged after a patch.

    For a Type of ;)pecial;:

    Figure 6: The fields associated with an action of ;)pecial;

    "en Entr!: One of 2+ menu entries that you can activate. The menus are arranged in 0 setsof *+ each under the Tools, 'eports and $ctions pulldown menus. 9f you select a menu thatthe base form is already using, your functionality will override the form;s functionality.

    "en #abel:The te#tual label that you want on the menu entry. 1)ee "valuation of )tringsbelow5

    /ender line before )en:9f chec>ed, will render a line above the menu entry to visuallyseparate it from prior entries.

    Enabled in +lock0s1:)pecify the bloc>s that you want the menu entry enabled in= specifymore than one bloc> by separating the names with a comma. 9f no bloc>s are specified, the

    entry will be enabled in all bloc>s. se the ;$dd @loc>...; button to add a bloc>name to the endof the field.

    ,con &a)e:)pecify an optional icon name that you want added to the Toolbar to achieve thesame functionality as in the special pulldown menu entry.

    )pecifying an action of ;)pecial; merely activates the appropriate menu entry. %hen the userselects the entry, it will fire the corresponding )P"(9$!N trigger. Bou must must also createanother rule that traps this Trigger "vent and performs the desired functionality.

    8ote that the $ctions bloc> automatically defaults most values from the prior row when you createa new row.

    "valuation of )trings"very property that ta>es a string can either be processed literally or evaluated at runtime.

    9f you type a string in that does not start with GIH, then the e#act value you type in will beused at runtime

    9f the string you type starts with GIH, then the te#t immediately after that character will beevalatedat runtime. This allows you to write comple# logic that can include referencessuch as: )

  • 5/20/2018 Formpers Ml Rup4

    8/21

    (alls to server-side functions that do not have OT parameters.

    )"!"(T statements. To use this form, you must follow these rules:

    The te#t must start with ;I)"!"(T;

    The column being selected must evaluate to a (/$', with a length no longerthan J bytes.

    Bou must alias the column being selected to ;$;.

    Bour )"!"(T statement should only return one row, but if more than one isreturned only the value of the first row will be used.

    %hen using this method you must follow )

  • 5/20/2018 Formpers Ml Rup4

    9/21

    String typed in Personalization form Result at runtime

    I;Bour password will e#pire on ;1sysdate65 Bour password will e#pire on 0*-"(-J2 Qassuming that sysdate iscurrently J2-"(-J2R

    I;Bour password must have at least

    ;:global.passwordlength; characters.;

    Bour password must have at least 7

    characters. Qassuming that globalvariable passwordlength e#ists andhas a value of 7R

    IHBour password isnHHt valid.H Bour password isnHt valid.I:items.partnumber Qwhatever the current value of variable

    :items.partnumber isRI)"!"(T meaning $ from fndloo>ups whereloo>uptype I ;$B8$&"; and loo>upcodeI ;)$T;

    )aturday Qassuming that the system isrunning in englishR

    I)"!"(T ;The office is closed on ;meaning $from fndloo>ups where loo>uptype I;$B8$&"; and loo>upcode I ;)$T;

    The office is closed on )aturdayQassuming that the system is running inenglishR

    se the GalidateH button to test if the synta# of your string is valid. 9f the evaluation fails,

    the processing engine will return an O'$ error as if the string had been part of a )

    Limitations

    This feature has several significant limitations due to the architecture of Oracle Forms andDor thee-@usiness )uite.

    Bou can only change what Oracle Forms allows at runtime. For e#ample, the following cannot bechanged:

    Bou cannot create new items

    Bou cannot move items between canvases

    Bou cannot display an item which is not on a canvas 1thus, individual fle#fieldsegments cannot be displayed5 Bou cannot set certain properties such as the atatype of an 9tem.

    Bou cannot change frames, graphics, or boilerplate

    Bou cannot hide the item that currently has focusForm Personalization can only respond to events that are centrally processed and dispatched by

    $PP(O'". These are limited to: %/"8-8"%-FO'&-98)T$8(", %/"8-8"%-@!O(A-98)T$8(", %/"8-

    8"%-'"(O'-98)T$8(", %/"8-8"%-9T"&-98)T$8(". These eventsoccur as the user moves focus within the form.

    %/"8-$!9$T"-'"(O' 1in many but not all forms5. This event occurswhenever changes have been made to the current record in the current bloc>.

    )P"(9$!* through )P"(9$!2+. These occur when the user selects entriesfrom the Tools, 'eports and $ctions pulldown menus.

    Product-specific events. These are typically documented in implementationmanuals, such as ;(onfiguring, 'eporting and )ystem $dministration in Oracle/'&);.

    Bou can see events that are being passed by enabling the ;)how "vents; option in the (ustom(ode menu.

  • 5/20/2018 Formpers Ml Rup4

    10/21

    (ertain personalizations must be performed at specific events: To specify the 9nitial alue of an 9tem, you must perform that action in the

    %/"8-8"%-'"(O'-98)T$8(" event of the bloc> that contains the item. )pecial menu entries can only be created at form startup 1%/"8-8"%-FO'&-

    98)T$8("5@oth the Personalization form and the runtime processing engine will report errors for these

    cases and s>ip processing of them.

    (ertain obLects may not be available to you to change, or cannot be validated: 9f a Tab within a form has no items directly rendered on it, that Tab will not

    appear in the list of obLects that you can modify. 9n some cases, ma>ing that Tabthe active tab before invo>ing the Personalization feature may cause it to bedetected.

    The obLect types !O@$! and P$'$&"T"' cannot be detected, thus thesefields have no !Os to restrict their input. se the ;alidate; or ;$pply 8ow;buttons to determine if the values you have entered actually e#ist. 8ote that!O@$! variables are dynamically created, so whether they e#ist or not can bea matter of timing.

    &ost significantly, any change you ma>e might interfere with the normal operation of the form.This can manifest itself in several ways, such as:

    Bou may ma>e a personalization but it doesn;t ta>e effect, because there is codein the form that overrides it. 9n some cases you may be able to perform yourpersonalization by moving the Trigger "vent to a ;lower; level, such as bloc>- oritem-level.

    Bour personalization may simply produce the wrong result, because yourchange interacted with the base code in une#pected and untested ways. $t bestthis error will occur immediately upon the personalization being applied= at worstit could affect some later processing which does not appear to be directly relatedto the obLect or event.

    9n e#treme cases, your changes may prevent the form from running at all,ma>ing it difficult to open the Personalization screen to remove the offending

    personalization unless you turn off (ustom (ode.@ecause of this, it is critical that any change be thoroughly tested in a Test environment. )ee the;Troubleshooting, )upport, and pgrade considerations; section later in this chapter for moreinformation.

    Examples and ips

    (hanging the prompt of an itemThis is a step-by-step e#ample of changing a prompt. 9n this case, we will modify the ;sers; form,and change the prompt Gser 8ameH to G!ogon 8ameH:

    *. Open the sers form

    2. )elect /elp-Eiagnostics-E(ustom (ode-E Personalize from the pulldown menu. 9f thismenu entry is disabled, chec> the values of the F8/9"9$8O)T9() and

    9$8O)T9() profiles.0. (reate a rule with the following values:

    Seq: * Description: (hange prompt of ser 8ame

    $ccept the defaults for all other values of the 'ule and (onte#t2. )elect the $ctions Tab and enter the following values:

    Seq: * Press the G)elect @y Te#tH button and choose the Gser 8ameH row from the !O (ropert! &a)e: P'O&PTT"CT $ale: !ogon 8ame

  • 5/20/2018 Formpers Ml Rup4

    11/21

    $ccept the defaults for all other values of the $ctions.+. )ave4. $ctivate the sers form, then close it.6. 'e-open the sers form. Bou should see that the prompt is now G!ogon 8ameH.7. To disable this 'ule, set "nabled to unchec>ed 1at either the 'ule or $ction level5, or Lust

    delete the 'ule, then )ave.

    isabling or /iding a Tab Page%hen you disable or hide a tab page, it does not change the state of the items on that page. &ostsignificantly, if the items remain 8avigable, and there is code elsewhere that attempts to navigateto them, it will succeed, causing the tab page to appear. To completely achieve the effect of hidingor disabling a tab page, you may need to account for the following:

    The G8e#t 8avigation 9temH of the item that immediately preceeds the first item on the tabpage.

    The GPrevious 8avigation 9temH of the item1s5 that immediately follow the last item on thetab page.

    The G8e#t 8avigation @loc>H of the bloc> that immediately preceeds the bloc> thatcontains an item on the tab page.

    The GPrevious 8avigation @loc>H of the bloc>1s5 that immediately follow the bloc> thatcontains an item on the tab page.

    epending on how the form was coded, there may be additional properties or events that need tobe changed.

    &essages are a great debugging toolue to interactions of Personalization and the base code of each form, it is common to createrules that do not seem to be getting applied, or are applied incorrectly. The simplest way to debugis to include &essage actions of type GebugH either immediately before or after the action ofinterest. )et the G)how ebug &essagesH chec>bo# to chec>ed, and then re-run your form= only inthis mode will ebug messages be displayed. 9f you do not see your debug message at all, thenthe most li>ely reasons are:

    The 'ule or $ction is not enabled The (ondition you entered for the 'ule has evaluated to F$!)" The Trigger "vent andDor Trigger ObLect were not what you e#pected The scope of the rule only consists of 'esponsibility, 9ndustry andDor ser, and none is

    true for the current conte#t. $n action is e#ecuting the @uiltin ;'$9)" FO'&T'9"'F$9!'"; . That will abort all

    further processing for that event. The !anguage of the $ction is different than what you are currently running Bou have set (ustom (ode to GOffH or G(ore code onlyH in the pulldown menu.

    9nteraction with the G(lose Other FormsH chec>bo#%hile building personalizations, you may need to e#it and re-open your form in order to see theeffect of your personalizations. %e recommend that you set the G(lose Other FormsH option in theTools menu of the 8avigator to unchec>ed, otherwise the Personalization form itself will closeautomatically before your form runs.

    sing the same value multiple timesOften in code you want to determine a value once, then refer to it multiple times. Bou can do thatwith Form Personalization by using the ;alue; property of a !O@$! variable. Bou can set such avalue using any of the methods mentioned in ;"valuation of )trings;. @y setting that property, theglobal variable will be created at that point in time, and then any future actions can refer to thatvariable. To minimize the ris> of collision with !O@$! variables that the base form may create,name your variable starting with ;CC;.

    Sooming to a form$ common scenerio is to open another function and have that form ?uery a specific row of data

  • 5/20/2018 Formpers Ml Rup4

    12/21

    associated with the source form. For e#ample, consider the sers form which allows entry of'esponsibilities for each user. $ possible zoom would be to carry the current responsibility >ey tothe 'esponsibilities form and have it ?uery that record automatically. )ome strategies toaccomplish this type of functionality are:

    The target function may already accept the value as an input parameter. )imply passingthe parameter name and value as the argument to the Function may accomplish the

    desired result. 9n forms that have Find windows, it may be possible to populate the appropriate field inthe Find window, then issue OA"B1;8"CT@!O(A;5 which should simulate pressingthe Find %indow. Pass the value1s5 between forms by using global variables.

    Bou could modify the "F$!T%/"'" clause of the appropriate bloc>, then ?uery itusing OA"B1;"C"(T" toits original value. Pass the value1s5 between forms by using global variables.

    Put the form into enter-?uery mode using OA"B1;"8T"'ed only from the PersonalizationForm. 9n the Tools pulldown menu, select G$dministrationH. This will allow you to get a list of allfunctions that currently have Personalizations 1'ules5 defined.

  • 5/20/2018 Formpers Ml Rup4

    13/21

    Figure 7: The GFind PersonalizationsH administration window

    For): The filename of a form.

    Fnction:$ uni?ue function name defined for a form. One form can have many different functionsdefined for it.

    9f you press the Find button while both Form 8ame and Function 8ame are empty, all forms thathave any personalizations 1enabled or not5 will be ?ueried. This is particularly useful afterapplying a patch= >nowing which forms the patch affects, you can ?uic>ly detemine if any

    personalizations need to be re-validated.

    2ser Fnction &a)e: $ description of the form function. Bou see this name when assigningfunctions to menus.

    Enabled /les:The number of active rules that a function has defined.

    #oving Personalizations $etween instan%es

    Once you create and test personalizations in your test instance, you can move them to productioninstances. Personalizations are e#tracted by the loader on a per-function basis 1that is, eachloader file will contain all of the personalizations for a single function5. 8ote that upon uploading,all prior personalizations for that function are first deleted, and then the contents of the loader file

    are inserted.

    The loader synta# is as follows:

    ownload:FNDLOAD / 0 Y DOWNLOAD $FND_TOP/patc/!!"/i#port/ar#cus.%ct FND_FO'(_)*+TO(_'*L,+ u&ctio&_&a#e-

    Functionname is a re?uired parameter= if it is not supplied then no personalizations aredownloaded.

  • 5/20/2018 Formpers Ml Rup4

    14/21

    pload:FNDLOAD / 0 Y *PLOAD $FND_TOP/patc/!!"/i#port/ar#cus.%ct

    Relationship to CUSO# li$rary

    Form Personalization allows personalizations that could be made in the ()TO& library, but itdoes not re?uire that you use the Oracle Forms @uilder to edit and compile the ()TO& file.epending on the comple#ity of your personalizations, it may still re?uire a degree of coding s>illcomparable to that needed to use the ()TO& library. $nd the ()TO& library is able tosupport more comple# personalizations because it gives you access to all of the capabilities ofthe P!D)

    @oth Form Personalization and the ()TO& library drive off the e#act same events. The FormPersonalization feature receives and processes them first, then passes them to the ()TO&library, thus you can use both mechanisms simultaneously. 1&ote: )P"(9$!CC and &"8CCevents are not passed to the ()TO& library5.

    @oth features also respond identically to the (ustom (ode events of ;8ormal;, ;Off; and ;(ore(ode Only;.

    9n general, Oracle recommends that you use the Form Personalization feature wheneverpossible, and only use the ()TO& library when significantly more comple# processing isre?uired.

    Relationship to Folders

    Folders allow an end-user to ;customize; a screen by changing the fields and records displayed.For the most part, folder bloc>s are identifiable by an enabled GFolderH menu entry, and an GOpenFolderH icon above the bloc>. 9n a few cases, folder technology may be used by base code todynamically alter a bloc>, but no folder functionality is e#posed to the end user.

    Folder bloc>s are constructed differently than GregularH Forms bloc>s they include an e#tra bloc>that renders the prompts for the fields, and many properties of the bloc> are dynamicallymanaged by the folder code as it receives events. $s a result, when using the FormPersonalization feature on a folder bloc>, you must be aware of certain restrictions:

    The following properties of a folder bloc> can only be set at form startup 1%/"8-8"%-FO'&-98)T$8("5. &ore specifically, they must be set before any folder code attempts toread the values otherwise une#pected results may occur:

    P'O&PTT"CT 9)P!$B" %9T/

    "F$!T%/"'" O'"'@B CPO)9T9O8 and BPO)9T9O8, in a single-row folder bloc>

    The following properties also have special considerations:

    "8$@!": within a folder bloc>, it is invalid to set this property to F$!)". The cursormust be able to navigate to every item in a folder bloc>. (onsider setting $!T"'$@!" toF$!)" instead.

  • 5/20/2018 Formpers Ml Rup4

    15/21

    8"CT 8$9$T9O89T"& and P'"9O)8$9$T9O89T"&: These propertieshave no effect in a Folder bloc>. 9n a single-row folder bloc>, the navigation se?uence iscomputed based on CPO)9T9O8 and BPO)9T9O8. The navigation se?uence of amulti-row folder bloc> cannot be changed.

    rou$leshooting' Support' and Upgrade %onsiderations

    sing the Form Personalization feature to alter Oracle code at runtime may bypass importantvalidation logic and may Leopardize the integrity of your data. Bou should thoroughly test allchanges you ma>e in a Test instance before using it in a production environment.

    @efore contacting Oracle )upport, you should always confirm that your personalizations are notthe source of the problem. Oracle )upport and evelopment cannot provide assistance on howyou can ma>e personalizations to a particular form using this mechanism, nor does Oraclewarrant that any desired personalization can be made with this mechanism.

    Troubleshooting$ny personalization you ma>e may have unintentional conse?uences, to an e#treme ofpreventing a form from running at all. )hould this happen, you can disable all personalizations byinvo>ing the pulldown menu and selecting /elp-Eiagnostics-E(ustom (ode-E Off. This menuentry is secured by the F8/9"9$8O)T9() and 9$8O)T9() profiles. This will allowyou to open the form and invo>e the Personalization screen so you can correct the problem.

    pgrade (onsiderations$ form may change after an upgrade or patch to Oracle $pplications. Bou should test anypersonalization logic that you have defined to confirm that it still operates as intended beforeusing it in a production environment.

    9t is common for obLect names within a form to change after a applying a patch. To assist you withthis, there is a function which will confirm the e#istence of obLects that your personalizationsreference. Bou should perform the following for each form that is changed during a patch and haspersonalizations:

    'un that form. 9f the form fails to run due to personalizations that are now in error, first

    turn (ustom (ode to GOffG then re-run the form. 9nvo>e the Personalization screen from that form 9n the Tools pulldown menu, select Galidate $llH. This will process every rule for that

    function, chec>ing for the validity of references to obLects in the form. Only rules that are"nabled are processed.

    For each 'ule or $ction identified as having an error, you can then ?uic>ly locate that rowand ma>e corrections.

    8ote that this function only chec>s for obLect e#istence= it still may be the case that certainpersonalizations that previously wor>ed no longer do. 8ote that pressing the Galidate $llH buttonwill first create any !O@$! variables referred to in Property settings of either alue or 9nitialalue= this will reduce missing bind variable references to them if the code that creates them hasnot yet run.

  • 5/20/2018 Formpers Ml Rup4

    16/21

    Changes to Form Personalization in (()*)(+ CU(

    The following topics are covered: "valuation of )trings with )"!"(T statements no longer re?uire the G$H alias

    8ew ObLect Type of !O

    8ew &enu "ntries The ability to ;et; a property in an e#pression

    !ocal ariable )upport

    Form !evel )upport for 'ules

    @uiltins that have (hanged

    8ew @uiltins

    Fire in "nter-upcode I;)$T;

    )aturday Qassuming that thesystem is running in "nglishR

    I)"!"(T ;The office is closed on ;meaning fromfndloo>ups where loo>uptype I ;$B8$&"; andloo>upcode I ;)$T;

    The office is closed on )aturdayQassuming that the system isrunning in "nglishR

    8ew ObLect Type of !O

    )imple !O properties can now be modified using Form Personalization, including'OP8$&", /"9/T, T9T!", %9T/, CPO) and BPO). $t this point in time, the property'"(O''OP

  • 5/20/2018 Formpers Ml Rup4

    17/21

    The ability to ;et; a property in an e#pression

    )trings and (onditions can now refer to properties of obLects using a )P"! synta# 1)implestPossible "#pression !anguage5. For e#ample, this enables you to build a (ondition that tests if afield is displayed or not. These e#pressions ta>e the following general format:UQobLectType.obLect8ame.PropertyR

    9nternally, the )P"! e#pression is a cover for Oracle Forms builtins li>e "T9T"&P'OP"'TB,"T@!O(AP'OP"'TB, etc. $dditionally, the )P"! e#pressions support retrieving Profilevalues, &essage ictionary te#t, and !ocal ariables 1described later5.

    $ new window, activated by the V9nsert ;et; "#pressionMV button, has been provided toautomatically construct the e#pression. %hen complete, the e#pression is inserted into the alueor (ondition field from where the window was launched. Bou can manually type the e#pressiontoo= however, we strongly recommend using the window to build it to reduce mista>es.

    For completeness, the )P"! e#pression supports the ;alue; property for an item= however,runtime performance is faster with the :bloc>.field synta#.

    $ll processing drives off the e#istence of the string ;UQ;, so that string is no longer valid in any(ondition or alue e#cept for this purpose. 9f a alue contains a )P"! e#pression, it is processedas if it started with ;I; 1)ee "valuation of )trings, above5.

    )ome e#amples:ype String typed in Personalization form Result at runtime

    alue I;The prompt is:; UQitem.bloc>.field.promptte#tR;, located at:;UQitem.bloc>.field.#posR

    The prompt is: ser 8ame,located at: J. Qassuming thatthe current Prompt of fieldbloc>.field is ;ser 8ame;, andit;s C position is J.R

    (ondition UQitem.bloc>.field.re?uiredR I ;T'"; QTrue or False, depending onthe current 'e?uired property offield bloc>.fieldR

    !ocal ariable )upport

    $ new ObLect Type of ;!ocal ariable; is available on actions of type Property. This is very similarto a lobal variable, e#cept that it creates a variable local to the current form, with a ma#imumlength of 2 bytes 1lobals are limited to J++ bytes5.

    Form !evel )upport for 'ules

    'ules may now be specified as acting either at the Function level 1the default5 or at the Formlevel. 9n this latter case they are applied for all functions that run the form. %hen creating rules atthe Form level, pay close attention to the )e?uence number and how it will blend with other rules

    at the function level for the same form.

    @ecause of this change, the loader can now operate in 0 different modes:

    To download rules for a particular function:FNDLOAD / 0 Y DOWNLOAD $FND_TOP/patc/!!"/i#port/ar#cus.%ct FND_FO'(_)*+TO(_'*L,+ u&ctio&_&a#e-

  • 5/20/2018 Formpers Ml Rup4

    18/21

    Note: t3is st!le is not reco))ended4 as t3e personali5ations t3at affect a particlarfnction can no' be a )i of fnction- and for)-level rles.

    To download rules for a particular form:FNDLOAD / 0 Y DOWNLOAD $FND_TOP/patc/!!"/i#port/ar#cus.%ct FND_FO'(_)*+TO(_'*L,+ or#_&a#e-

    To download all personalizations 1all forms and functions5:FNDLOAD / 0 Y DOWNLOAD $FND_TOP/patc/!!"/i#port/ar#cus.%ct FND_FO'(_)*+TO(_'*L,+

    The pload synta# for all styles is unchanged:FNDLOAD / 0 Y *PLOAD $FND_TOP/patc/!!"/i#port/ar#cus.%ct

    @uiltins that have (hanged

    F8T9!T9").OP"8'! is renamed to G!aunch a '!H and now allows an /T&!

    target window to be set. @y default the target is ;@!$8A;, which will open a new browserwindow. Bou can select from 2 pre-defined targets, or enter your own target name. F8F8(T9O8."C"(T" is renamed to ;!aunch a Function;. The function can be

    selected either by its internal 1developer5 name, or ;friendly; name.

    8ew @uiltins

    G!aunch )') FormH allows the )ubmit (oncurrent 'e?uest form 1)')5 to be run in theconte#t of a specific program. This ta>es a single argument of the program name. 8otethat no additional security is applied to this program name whatever you supply will beavailable to the user, even if a standard invocation of the )') screen does not allowaccess to that program.

    G"#ecute ProcedureH allows a stored procedure to be e#ecuted. Type the procedure name

    and arguments e#actly as you would in P!D)

    "C"(T"T'9"' allows you to e#ecute a trigger within the form. 9t ta>es anargument of the trigger name. This builtin will test formsuccess after completion, and ifthat is False then it will raise formtriggerfailure

    Fire in "nter-

  • 5/20/2018 Formpers Ml Rup4

    19/21

    $dministration %indow

    ue to the ability to define rules at the Form level it is no longer meaningful to ?uerypersonalizations at the Function level, so that field has been removed from the FindPersonalizations window.

    "nhanced ebugging

    ebug &ode now supports J levels. ;)how ebug &essages; will show messages of type ebug.;)tep-@y-)tep; is a new mode that will show messages when each condition is evaluated andeach action is e#ecuted, to help you determine if your rules and actions are being applied ase#pected. ;Off; disables these modes.

    $utomatic defaulting in the $ctions @loc>

    The $ctions bloc> used to automatically default most values from the prior row when you createda new row. 8ow a smaller number of properties is defaulted, in order to reduce confusion. Tocopy all the values from the prior row, use the menu entry "dit E uplicate E 'ecord $bove.

  • 5/20/2018 Formpers Ml Rup4

    20/21

    Changes to Form Personalization in ((i)!/0PF)1 Rollup 2 3Pat%h 422456*7

    The following topics are covered: 8ew Property Type for @loc>s

    8ew @uiltins

    "nhanced $bility to Find ObLects

    8ew Property Type for @loc>s

    For those bloc>s where a W@lind es two arguments, the )nowledge of the structure of the e#isting record group in order to achievesuccess. The structure of the current record group assigned to the !O can only bedetermined by opening the form in Forms @uilder, determining the correct record group,and then loo>ing at the )

    "nhanced ability to find obLects $s the visible te#t for obLects may be identical across multiple windows of the same form,

    it is sometimes difficult to determine e#actly which obLect you wish to personalize. TheW)elect @y Te#tX list now includes the window title in parentheses following the normalobLect te#t.

    Changes to Form Personalization in ((i)!/0PF)1 Rollup 4 3Pat%h 4686*957

    8ew Property Type for @loc>s

    %hen e#porting data from a forms bloc>, only the data that is currently displayed for the bloc> is

    e#ported. 9f you wish to allow e#porting the bloc> data that is on other hidden canvases, as isoften with tab pages, you may now create a form personalization rule to allow e#porting thehidden canvases.

    To create a personalization to allow e#porting hidden canvases, create a new personalization asfollows:

    (ondition Trigger "vent: %/"8-8"%-FO'&-98)T$8(" level. Processing &ode: 8ot in "nter-

  • 5/20/2018 Formpers Ml Rup4

    21/21

    )et the appropriate (onte#t !evel.$ctions Type: Property ObLect Type: @loc> Target ObLect: Ythe bloc> for the e#port personalizationE Property 8ame: "CPO'T/9"8($8$)")

    alue: T'"