メッセージ・フィルター操作プロシージャーを使うと、メッセージを抑止したり、メッセージの重大度を変更したりすることができます。 どのメッセージの重大度も高くすることはできますが、 低くすることができるのは、ERROR (重大度コード 8) メッセージ または、WARNING (重大度コード 4) メッセージだけです。
プロシージャー特有の制御ブロックには、メッセージについての情報が含まれています。 これは、特定のメッセージの取り扱い方法を示す情報をコンパイラーに渡すために使われます。
プロシージャー特有のメッセージ・フィルター制御ブロックの例を次に示します。
Dcl 1 Uex_MFX native based( null() ),
2 Uex_MFX_Length fixed bin(31),
2 Uex_MFX_Facility_Id char(3), /* of component writing
message */
2 * char(1),
2 Uex_MFX_Message_no fixed bin(31),
2 Uex_MFX_Severity fixed bin(15),
2 Uex_MFX_New_Severity fixed bin(15), /* set by exit proc */
2 Uex_MFX_Inserts fixed bin(15),
2 Uex_MFX_Inserts_Data( 6 refer(Uex_MFX_Inserts) ),
3 Uex_MFX_Ins_Type fixed bin(7),
3 Uex_MFX_Ins_Type_Data union unaligned,
4 * char(8),
4 Uex_MFX_Ins_Bin8 fixed bin(63),
4 Uex_MFX_Ins_Bin fixed bin(31),
4 Uex_MFX_Ins_Str,
5 Uex_MFX_Ins_Str_Len fixed bin(15),
5 Uex_MFX_Ins_Str_Addr pointer,
4 Uex_MFX_Ins_Series,
5 Uex_MFX_Ins_Series_Sep char(1),
5 Uex_MFX_Ins_Series_Addr pointer;
データ入力フィールド
メッセージ・フィルター操作プロシージャーの完了時に、戻りコード/理由コードを次のいずれかに設定してください。