目的
根據函數回覆碼,指定顯示的訊息及採行的建議動作。
在 MESSAGE 區塊中定義一組回覆碼、對應訊息、以及建議動作。函數呼叫完成後, Net.Data 比較它的回覆碼與 MESSAGE 區塊中定義的回覆碼。如果函數的回覆碼符合 MESSAGE 區塊中定義的回覆碼, Net.Data 立即顯示訊息,並評估動作作,判斷應該繼續處理或跳出 Net.Data 巨集。
MESSAGE 區塊可以是整體範圍,也可以是區域單一 FUNCTION 區塊。 巨集最外層次定義的 MESSAGE 巨集,作為整體範圍。如果定義多個整體 MESSAGE 區塊, 僅最後一個區塊有效。如果 MESSAGE 區塊定義在 FUNCTION 區域中, 則該區域在所屬 FUNCTION 區塊的區域範圍中。有關回覆碼處理程序規則, 請參閱 Net.Data 管理程式設計指南 中的 MESSEAGE 部分。
語法
>>-%MESSAGE--{--------------------------------------------------> .------------------------------------------------------------------------. V | >--------+------------------------------------------------------------------+--+> '--+-| 回覆碼規格 |--+--:---| 訊息文字規格 |----+---------------+--' '-| SQLSTATE |----' '-| 動作規格 |--' >----%--}------------------------------------------------------>< 回覆碼規格 |---+-DEFAULT----------+----------------------------------------| +-+DEFAULT---------+ +- -DEFAULT--------+ +-+----+---訊息碼--+ | +- --+ | | '-+--' | '-include 陳述式---' SQLSTATE |---SQLSTATE--:------state_id-----------------------------------| 訊息文字規格 .----------------. V | |----+-"-----+----------+--+---"---+----------------------------| | +-字串-----+ | | +-變數參照-+ | | +-函數呼叫-+ | | '-換行-----' | | .----------------. | | V | | +-{-----+----------+--+---%}--+ | +-字串-----+ | | +-變數參照-+ | | '-函數呼叫-' | '-include 陳述式--------------' 動作規格 .-EXIT-----. |---+-:--+----------+-+-----------------------------------------| | '-CONTINUE-' | '-include 陳述式--'
值
上下文
在這些上下文中可找到 MESSAGE 區塊:
限制
MESSAGE 區塊可以包含這些元素:
就 OS/390 而言︰無法從 SQL 函數內呼叫 SQL 函數。
範例
範例 1:區域 MESSAGE 區塊
%{ FUNCTION 區塊中的區域訊息區塊 %} %FUNCTION(DTW_REXX) my_function() { %EXEC { my_command.cmd %} %MESSAGE{ -601: {<h3>表格已建立,請返回並輸入您的名稱。</h3> <p><a href="input">傳回</a> %} default: "<h3>無法繼續,因為錯誤 $(RETURN_CODE)</h3>"%} :結束 %}
範例 2:整體 MESSAGE 區塊
%{ 整體訊息區塊 %} %MESSAGE { -100 : "回覆碼 -100 的訊息" : exit 100 : "回覆碼 100 訊息" : continue +default : { 此為超出一行的長訊息。 您可以在此訊息中使用 HTML 標籤,包括 鏈結與套表。%} : continue %} %{ FUNCTION 區塊中的區域訊息區塊 %} %FUNCTION(DTW_REXX) my_function() { %EXEC { my_command.cmd %} %MESSAGE { -100 : "回覆碼 -100 的訊息" : exit 100 : "回覆碼 100 訊息" : continue -default : { 此為超出一行的長訊息。 您可以在此訊息中使用 HTML 標籤,包括 鏈結與套表。%} : exit %}
範例 3:包含 INCLUDE 陳述式的 MESSAGE 區塊
%message { %include "rc1000.msg" %include "rc2000.msg" %include "defaults.msg" %}