This document provides a summary of form triggers, query processing, validation, and navigation in Oracle Forms. It includes an overview of trigger types and scopes, the query processing lifecycle, validation status and checks, navigation properties and triggers, and useful system variables, built-ins, and commands for debugging.
This document provides a summary of form triggers, query processing, validation, and navigation in Oracle Forms. It includes an overview of trigger types and scopes, the query processing lifecycle, validation status and checks, navigation properties and triggers, and useful system variables, built-ins, and commands for debugging.
Trigger Scope RAISE DEBUG.BREAK 1. Fire Pre-Query trigger NEW CHANGED VALID Form Block Item 2. Construct Select Statment Item Interaction Triggers 3. Perform Query Navigation Unit Trigger Type When-Button-Pressed 4. Fetch a row in to a new record Outside the form Key- On- Pre- Post- When- When-Checkbo-Changed 5. Mark record as valid Form Block Record Item When-Radio-Changed 6. Fire Post-Query trigger Trigger Code When-Image-Pressed 7. Validate any record changes Navigation Properties -BEGIN and END keywords require if When-Image-Activated 8. Repeat step 4 for any remaining Form Mouse naivation limit DECLARE statement is included. When-List-Changed records of this query First navigation data block -INSERT, UPDATE, and DELETE statement When-List-Activated Block Navigation Style must be placed only in transactional Query Triggers Previous navigation data block triggers. Interface Trigger Pre-Query Next navigation data block -COMMIT, ROLLBACK, and SAVEPOINT cannot When-Tab-PageChanged Post-Query Item Enabled be included directly as SQL trigger When-Timer-Expired Keyboard navigable statements. When-Window-Activated Useful System Variables Mouse navigate When-Window-Closed :SYSTEM.MODE Previous navigation item Execution Hierarchy Property When-Window-Deactivated -NORMAL Next naviation item Override (default) When-Window-Resized -ENTER-QUERY After -QUERY Navigation Triggers Before Useful Interaction Built-ins :SYSTEM.LAST_QUERY Pre- and Post- CHECKBOX_CHECK(item) -Fire during navigation Trigger Properties ADD_LIST_ELEMENT Useful Built-ins to obtain query infor- -Does not fire if validation unit is Name DELETE_ELEMENT mation at run time higher than trigger object Fire in Enter Query Mode SHOW_LOV(‘lov_name’, x, y) GET_BLOCK_PROPERTY -Allow restricted built-ins Execution Hierarchy LIST_VALUES SET_BLOCK_PROPERTY -Handle failure by returing to initial READ_IMAGE_FILE(filename, filetype, GET_ITEM_PROPERTY object Form Builder Variables item_name) SET_ITEM_PROPERTY Item :block_name.item_name WRITE_IMAGE_FILE(filename, filetype, When-New-”object”-Instance Global :GLOBAL.variable_name item_name, compression_quality, EXECUTE_QUERY -Fire after naviagation System :SYSTEM.vairable_name image_depth) ENTER_QUERY -Does fire when validation unit is Parameter :PARAMETER.name higher than the trigger object Message-Handling Triggers Validation Unit Property -Allow restricted and unrestricted Built-ins for Global Variables On-Error -Item -Record -Block -Form built-ins Initializing On-Message -Are not affect by failure DEFAULT_VALUE(‘initial_value’,’global_name’) Standard Validation Checks for Text Removing Useful System Variables and Built-ins Items Pre-Triggers Post-Triggers ERASE(‘global_name’) :SYSTEM.MESSAGE_LEVEL -Format mask Pre-Form Post-Form :SYSTEM.SUPPRES_WORKING -Required Pre-Block Post-Block Unrestricted Built-ins MESSAGE(‘string’) -Data type Pre-Record Post-Record -do not effect logical or physical SHOW_ALERT(‘alert_name’) -Lowest-Highest Allowed Value Pre-Text-Item Post-Text-Item navigation SET_ALERT_PROPERTY -Validate from List -can be called from any trigger, or from SET_ALERT_BUTTON_PROPERTY any subprogram Validation Triggers When-New-”object”-Instance FORM_SUCCESS When-Validate-Item When-New-Form-Instance Restricted Built-ins FORM_FAILURE When-Validate-Record When-New-Block-Instance -affect navigation in the form FORM_FATAL When-New-Record-Instance -can call only in certain triggers Built-ins for Validation When-New-Item-Instance ERROR_CODE CLEAR_BLOCK Useful Commands in the Debugger ERROR_TEXT CLEAR_FORM Built-ins for Navigation .STEP INTO ERROR_TYPE EXIT_FORM(commit_mode) GO_FORM .STEP OVER ENTER GO_BLOCK NEXT_BLOCK PREVIOUS_BLOCK .STEP OUT MESSAGE_CODE SET_FORM_PROPERTY GO_ITEM NEXT_ITEM PREVIOS_ITEM .GO MESSAGE_TEXT -VALIDATEION GO_RECORD NEXT_RECORD PREVIOUS_RECORD .RESET MESSAGE_TYPE -VALIDATION_UNIT NEXT_SET .SHOW LOCALS ITEM_IS_VALID UP DOWN DEBUG.INTERPRET(string) Exception VALIDATE(validation_unit) SCROLL_UP SCROLL_DOWN DEBUG.GETx(varname) FORM_TRIGGER_FAILURE SET_FORM_PROPERTY Built-ins for Navigation (cont’) :SYSTEM.TRIGGER_ITEM using an .id extension or parameter lists GET_FORM_PROPERTY 2. Assign the number to a global vari- -Code is shared as required, through SET_BLOCK_PROPERTY Current Status of Form able libraries and the database GET_BLOCK_PROPERTY :SYSTEM.RECORD_STATUS 3. Convert the variable back to the SET_RECORD_PROPERTY :SYSTEM.BLOCK_STATUS object data type. Built-ins for starting Another Form GET_RECORD_PROPERTY :SYSTEM.ITEM_STATUS OPEN_FORM SET_ITEM_PROPERTY Referencing Objects Indirectly CALL_FORM GET_ITEM_PROPERTY GET_”Object”_Property NAME_IN returns the contents of NEW_FORM GET_APPLICATION_PROPERTY an indicated variable. Transaction processing GET_FORM_PROPERTY OPEN_FORM built-ins Post Phase GET_BLOCK_PROPERTY COPY assigns an indicated OPEN_FORM(form_name, activate_mode, -Writes record changes to base tables GET_RELATION_PROPERTY value to an indicated data_mode,session_mode, parameterlist) ; -Fires transactional triggers GET_ITEM_PROPERTY variable or item. Commit Phase GET_ITEM_INSTANCE_PROPERTY Activate_Mode ACTIVATE, NO_ACTIVATE -Performs database commit GET_LOV_PROPERTY :A := ’aaa’ Session_Mode NO_SESSION, SESSION GET_RADIO_BUTTON_PROPERTY :B := ’A’ Data_Mode NO_SHARE_LIBRARY_DATA The Commit Sequence of Events GET_MENU_ITEM_PROPERTY NAME_IN(:B) ‘aaa’ SHARE_LIBRARY_DATA 1. Validate Form GET_CANVAS_PROPERTY NAME_IN(‘B’) ‘A’ 2. Process savepoint. GET_TAB_PAGE_PROPERTY NAME_IN(‘A’) ‘aaa’ Built-in for closing a Form 3. Fire the Pre-Commmit trigger GET_VIEW_PROPERTY EXIT_FORM(commit_mode) ; 4. Validate the block GET_WINDOW_PROPERTY COPY(‘bbb’,:B) :A=’bbb’ 5. Fire Tranasctional triggers for COPY(‘bbb’,’B’) :B=’bbb’ commit_mode ASK_COMMIT deleted, inserted , updated records SET_”Object”_Property COPY(‘bbb’,’A’) :A=’bbb’ DO_COMMIT 6. Fire the Post-Forms-Commit trigger SET_APPLICATION_PROPERTY COPY(‘bbb’,NAME_IN(‘B’) :A=’bbb’ NO_COMMIT 7. If Commit operation, issue SQL-COMMIT SET_FORM_PROPERTY NO_VALIDATE 8. Fire the Post-Database-Commit trigger SET_BLOCK_PROPERTY Property Class SET_RELATION_PROPERTY -A object contains a list of properties Other Useful Triggers Commit Triggers SET_ITEM_PROPERTY and thier settings. Parent form Pre-Commit SET_ITEM_INSTANCE_PROPERTY -When-Button-Pressed Pre-Delete On-Delete Post-Delete SET_LOV_PROPERTY Obejct Group -When-Validate-Item Pre-Insert On-Insert Post-Insert SET_RADIO_BUTTON_PROPERTY -A logical container for a set of Form -When-New-Record-Instance Pre-Update On-Update Post-Update SET_MENU_ITEM_PROPERTY Builder objects. Post-Forms-Commit SET_CANVAS_PROPERTY Opened form Post-Database-Commit SET_TAB_PAGE_PROPERTY Object Library -When-New-Form-Instance SET_VIEW_PROPERTY -A convenient container of objects for -Pre-Query Commit Status SET_WINDOW_PROPERTY reuse -When-Create-Record :SYSTEM.FORM_STATUS -can contain simple objects, property NEW QUERY CHANGED FIND Built-ins classes, object groups, and program :SYSTEM.BLOCK_STATUS FIND_ALERT ALERT units. NEW QUERY CHANGED FIND_BLOCK BLOCK :SYSTEM.RECORD_STATUS FIND_CANVAS CANVAS SmartClass NEW INSERT QUERY CHANGED FIND_EDITOR EDITOR -An object in an object library that is FIND_FORM FORM frequenctly used as a class Implementing Array DML FIND_LOV LOV 1. Enable the Array Processing Option FIND_ITEM ITEM PL/SQL Library 2. Set the DML Array Size >1 FIND_RELATION RELATION -A collection of PL/SQL program units, 3. Specify block primary keys FIND_VIEW VIEW including procedures, functions, and FIND_WINDOW WINDOW packages. Writing Flexible Code Current Input Focus Using Object IDs Multiple Form Applications :SYSTEM.CURSOR_BLOCK 1. Declare the same type of variable Behavior: :SYSTEM.CURSOR_RECORD 2. Use FIND built-in to assign the ID of -Flexible navigation between windows :SYSTEM.CURSOR_ITEM the object. -Single or multiple database connections :SYSTEM.CURSOR_VALUE 3. Use the variable for later reference -Transaction may span of opening fors, starting with current form Trigger Focus Using Object IDs Outside the initial PL/ :SYSTEM.TRIGGER_BLOCK SQL Block Links: :SYSTEM.TRIGGER_RECORD 1.Convert the ID to a numeric format -Data is exchanged by global variables Last modified Feb 12,2002