Timer Trick For Restricted Built-ins
In the name of Allah, Most Gracious, Most Merciful
Praise be to Allah, blessing and peace be upon our prophet Mohammed, his family and his companions. After that,
Oracle forms has its own restricted built-in procedure for navigation, validation and database transactions processes.
"There Is No Two Drivers For One Car"
In regards to Oracle Forms navigational triggers, this example is true. It does not allow the application user to externally navigate to a block in a navigational trigger.
The reason for this restriction we can simply imagine.
Let's assume the Oracle Form is the car.
Let's assume the default internal Oracle Form's navigation during processing; is the car driver number 1
Let's assume the user navigation (with the mouse or the keyboard);
is the car driver number 2
The Question is ... does the car allow two car drivers at the same time?
The Answer is No.
The same logic applies to Oracle Forms.
The same logic applies to Oracle Forms.
Oracle forms allow the user to navigate into its blocks and items
If And Only If
the user's navigation does not conflict with its default internal navigation processing.
What does this mean in Oracle Forms ...?
It means that these navigational triggers fire in response to navigational events.
For instance, when the operator clicks on a text item in another block, navigational events occur as Oracle Forms moves the cursor focus from the current item to the target item.
In concurrence, these navigational triggers also fire in response to Oracle Forms internal navigation during its default processing.
In concurrence, these navigational triggers also fire in response to Oracle Forms internal navigation during its default processing.
What is a timer ?
A timer is an "internal time clock" that you pro-grammatically create to perform an action each time the timer expires.
What is the timer's usage ?
A Timer Usages:
- An automatic forms data refresh.
- An automatic forms commit.
- Animate forms interface e.g.
Ø Displaying an image sequence for forms presentation.
Ø Creating a digital clock.
Ø Displaying a marquee text, etc.
Problem Definition:
For such business requirements, at the moment the forms is pre-loading, the user needs the cursor focus to go to a specific block. Now, the forms rejects this navigation with the following error
" FRM-40737: "Illegal restricted procedure GO_BLOCK in PRE-FORM trigger
Task Solution:
The timer's trick is the main solution you can ever use with any illegal restricted procedure. Timers has the following steps you should follow:
Create a Timer:
- Declare a variable of timer data type.
- Initialize a variable with one second number data type.
- Use a CREATE_TIMER built-in with the timer's name, interval and it's status whether it repeats on expiration or non-repeated; execute once only in PRE-FORM trigger Form-Level.
- Assign the timer's creation to that variable of timer data type with the following code :
DECLARE
timer_id Timer;
one_sec NUMBER (5) := 1000; -- in milliseconds
BEGIN
timer_id := CREATE_TIMER ('MYTIMER', one_sec, REPEAT);
END;
Delete a Timer:
A Timer must has an end you specify to execute the restricted built-in sub-program within a specific trigger you create called When-Timer-Expired trigger Form-Level.
In other words, between the timer's creation and its expiration a pre-determined tiny interval you specify on timer's creation, within this interval you can execute the restricted built-in sub-program with the following code in When-Timer-Expired Trigger Form-Level :
DECLAREtm_name VARCHAR2 (40);timer_id TIMER;BEGIN-- Look for the timer existence.
timer_id := FIND_TIMER ('MY_TIMER');-- If timer is createdIF NOT ID_NULL (timer_id) THEN-- Get the timer's nameIF GET_APPLICATION_PROPERTY (TIMER_NAME) = 'MY_TIMER' THEN-- Use any illegal built-in to execute it in one second.GO_BLOCK ('DEPARTMENTS');--After 1 second no need for the timer you have to cancel it.DELETE_TIMER ('MY_TIMER');END IF;END IF;END;
Now, you can navigate to a block using a timer's trick in a PRE-FORM trigger and over comes forms default behavior
The same logic used for any illegal restricted procedure. It all depends upon your business application logic for which you are using the timer
The same logic used for any illegal restricted procedure. It all depends upon your business application logic for which you are using the timer
Learn more about:
Hope this helps...
My success only comes from Allah, pls. note your comments and suggestions are great help for me in progress thanks in advance.
No comments :
Post a Comment