This content has been marked as final. Show 10 replies
hi1 person found this helpful
If you want to suppress error messages then you have to set a system variable :system.message_level. I use to set this system variable in a Pre-Form trigger. There is no restriction in using this variable. You can set it to difference values in each Pre-Block triggers if you want.
SYSTEM.MESSAGE_LEVEL stores one of the following message severity levels: 0, 5, 10, 15, 20, or 25. The default value is 0. Form Builder does not suppress prompts or vital error messages, no matter what severity level you select.
Assume that you want Form Builder to display only the most severe messages (level 25). The following Pre-Form trigger suppresses all messages at levels 20 and below.
:System.Message_Level := '20';
If you want to display your own message then it can be done in On-Message and On-Error triggers.
One can either set the message level using the system variable SYSTEM.MESSAGE_LEVEL or trap errors using the ON-ERROR or ON-MESSAGE triggers. MESSAGE_LEVEL: Set to 0, 5, 10, 15, 20, 25 to suppress all messages with severity below this level. The default level is 0. Messages with a level higher than 25 cannot be suppressed. See the "Forms Error Messages Manual" for more details about the various MESSAGE_LEVEL's: 0 - Default value. All types of messages from the other levels of severity. 5 - Reaffirms an obvious condition. 10 - Indicates that the operator has made a procedural mistake. 15 - Declares that the operator is attempting to perform a function for which the form is not designed. 20 - Indicates a condition where the operator cannot continue an intended action due to a problem with a trigger or another outstanding condition. 25 - Indicates a condition that could result in the form performing incorrectly.
25 - Indicates a message severity level that you cannot suppress via the SYSTEM.MESSAGE_LEVEL system variable.
:SYSTEM.MESSAGE_LEVEL := '25'; COMMIT; :SYSTEM.MESSAGE_LEVEL := '0';
/* For suppressing FRM-40100: At first record. */ :SYSTEM.MESSAGE_LEVEL := '5'; FIRST_RECORD; :SYSTEM.MESSAGE_LEVEL := '0';
/* For suppressing FRM-40350: Query caused no records to be retrieved. */ :SYSTEM.MESSAGE_LEVEL := '5'; EXECUTE_QUERY; :SYSTEM.MESSAGE_LEVEL := '0';
Hi,1 person found this helpful
As mentioned there, every message/error/warning that are displayed in forms are of a pre-defined message level, depending on the severity of the message/warning/error.
So, during some operation, if you want to display some message/warning/error that is of some level and ignore the rest, you will be setting :SYSTEM.MESSAGE_LEVEL.
For ex, if you set the :SYSTEM.MESSAGE_LEVEL to 25, the messages/warnings/errors that or having the level below 25 would be suppressed and only the messages that are having message level >=25 would be displayed.
Edit : In brief, for your question, message level is the pre-defined level for any FRM message and actual level is what you set with :SYSTEM.MESSAGE_LEVEL.
Thax for the reply.
I agreed with what you mentioned. But I need to know; Are there two different values called message-level and actual level (in system setting)
Your reply cleared me to some extent.
Further I need to know, to decide which errors should be suppressed and which are not, first need to get the message level values of all messages (that means there can be different system_level for each messages) and then only have to decide on the value that should assign for
:SYSTEM_LEVEL := ??
SYSTEM.MESSAGE_LEVEL uses only ranges of severity from 5 to 5 (5-10-15-20-25). You need to know what range to display.1 person found this helpful
If want to suppress only 10 and 15, How should be set the message_level value?
How to extract the pop up messages values?
During a Runform session, Oracle Forms suppresses all messages with a severity level that is the same or lower (less severe) than the indicated severity level.
You cannot suppress "only" messages from range 10 to 15. You can suppress any messages that severity is lower or equal to the number you put in the MESSAGE_LEVEL variable.
:SYSTEM.MESSAGE_LEVEL := 15 will suppress any message that severity code is 15 or lower.
As per the previous post.....
/* For suppressing FRM-40350: Query caused no records to be retrieved. */
:SYSTEM.MESSAGE_LEVEL := '5';
:SYSTEM.MESSAGE_LEVEL := '0';
Why it set to --> 0 after suppress
How to extract the message_level values before suppress?
Is this possible
This code is used to suppress the message "x records saved..." or "nothing to save..." message at commit time. The value is set back to 0 after to ensure every messages will be displayed.1 person found this helpful
Thax a lot guys :)