Re: Forms Trigger: firing order question

From: Ray Tomilson <rfjam4_at_hotmail.com>
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

Original text of this message