4 Replies Latest reply on Jun 25, 2012 5:51 PM by user346369

    :SYSTEM.message_level doesn' suppress error message

    863006
      Hi all,
      I'm using Oracle Forms Builder 10gR2. In a piece of logic i'd like to raise form_trigger_failure with a custom error message. Everything works fine - the message appears but after it Oracle error message pop up even :SYSTEM.message_level was set to 25.

      Any ideas how to suppress that message?


      Here is a piece of code:
      if :XXBG_CE_STATEMENT_LINES_NEW.BENEFPERSNAME1 is null or 
                                   then st.alert ('error message!');
                                   :SYSTEM.message_level := 25;
                             RAISE form_trigger_failure;
                        end if;     
      FRM-40734: Internal Error: PL/SQL error occurred.
      Thanks in advance,
      Bahchevanov.
        • 1. Re: :SYSTEM.message_level doesn' suppress error message
          HamidHelal
          hi, bahchevanov
          Any ideas how to suppress that message?
          FRM-40734: Internal Error: PL/SQL error occurred.
          Form has some error which message level is >25 and you cannot suppress this message.
          I search for it at forms > helps >Online Help and get this
          FRM-99999: Error occurred. 
          Cause:  A generic error occurred; the error is possibly documented in the release notes file. Action:  See the release notes file or go to http://otn.oracle.com/products/forms/pdf/forms9idiagnostics.pdf for additional information on using diagnostic tools for troubleshooting Oracle Forms and your applications. See also Also see http://www.oracle.com/technology/products/forms/pdf/10g/troubleshooting_fls.pdf. 
          Hope this helps
          1 person found this helpful
          • 2. Re: :SYSTEM.message_level doesn' suppress error message
            863006
            Hi Hamid,
            Thanks for reply. I just solved the issue... I put a logic in the ON-ERROR trigger on form level where you can ignore that message.
            DECLARE
               lv_errcod   NUMBER        := ERROR_CODE;
               lv_errtyp   VARCHAR2 (3)  := ERROR_TYPE;
               lv_errtxt   VARCHAR2 (80) := ERROR_TEXT;
            BEGIN
               IF (lv_errcod = 41058)
               THEN
                  NULL; 
               ELSIF (lv_errcod = 40741)
               THEN
                  NULL; 
               ELSIF (lv_errcod = 40405)
               THEN
                  NULL;  
               ELSIF (lv_errcod = 40406)
               THEN
                  NULL; 
               ELSIF (lv_errcod = -1)
               THEN
                  NULL; 
               ELSIF (lv_errcod = 40734)
               THEN
                  NULL; 
               ELSE
                  st.alert  (lv_errtyp || '-' || TO_CHAR (lv_errcod) || ': ' || lv_errtxt);
                  RAISE form_trigger_failure;
               END IF;
            END;
            BR,
            Bahchevanov.
            • 3. Re: :SYSTEM.message_level doesn' suppress error message
              CraigB
              Bahchevanov,
              Changing "Message_Level" to 25 only supresses errors with a error level of 0 to 25. If the error level is higher than 25, then the message will not be supressed. According to Forms Help, the FRM-40734 error level is ">25" (greater than 25) so this error will not be supressed. You will have to figure out why your code is generating an interal PL/SQL Error or trap this error in your ON-ERROR trigger.

              Hope this helps,
              Craig B-)

              If someone's response is helpful or correct, please mark it accordingly.
              1 person found this helpful
              • 4. Re: :SYSTEM.message_level doesn' suppress error message
                user346369
                bahchevanov wrote:

                Any ideas how to suppress that message?
                FRM-40734: Internal Error: PL/SQL error occurred.
                Why would you EVER want to suppress that sort of error??? You have a problem in your form, and you need to fix it.

                Stop trying to hide the problem, and instead, fix the root cause.
                1 person found this helpful