Re: Forms Trigger: firing order question
Date: 7 May 2003 13:52:12 -0700
Message-ID: <40b87de9.0305071252.301f8497_at_posting.google.com>
"Jan Gelbrich" <j_gelbrich_at_westfalen-blatt.de> wrote in message news:<b9b5u0$h28nc$1_at_ID-152732.news.dfncis.de>...
> Hello, NG
>
> Which trigger of the following two fires first when combined ? Or is it
> non-deterministic (worst case) ?
> 1. When-Tab-Page-Changed (calling PU_Check_Many_Things, raises
> form_trigger_failure eventually and if, then go back to the prev tab)
> 2. When-New-Block-Instance on the new tab (calling another PU to
> show lookup data for the new tab page)
>
> I have 2 tab pages, each tab references one database block. It is an
> MD-Form.
>
> The problem is: When the IF-rules inside of PU_Check_Many_Things are not
> met, it raises form_trigger_failure - so far ok, I can see my messages
> indicating that.
> But the form does *not stop executions* at that point, it keeps the focus on
> the new tab showing lookup data, as if
> form_trigger_failure is being ignored :( ... and Set_Canvas_Property(
> 'CAN_MAIN', TOPMOST_TAB_PAGE, 'PERSON' );
> does not help to bring me back to the previous tab - seems also been
> ignored.
>
> So I think it maybe the firing order of the triggers. I went through some
> manuals and books, even through some flow
> charts, but I found nothing on this ... so far I only know about this one
> trigger firing at tab changes.
>
> BTW: it is still Forms 5 ... any tips are greatfully appreciated.
>
> Thank You in advance, Jan
I suggest you to run your form from command line using all your
required parameters and at the end add this extra one
debug_messages=YES
This gives the order of triggers getting fired.
example like
f60runm form_name userid/password_at_db debug_messages=YES
[f60runm for UNIX and I believe it is ifrun60 for windows.]
Second suggestion is that in your trigger block--where you think that raise form_trigger_failure is not working--add the exception for raise form_trigger_failure. Seems unnecessary but worked for us.
Declare
res boolean;
Begin
res := my_code_goes_here; if not res raise form_trigger_failure; end if;
Exception
when form_trigger_failure then
raise form_trigger_failure;
when others then
raise form_trigger_failure;
End;
Good luck. Received on Wed May 07 2003 - 22:52:12 CEST