メッセージ記述追加 (ADDMSGD)
| 実行可能場所: すべての環境 (*ALL) スレッド・セーフ: はい |
パラメーター 例 エラー・メッセージ |
メッセージ記述追加(ADDMSGD)コマンドは,メッセージを記述し,後から使用するためにメッセージ・ファイルに記憶します。メッセージ記述は,ファイルが削除されるか,メッセージ記述除去(RMVMSGD)コマンドを使用してファイルから除去されるまで,メッセージ・ファイルの中に残っています。メッセージ・テキストまたは重大度コードなどのようなメッセージ記述の属性をどれか変更するには,メッセージ記述変更(CHGMSGD)コマンドを使用してください。
注: 1つまたは一群のメッセージを印刷する方法に関する説明は,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「システム操作の基本」カテゴリーのメッセージの処理というタイトルのセクションにあります。
置換変数は,第1レベル・メッセージ・テキストと第2レベル・メッセージ・テキストの両方に組み込むことができます。後から,メッセージ検索(RTVMSG),ユーザー・メッセージ送信(SNDUSRMSG),およびプログラム・メッセージ送信(SNDPGMMSG)コマンドに指定されたメッセージ・データ・フィールドで置き換えることができます。
注: 定義中のメッセージのタイプは,ADDMSGDコマンドには指定されません。タイプは,そのメッセージを実際に送るコマンドに指定されます。
メッセージの第2レベル・テキストが512桁を超えている場合には,そのテキストはIBM Iプロンプターの制限により収まりきりません。この場合には,そのコマンドをコマンド入力パネルまたはCLプログラムで入力してください。
制約事項:
- メッセージ記述をメッセージ・ファイルに追加するには,そのメッセージ・ファイルに対する使用(*USE)および追加(*ADD)権限が必要です。
| 上 |
パラメーター
| キーワード | 記述 | 選択項目 | ノーツ |
|---|---|---|---|
| MSGID | メッセージID | 名前 | 必須, 定位置 1 |
| MSGF | メッセージ・ファイル | 修飾オブジェクト名 | 必須, 定位置 2 |
| 修飾子 1: メッセージ・ファイル | 名前 | ||
| 修飾子 2: ライブラリー | 名前, *LIBL, *CURLIB | ||
| MSG | 第1 レベル・メッセージ・テキスト | 文字値 | 必須, 定位置 3 |
| SECLVL | 第2 レベル・メッセージ・テキスト | 文字値, *NONE | オプショナル, 定位置 4 |
| SEV | 重大度コード | 0-99, 00 | オプショナル, 定位置 5 |
| FMT | メッセージ・データ・フィールド形式 | 単一値: *NONE その他の値 (最大 99 回の繰り返し): 要素リスト |
オプショナル |
| 要素 1: データ・タイプ | *QTDCHAR, *CHAR, *HEX, *SPP, *DEC, *BIN, *UBIN, *CCHAR, *UTC, *UTCD, *UTCT, *DTS, *SYP, *ITV | ||
| 要素 2: 長さ | 整数, *VARY | ||
| 要素 3: *VARYバイト数か小数部分の桁数 | 整数, 0 | ||
| TYPE | 応答タイプ | *CHAR, *DEC, *ALPHA, *NAME, *NONE | オプショナル |
| LEN | 最大応答の長さ | 単一値: *TYPE, *NONE その他の値: 要素リスト |
オプショナル |
| 要素 1: 長さ | 整数 | ||
| 要素 2: 小数点以下の桁数 | 整数 | ||
| VALUES | 有効な応答値 | 単一値: *NONE その他の値 (最大 20 回の繰り返し): 文字値 |
オプショナル |
| SPCVAL | 特殊応答値 | 単一値: *NONE その他の値 (最大 20 回の繰り返し): 要素リスト |
オプショナル |
| 要素 1: 元の開始値 | 文字値 | ||
| 要素 2: 置き換え終了値 | 文字値 | ||
| RANGE | 応答値の範囲 | 単一値: *NONE その他の値: 要素リスト |
オプショナル |
| 要素 1: 下限値 | 文字値 | ||
| 要素 2: 上限値 | 文字値 | ||
| REL | 有効な応答の関係 | 単一値: *NONE その他の値: 要素リスト |
オプショナル |
| 要素 1: 比較演算子 | *EQ, *LE, *GE, *GT, *LT, *NE, *NL, *NG | ||
| 要素 2: 値 | 文字値 | ||
| DFT | 省略時応答値 | 文字値, *NONE | オプショナル |
| DFTPGM | 呼び出す省略時プログラム | 単一値: *NONE その他の値: 修飾オブジェクト名 |
オプショナル |
| 修飾子 1: 呼び出す省略時プログラム | 名前 | ||
| 修飾子 2: ライブラリー | 名前, *LIBL, *CURLIB | ||
| DMPLST | ダンプするデータ | 単一値: *NONE その他の値 (最大 102 回の繰り返し): 1-99, *JOB, *JOBINT, *JOBDMP |
オプショナル |
| LVL | メッセージのレベル | 要素リスト | オプショナル |
| 要素 1: 作成日 | 日付, *CURRENT | ||
| 要素 2: レベル番号 | 1-99, 1 | ||
| ALROPT | 警報オプション | 要素リスト | オプショナル |
| 要素 1: 警報タイプ | *IMMED, *DEFER, *UNATTEND, *NO | ||
| 要素 2: 資源名変数 | 1-99, *NONE | ||
| LOGPRB | 問題ログ | *NO, *YES | オプショナル |
| CCSID | コード化文字セットID | 1-65535, *JOB, *HEX | オプショナル |
| 上 |
メッセージID (MSGID)
メッセージがメッセージ・ファイルに記憶される場合のメッセージIDを指定します。メッセージはすべてIDを持たなければならず,メッセージ・ファイルの中のIDはすべて固有でなければなりません。
これは必須パラメーターです。
メッセージIDは,長さが7文字で,次の形式でなければなりません。PPPNNNN
最初の3文字は,1桁の英字とその後に続く2桁の英数字(英字または数字)文字から構成されるコードでなければなりません。最後の4文字は,0から9の範囲の数字とAからFの範囲の文字で構成することができます。
ユーザー定義メッセージでは,同じフォーマットを使用する必要があります。また,3文字の接頭部の先頭は,ユーザー定義メッセージとIBM提供メッセージとを区別するために,Uにする必要があります。例えば,給与計算アプリケーション・メッセージ・ファイル内のメッセージのメッセージIDとして,UPY0027などが考えられます。
いくつかのIBM提供メッセージ・ファイルのメッセージを識別するために使用するメッセージID接頭部の代表的な例を以下に示します。IBM Iオペレーティング・システム,ILE COBOL/400*, ILE RPG/400*, IDUおよびSDAユーティリティー,キーボード,およびマシン・インターフェース(MI)に関するメッセージの接頭部の一部を示します。
CPA オペレーターの処置を必要とするIBM Iメッセージ CPC IBM Iシステム完了メッセージ CPD IBM Iシステム診断メッセージ CPI IBM Iシステム通知メッセージ CPX IBM Iシステムのタイトルおよびテキスト CPF IBM Iシステム異常終了 CBE COBOL実行時 CBL COBOLコンパイラー CBX COBOLのタイトルおよびテキスト CSC COBOL構文チェッカー QRG RPG言語コンパイラー RPG RPG実行時 RPT RPG報告書簡易作成機能 RSC RPG構文チェッカー RTX RPG報告書簡易作成機能のタイトルおよびテキスト RXT RPG関連診断テキスト IDU 対話式データベース・ユーティリティー(IDU) IDX IDUのタイトルおよびテキスト SDA 画面設計機能(SDA) SDX 画面設計機能のタイトルおよびテキスト KBD キーボード MCH IBM Iマシン・インストラクション・インターフェース
| 上 |
メッセージ・ファイル (MSGF)
メッセージが保管されるメッセージ・ファイルを指定します。
これは必須パラメーターです。
修飾子1: メッセージ・ファイル
- 名前
- メッセージが保管されるメッセージ・ファイルの名前を指定してください。IBM提供メッセージ・ファイル(QCPFMSG, QRPGMSGなど)は,コマンドを入力するユーザーがそれらのファイルに対する更新権限を備えていない限り,指定できません。システムの導入時には,この権限を備えているのは,システム機密保護担当者のみです。
注: このコマンドは,ジョブに対するメッセージ・ファイルの指定変更を無視し,メッセージは指定したファイルに保管されます。
修飾子2: ライブラリー
- *LIBL
- 最初に一致するものが見つかるまで,現行スレッドのライブラリー・リスト内のすべてのライブラリーが検索されます。
- *CURLIB
- メッセージ・ファイルを見つけるために,ジョブの現行ライブラリーが使用されます。ライブラリー・リストに現行ライブラリー項目が存在しない場合には,QGPLが使用されます。
- 名前
- メッセージ・ファイルが入っているライブラリーを指定してください。
| 上 |
第1 レベル・メッセージ・テキスト (MSG)
定義しようとするメッセージのテキストを指定します。このテキストが,最初に表示または印刷されるメッセージ,あるいはプログラムまたはログに送られるメッセージとなります。最高132文字までをアポストロフィで囲んで指定することができますが,表示装置の制約(画面サイズ)を考慮しなければなりません。メッセージ中にブランクが入っている場合には,そのメッセージ全体をアポストロフィで囲まなければなりません。メッセージ中で使用するためのアポストロフィをコーディングする場合には,二重アポストロフィを入力してください。
1個以上の置換変数をメッセージ・テキスト・ストリングに組み込んで,定位置置き換えフィールドを指示することができます。この置き換えフィールドにより,メッセージの送信前にプログラムがメッセージ中の変数データを置換できます。変数を使用する場合には,以下の規則に従う必要があります。
- 変数は&Nの形式で指定する必要があります。ここで,Nは置換されるデータ・フィールドを特定する1桁または2桁(1から99)の数値です。
- 変数の前には任意の英数字(ブランクを含む)を配置できます。例えば,以下のメッセージ内に示された変数はすべて有効です。
COMMAND&34&72 &2 &99HELP
- 変数の後に数字(0から9)を配置することはできません。例えば,以下の例に示された変数はすべて無効です。
COMMAND&345 &244 &999HELP
- メッセージに含まれているのが変数のみである場合には,変数をアポストロフィで囲みます。例えば,2つの部分を持つ小数値を表示する場合に,「'&1.&2'」というメッセージを指定できます。
- このパラメーターの変数は,定位置で(昇順または降順で)記述する必要はありません。
注: データ・フィールドは,FMTパラメーターでは定位置で記述され,プログラム・メッセージ送信 (SNDPGMMSG)コマンドおよびユーザー・メッセージ送信(SNDUSRMSG)コマンドのMSGDTAパラメーター内で定位置で指定されます。メッセージ・テキスト内のデータ・フィールドの置換の詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクションを参照してください。
これは必須パラメーターです。
2バイト文字セットに関する考慮事項
このパラメーターに漢字を入力すると,いくつかの文字の組み合わせによって,このコマンドでエラーが起こる原因になることがあります。漢字にストリングX'50FN'(この場合のNは0から9の範囲の1桁の数値)が入っている場合には,エラー・メッセージCPF2424またはCPF2431が出されることがあります。この例としては,X'50F0', X'50F4', X'50F9'などです。
コード化文字セットID (CCSID)に関する考慮事項
MSGパラメーターに指定されたテキストは,CCSIDパラメーターがコーディングされない限り,このコマンドを実行中のジョブのCCSIDに入っているとみなされます。CCSIDパラメーターがコーディングされた場合には,このテキストは指定されたCCSIDに入っているとみなされます。メッセージ・ハンドラーとそれによるCCSIDの使用の詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「i5/OSのグローバリゼーション」トピック・コレクションを参照してください。
| 上 |
第2 レベル・メッセージ・テキスト (SECLVL)
第1 レベル・メッセージ・テキスト (MSG)パラメーターに指定された値を詳しく説明するために表示装置ユーザーに対して示されるメッセージ・ヘルプを指定します。ユーザーはヘルプ・キーを押してメッセージ・ヘルプを要求します。ジョブ・コマンドのサービス・ログ中のログ (LOG)パラメーターに*SECLVLが指定された場合には,メッセージ・ヘルプをジョブ・ログに書き込むこともできます。
- *NONE
- このメッセージ記述にはメッセージ・ヘルプはありません。
- '第2レベル・テキスト'
- ユーザーによって要求された時に表示されるメッセージ・ヘルプを指定してください。3000文字までをアポストロフィで囲んで指定することができますが,表示装置の制約を考慮しなければなりません。MSGパラメーターで記述したとおりに,メッセージ・ヘルプ・ストリングに1つ以上の置換変数を組み込むことができます。
メッセージ・ヘルプは,3つの形式制御文字を使用することにより,ワークステーション用に形式設定することができます。各制御文字の後には1桁のブランクが続いていなければなりません。
注: 表示装置のメッセージ・ヘルプの形式を設定する場合には,形式制御文字の後にブランク・スペースを続ける必要があります。
- &N メッセージ・ヘルプを強制的に新しい行(2カラム目)に表示します。ヘルプが複数の行にまたがる場合には,ヘルプの終わりまで,あるいは別の形式制御文字が見つかるまで,次の行以下は4カラム目に字下げされます。
- &P メッセージ・ヘルプを強制的に新しい行の6カラム目に字下げして表示します。ヘルプが1行より長い場合には,ヘルプの終わりまで,あるいは別の形式制御文字が見つかるまで,次の行以下は4カラム目から始まります。
- &Bメッセージ・ヘルプを強制的に新しい行の4カラム目から表示します。ヘルプが1行より長い場合には,ヘルプの終わりまで,あるいは別の形式制御文字が見つかるまで,次の行以下は6カラム目に字下げして表示されます。
2バイト文字セットに関する考慮事項
このパラメーターに漢字を入力すると,いくつかの文字の組み合わせによって,このコマンドでエラーが起こる原因になることがあります。漢字にストリングX'50FN'(この場合のNは0から9の1桁の数値)を入れないでください。そうでないと,エラー・メッセージCPF2424またはCPF2431が出されることがあります。この例としては,X'50F0', X'50F4', X'50F9'などです。
コード化文字セットID (CCSID)に関する考慮事項
SECLVLパラメーターに指定されたテキストは,CCSIDパラメーターがコーディングされない限り,このコマンドを実行中のジョブのCCSIDに入っているとみなされます。CCSIDパラメーターがコーディングされた場合には,このテキストは指定されたCCSIDに入っているとみなされます。メッセージ・ハンドラーとそれによるCCSIDの使用の詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「i5/OSのグローバリゼーション」トピック・コレクションを参照してください。
| 上 |
重大度コード (SEV)
定義するメッセージの重大度コードを指定します。重大度コードは,メッセージが送られる原因となった状態の重大度レベルを示します。(99が最重大度です。)
- 00
- このメッセージに割り当てられた重大度コードは00です。このメッセージは通知メッセージです。
- 重大度コード
- 00から99までの範囲で値を指定してください。この値が高いほど,状態が重大または重要となります。
- 00
- 通知メッセージ。通知だけを目的とするものです。応答は必要ありません。このメッセージは,機能が進行中であるとか,機能が正常に完了したことを指示することができます。
- 10
- 警告。起こりうるエラー条件が存在しています。プログラムは,省略時の値として欠落しているデータの指定などを行うことがあります。この操作の結果は正常とみなされます。
- 20
- エラー。エラーが見つかりましたが,自動回復手順が適用される可能性があるエラーです。処理は続行されています。省略時の値として,間違ったデータの置き換えが行われることがあります。この操作の結果は正しくない場合があります。機能が完了していないことがあります。例えば,リスト中のいくつかの項目は正しく実行されていますが,その他の項目が正しく実行されていません。
- 30
- 重大エラー。見つかったエラーは重大なので,自動回復手順は行われなく,省略時の値も不可能です。エラーがソース・データ内にあった場合には,データ・レコード全体がスキップされます。プログラムでエラーが起こった場合には,プログラムの異常終了(重大度40)となります。この操作の結果は正しくありません。
- 40
- 重大エラー:プログラムまたは機能の異常終了。プログラムが正しくないデータを処理できないためか,あるいはユーザーがこれを取り消した可能性があるために,プログラムが終了しました。
- 50
- ジョブまたはプログラムの異常終了。ジョブが開始されていないかまたは開始が正常に実行されていないか,ジョブ・レベル機能が必要に応じて実行されていないか,あるいはジョブの取り消しが行われた場合があります。
- 60
- システム状況。システム操作員メッセージ待ち行列だけに出されます。これは,装置,サブシステム,またはシステムに関する状況または警告を示します。
- 70
- 装置の保全性。システム操作員メッセージ待ち行列だけに出され,装置が正しく機能していないか,またはもはや操作可能にないことを示します。
- 80
- システム警報およびユーザー・メッセージ。ある条件が存在していて,ここでシステムを停止するほどではありませんが,予防措置が取られないと,さらに困難になる可能性があります。
- 90
- システム保全性。システム操作員メッセージ待ち行列だけに出されます。サブシステムまたはシステムを操作できない条件を説明しています。
- 99
- 処置。応答の入力または印刷装置の用紙の変更などの特定の手動処置が必要です。
| 上 |
メッセージ・データ・フィールド形式 (FMT)
最大99個のメッセージ・データ・フィールドの形式を指定します。各フィールドは,属性のリスト別にこのパラメーターに記述されます。これらの属性は,フィールドの中のデータのタイプ,フィールドの合計長,および任意指定で,小数点の右側の10進桁数を指定します。データ・タイプの中には,長さフィールドを必要としないものもあります。境界位置合わせの要件を考慮に入れなければなりません(例えば,ポインターは常に16バイト境界に位置合わせされる)。
このメッセージ記述に定義されたメッセージおよびメッセージ・ヘルプの中の置き換え値として,99個すべてのメッセージ・データ・フィールドを使用することができます。また,これらは,このコマンドのダンプするデータ (DMPLST)パラメーターおよび警報オプション (ALROPT)パラメーターにも指定することができます。SNDPGMMSGコマンドまたはSNDUSRMSGコマンドのMSGDTAパラメーターに指定するデータ・フィールドは,1つの文字ストリングに連結して,さらに指定された形式と順序に従う必要があります。連結したメッセージ・データ・フィールドの文字ストリング全体の長さは,512文字を超えてはなりません。
単一値
- *NONE
- メッセージ・フィールドに形式が記述されていません。*NONEが指定された場合,あるいはこのパラメーターが省略された場合には,メッセージ・データ・フィールドを第1 レベル・メッセージ・テキスト (MSG), 第2 レベル・メッセージ・テキスト (SECLVL), ダンプするデータ (DMPLST),または警報オプション (ALROPT)パラメーターの中で参照することはできません。
タイプ[長さ[小数点以下の桁数]]
要素1: データ・タイプ
最初の要素は,置き換えフィールドに入っているデータのタイプ,およびメッセージ・テキストの中でデータが置き換えられる時の形式設定の方法を指定します。2番目と3番目の要素の内容は,指定されたタイプによって異なります。このパラメーターで記述された各フィールドごとに,次のタイプの1つを指定することができます。
- *QTDCHAR
- アポストロフィで囲まれている形式の文字ストリング('MONDAY, THE 1ST')が指定されます。
- *CHAR
- アポストロフィで囲まれていない形式の文字ストリングが指定されます。これは,例えば,名前(BOB)を指定するためなどに使用できる英数字ストリングです。末尾ブランクは切り捨てられます。
- *HEX
- 16進値(X'C0F4')として形式化されるバイトのストリングが指定されます。
- *DEC
- 小数点付きの符号付き10進数値としてメッセージ中で形式化されるパック10進数が指定されます。10進数の桁数および小数点の右側の桁数を指示するために,長さ(必須)および小数点以下の桁数(任意指定)の値がこのタイプ(*DEC)で指定されます。最初の有効数字の左側のゼロは抑止されて,先行ブランクは切り捨てられ(除去され)ます。ゼロ以外の小数点以下の桁数が指定されている場合には,結果の小数点以下の桁数がゼロでも,結果に小数点が表示されます。FMT(*DEC 5 2)が指定されている場合の例は,128.00および128.01です。小数部分の桁数が指定されない場合は,ゼロとみなされます。次に2つの例を示します。
- FMT(*DEC 2)が置き換えフィールドに関して指定され,メッセージ・データがX'058C'のパック10進数値である場合は,メッセージ・テキストには,58という正の値が入り,小数点は示されません。
- FMT(*DEC 4 2)が指定され,パック10進数値がX'05810C'(長さ3バイト)と指定された場合には,テキストには形式設定された10進数値58.10が入ります。
- *BIN
- 長さが2, 4,または8バイト(B'0000 0000 0011 1010')で,メッセージ中で符号付き10進数値(58)として形式化される2進数値が指定されます。
- *UBIN
- 長さが2, 4,または8バイト(B'0000 0000 0011 1010')で,メッセージ中で符号なし10進数値(58)として形式化される2進数値が指定されます。
- *CCHAR
- 変換できる文字ストリング。65535または65534以外のCCSIDタグを持つメッセージ待ち行列にこのタイプのデータが送られた場合には,データは送信機能によって指定されたCCSIDからメッセージ待ち行列のCCSIDに変換されます。受信または表示機能を使用してデータがメッセージ待ち行列から入手される時にも,このタイプのデータを変換することができます。CCSIDの変換の詳細については, IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「i5/OSのグローバリゼーション」トピック・コレクションのメッセージ・ハンドラーの項を参照してください。
- *UTC
- 協定世界時(UTC)のシステム日付タイム・スタンプが入る8バイトのフィールドが指定されます。日付タイム・スタンプの出力形式には,日付とそれに続く1つのブランク区切り記号および時刻が入ります。出力メッセージの日付および時刻は,ジョブに指定された時間帯を使用してUTCで調整されます。日付は,ジョブに定義された日付の形式および日付区切り記号の属性を使用して様式化されます。時刻は,ジョブに定義された時刻区切り記号の属性を使用して様式化されます。16進のゼロで8バイト・フィールド(X'0000000000000000')が渡された場合,値は*Nとして様式化されます。
- *UTCD
- 協定世界時(UTC)のシステム日付タイム・スタンプが入る8バイトのフィールドが指定されます。出力メッセージの日付は,ジョブに指定された時間帯を使用してUTCで調整されます。日付は,ジョブに定義された日付の形式および日付区切り記号の属性を使用して様式化されます。16進のゼロで8バイト・フィールド(X'0000000000000000')が渡された場合,値は*Nとして様式化されます。
- *UTCT
- 協定世界時(UTC)のシステム日付タイム・スタンプが入る8バイトのフィールドが指定されます。出力メッセージの時刻は,ジョブに指定された時間帯を使用してUTCで調整され,時刻区切り記号のジョブ定義属性を使用して様式化されます。16進のゼロで8バイト・フィールド(X'0000000000000000')が渡された場合,値は*Nとして様式化されます。
- *DTS
- システム日付タイム・スタンプが入る8バイトのフィールドが指定されます。日付タイム・スタンプには,日付とそれに続く1つのブランク区切り記号および時刻が入ります。日付は,ジョブに定義された日付の形式および日付区切り記号の属性を使用して,出力メッセージで様式化されます。時刻は,ジョブに定義された時刻区切り記号の属性を使用して様式化されます。
- *ITV
- 待機タイムアウト条件のための時間間隔(秒数)が入る8バイトの2進数フィールドが指定されます。時間間隔は,メッセージ中で待機秒数を表しているゼロ抑止ゾーン10進数値(15 0)として形式化されます。
次の形式が有効なのは,弊社提供のメッセージ記述の中だけに限られますから,それ以外のメッセージに関しては使用してはなりません。
- *SPP
- スペース・オブジェクト内のデータへの16バイトのスペース・ポインターが指定されます。DMPLSTパラメーターで参照されると,スペース・オブジェクト内のデータが(ポインターによって指示されたオフセットから)指定された長さだけダンプされます。*SPPは,メッセージ・テキストの置き換えフィールドとしては使用できません。
- *SYP
- システム・オブジェクトへの16バイトのシステム・ポインターが指定されます。メッセージ・テキストの中で参照された時は,システム・オブジェクトの単純名が名前タイプ*CHARで記述されているように形式設定されます。ダンプするデータ (DMPLST)パラメーターで参照されると,オブジェクトそのものがダンプされます。
要素2: 長さ
タイプ指定に続いて,2番目の要素を指定して,メッセージ・データの中で渡される文字または桁の数を指示することができます。2番目の要素の使用法は,最初の要素で指定されたタイプに依存します。
- *QTDCHAR, *CHAR, *HEX,または*SPPに関して長さが指定されていない場合は,長さに関しては*VARYが想定されます。*VARYが指定または想定された場合は,SNDUSRMSGまたはSNDPGMMSGコマンドによって渡されたメッセージ・データ・フィールドには,渡されているデータの実際のバイト数を示す2バイトまたは4バイトの2進数フィールドが先行しなければなりません。しかし,*SPPが指定されると,長さフィールドは,スペース・ポインターが指す最初のバイトに含まれます。したがって,2バイトまたは4バイトのフィールドはスペース・ポインターが指すデータに先行しなければならず,メッセージ・データの一部として渡されるスペース・ポインターに先行してはなりません。
- タイプ*DECが指定された場合には,2番目の値として10進数の合計桁数(小数部分を含む)が指定されなければなりません。小数部分の桁数は3番目の値として任意選択で指定することができます(任意指定)。
- タイプ*BINまたは*UBINが指定された場合は,メッセージ・データ・フィールドは,長さは2, 4,または8バイトにすることしかできません。省略時の値は2バイトです。
- タイプ*CCHARが指定された場合には,メッセージ・データ長フィールドには *VARYのみが可能です。このフィールドのデータが異なるコード化文字セットID (CCSID)に変換されるとその長さが変わることがあるので,可変長フィールドが必要です。
要素3: *VARYバイト数か小数部分の桁数
3番目の要素は,最初の要素で指定されたタイプに応じて次の2つのうちの1つの方法で使用されます。(1) *QTDCHAR, *CHAR, *CCHAR, *HEX,または*SPPが指定されていている場合,および2番目の要素に*VARYが指定または想定されている場合には,3番目の要素は*VARYで使用され,実際に渡された長さフィールドのサイズを指示します。3番目の要素は,渡された値の長さ(2進数)を指定するために使用されるバイト数の2か4のいずれかとすることができます。(2) *DECが指定されている場合には,3番目の要素は10進数値の小数部分の桁数を指示します。*DECが指定されていない場合には,省略時の値は小数点以下の桁数0です。
注: オブジェクトが損傷しているか削除されている場合には,表示される時に置換変数がオブジェクト名で置き換えられることはなく,変数は&N(Nは数字)として現れます。また,置換変数に渡されたメッセージ・データの長さが指定された長さより短い場合には,置き換え値は空フィールドとなります。
メッセージが照会(*INQ)メッセージまたは通知(*NOTIFY)メッセージとして送信され,応答が求められる場合には,受信する応答に許される値に関する要件を指定するために,7つのパラメーターを使用することができます。この7つの妥当性検査パラメーターは,TYPE, LEN, VALUES, SPCVAL, RANGE, REL,およびDFTです。これらのパラメーターは,メッセージが応答を許可するために必須ではありませんが,そのメッセージに対して作成できる有効な応答を定義するために使用できます。また,VALUES, RANGE,およびRELの各パラメーターは相互排他的であり,このコマンドでは1つしか指定できないということに注意してください。
| 上 |
応答タイプ (TYPE)
照会または通知メッセージに対して行うことができる応答のタイプを指定します。
- *CHAR
- 任意の文字ストリングが使用できます。引用符付き文字ストリングである場合は,アポストロフィは文字ストリングの一部として渡されます。
- *NONE
- 応答タイプを指定せず,応答妥当性検査を実行しません。以下のパラメーターにLEN(*NONE)を指定する必要もあります。最大応答の長さ (LEN)パラメーター。
- *DEC
- 10進数だけが有効な応答です。
- *ALPHA
- 英字ストリングだけが使用できます。ブランクは使用できません。
- *NAME
- 単純名だけが有効な応答です。名前はオブジェクト名でなくても構いませんが,英字で始まっていなければなりません。残りの文字は英数字でなければなりません。すべての応答文字が英字(AからZ)である場合には,応答は大文字に変換されます。
| 上 |
最大応答の長さ (LEN)
照会または通知メッセージに対する応答の最大長を指定します。指定した値が適用されるのは,他の1つ以上の妥当性検査パラメーターが指定されている場合だけです。妥当性検査パラメーターが指定されていない場合には,応答タイプに最大132文字を入れることができます。
単一値
- *TYPE
- 最大長は,応答タイプ (TYPE)パラメーターに指定された応答のタイプによって決まります。各応答のタイプの最大長は次の通りです。
- タイプ*CHARおよび*ALPHAの場合には,最大32桁の文字(追加の妥当性検査が実行されない場合は132桁の文字)を指定することができます。
- *DECの場合には最大15桁が指定され,そのうち最大9桁を小数点の右側におくことができます。
- *NAMEの場合には,最大10文字の英数字が指定されます。
- *NONE
- 応答の長さは指定されません。メッセージが照会メッセージまたは通知メッセージとして送信される場合に,応答妥当性検査を実行しません。*NONEは応答タイプ (TYPE)パラメーターにも指定する必要があります。
要素1: 長さ
- 長さ
- メッセージ応答に使用できる最大長を指定します。
要素2: 小数点以下の桁数
- 小数点以下の桁数
- メッセージ応答に使用できる最大長を指定します。指定する長さは,*TYPE値に指定された最大値を超えることはできません。応答タイプ (TYPE)パラメーターに*DECが指定されている場合には,小数点以下の桁数をオプションで指定できます。指定しなければ,小数点以下の桁数はゼロになります。
| 上 |
有効な応答値 (VALUES)
照会または通知メッセージに対する正しい応答として受け取られる値のリストを指定します。リスト中に指定できる値は20個までです。リスト中のそれぞれの値は,応答タイプ (TYPE)パラメーターおよび最大応答の長さ (LEN)パラメーターについてメッセージ応答に指定された要件を満たしていなければなりません。このパラメーターを指定した場合には,応答値の範囲 (RANGE)パラメーターおよび有効な応答の関係 (REL)パラメーターを指定することはできません。有効にするには,応答はこのリストの値のいずれかと一致する必要があります。
応答値が比較値と一致するには,両方の値が同じキーボード・シフトのものである必要があります。例えば,プログラムで大文字のみを含む応答が必要とされる場合には,以下の方法のいずれかを使用して,応答を確実に大文字にします。
- 大文字の応答を要求する。
- VALUESパラメーターの比較値を小文字で入力し,SPCVALパラメーターを指定して,文字を大文字に変換する。
- TYPE(*NAME)キーボード値を使用して,文字を大文字に変換する。この方法を使用するには,すべての応答文字を英字(AからZ)にする必要があります。
単一値
- *NONE
- 応答値のリストは指定されません。応答は,他の妥当性仕様パラメーターと矛盾しない任意の値を持つことができます。
その他の値
- 比較値
- このメッセージ記述に定義されているメッセージへの応答として送られた応答値と比較するために,最大20の値のリストを指定します。このメッセージの有効な応答であるためには,応答値はこのリストの値のいずれかと一致する必要があります。各値の最大長は32文字です。
| 上 |
特殊応答値 (SPCVAL)
1セットが照会または通知メッセージの応答として使用される最大20セットの特殊値のリストを指定します。送られた値は,各セットの比較値と比較されます。一致が見つかり,そのセットで応答値が指定された場合は,その応答値が応答として送られます。応答値が指定されなかった場合は,比較値が応答として送られます。
応答値は,応答タイプ (TYPE)パラメーターおよび最大応答の長さ (LEN)パラメーターで指定された要件を満たす必要があります。送られた応答がどの比較値とも一致しない場合は,その応答は,他の応答用パラメーター内の仕様によって妥当性が検査されます。
単一値
- *NONE
- 特殊値は,このメッセージに対する応答に関して指定されません。
比較値(応答値)
このメッセージの応答を判別するため,最大で20セットの特殊値のリストを指定します。各セットには,応答を比較する比較値,および比較値が応答と一致する場合に応答として送られるオプションの応答値を含める必要があります。
要素1: 元の開始値
- 比較値
- メッセージ応答値と比較する比較値を指定します。
要素2: 置き換え終了値
- 応答値
- 応答が送られる前に比較値のマップ先となる応答値を指定します。
| 上 |
応答値の範囲 (RANGE)
照会または通知メッセージに対して送られる有効な応答の上限値および下限値を指定します。これらの値は,応答タイプ (TYPE)パラメーターおよび最大応答の長さ (LEN)パラメーターで指定された要件を満たしていなければならず,両方の値とも同じタイプでなければなりません。両方の値が同じ長さでない場合は,短い方の値は右側にブランクが埋め込まれます。タイプが*CHARおよび*ALPHAの応答の場合,値の範囲の妥当性検査前に,応答は右側にブランクが埋め込まれるか,または右側が切り捨てられて指定した長さにされます。
このパラメーターを指定した場合には,有効な応答値 (VALUES)パラメーターおよび有効な応答の関係 (REL)パラメーターを指定することはできません。
単一値
- *NONE
- このメッセージに対する応答に関して,範囲値は指定されません。
要素1: 下限値
- 下限値
- このメッセージに対する有効な応答の下限値を指定します。
要素2: 上限値
- 上限値
- このメッセージに対する有効な応答の上限値を指定します。
| 上 |
有効な応答の関係 (REL)
照会または通知メッセージへの有効な応答に対して満たさなければならない関係を指定します。指定された値は,応答タイプ (TYPE)パラメーターおよび最大応答の長さ (LEN)パラメーターで応答に指定された要件を満たしていなければなりません。タイプが*CHARおよび*ALPHAの応答の場合には,システムが送信されてきた応答値の関係についてテストを実行する前に,応答は,指定された値の長さと一致するように,その右側にブランクが埋め込まれるか,あるいは右側を切り捨てられます。
このパラメーターを指定した場合には,有効な応答値 (VALUES)パラメーターおよび応答値の範囲 (RANGE)パラメーターを指定することはできません。
単一値
- *NONE
- このメッセージへの応答に対して,関係値が指定されません。
要素1: 比較演算子
- 演算子値
- 比較演算子の1つおよびメッセージ応答が妥当性検査される値を指定してください。応答が関係テストで妥当である場合は,メッセージ送信元に送られます。入力できる比較演算子は以下のとおりです。
- *LT:より小さい
- *LE:小さいか等しい
- *GT:より大きい
- *GE:大きいか等しい
- *EQ:等しい
- *NL:小さくない
- *NG:大きくない
- *NE:等しくない
要素2: 値
- 値
- メッセージ応答値との比較に使用する値を指定します。
| 上 |
省略時応答値 (DFT)
メッセージが照会または通知メッセージとして送られる場合に,メッセージの受信者が,すべての着信メッセージが省略時の応答を受け取ることを指示している場合,あるいはメッセージがメッセージ待ち行列から削除されて応答が指定されなかった場合に使用される省略時の応答(特殊文字が入っている場合には,アポストロフィで囲まれます)を指定します。また,省略時の応答を使用して,モニター対象ではない通知メッセージに応答することもできます。省略時の応答は,応答タイプ (TYPE)パラメーターおよび最大応答の長さ (LEN)パラメーターで応答に指定された要件を満たしていなければなりません。
- *NONE
- 省略時の応答は,このメッセージに対する応答に関して指定されません。
- '省略時の応答'
- 照会メッセージまたは通知メッセージに対して送信する省略時の応答(特殊文字が入っている場合はアポストロフィで囲んで)を指定してください。
| 上 |
呼び出す省略時プログラム (DFTPGM)
このメッセージがこのメッセージをモニターしていないプログラムまたはプロシージャーにエスケープ・メッセージとして送られる場合に省略時の処置を取るために呼び出される省略時プログラムの修飾名を指定します。このメッセージがエスケープ・メッセージとして送られない場合には,このパラメーターは無視されます。このメッセージがエスケープ・メッセージとして送られた場合には,以下のパラメーターが指定された省略時のプログラムに渡されます。
- このメッセージの送信先のプログラムまたはプロシージャーの名前(277文字)。このメッセージが送られる呼び出しメッセージ待ち行列のプログラム名,モジュール名,プロシージャー名,およびプログラム・タイプ。これは,エスケープ・メッセージをモニターしなかったプログラムまたはプロシージャーと同じ名前です。
1から10桁目は,メッセージの送信先のプログラムの名前です。
11から20桁目は,メッセージの送信先のモジュールの名前です。メッセージが統合言語環境(ILE)プロシージャーに送られない場合には,このフィールドに値*Nが戻され,右側にブランクが埋められます。
21から276桁目は,メッセージの送信先のプロシージャーの名前です。メッセージがILEプロシージャーに送られない場合には,このフィールドに値*Nが戻され,右側にブランクが埋められます。
277桁目は,メッセージがILEプロシージャーに送られる場合には値1に設定され,メッセージがILEプロシージャーに送られない場合には値0に設定されます。
- メッセージ参照キー(4文字)。プログラム・メッセージ待ち行列上のエスケープ・メッセージのメッセージ参照キー。
単一値
- *NONE
- 省略時のプログラムは,このメッセージに関して指定されません。
修飾子1: 呼び出す省略時プログラム
- 名前
- エスケープ・メッセージが送られた時に呼び出される省略時のプログラムの名前を指定してください。
修飾子2: ライブラリー
- *LIBL
- 最初に一致するものが見つかるまで,現行スレッドのライブラリー・リスト内のすべてのライブラリーが検索されます。
- *CURLIB
- プログラムを見つけるために,ジョブの現行ライブラリーが使用されます。ライブラリー・リストに現行ライブラリー項目が存在しない場合には,QGPLライブラリーが使用されます。
- 名前
- プログラムが入っているライブラリーを指定します。
| 上 |
ダンプするデータ (DMPLST)
このメッセージがこのメッセージをモニターしていないプログラムにエスケープ・メッセージとして送られた時にダンプされるデータを指定します。このパラメーターは,ジョブに関連したデータをダンプするか,メッセージ・データ・フィールドからのデータをダンプするか,あるいはこれらの組み合わせをダンプするかを指定することができます。メッセージ・データ・フィールドからのデータをダンプする場合には,このパラメーターは,ダンプするデータ・フィールドを位置的に識別する1つ以上の数値を指定します。
システム・ポインターによって指示されたシステム・オブジェクトが完全にダンプされます。空間ポインターによって指示されたスペース・オブジェクトの中のデータは,フィールド記述の中で指示された長さに関して空間ポインターで示されたオフセットから開始してダンプされます。標準ジョブ・ダンプも要求できます。エスケープ・メッセージが送られる先のプログラムによってモニターされていない場合に,ダンプは,システムの省略時の処置の一部として行われます。
単一値
- *NONE
- このメッセージに関するダンプ・リストはありません。ダンプは行われません。
その他の値
- *JOB
- この値は,ジョブ表示(DSPJOB)コマンドのジョブ名(JOB)パラメーターでの*の指定,および出力(OUTPUT)パラメーターでの*PRINTの指定と同じです。詳細については,DSPJOBコマンドの説明を参照してください。
- *JOBDMP
- ジョブのデータ域は,ジョブ・ダンプ(DMPJOB)コマンドによって指定されたようにダンプされます。*JOBDMPはそれだけを単独で,または*JOB, *JOBINT,またはメッセージ・データ・フィールド番号のリストと共に指定することができます。
- *JOBINT
- ジョブが実行中のマシン処理と関連した内部マシン・データ構造が,DMPJOBINTコマンドで指定されている通りに,マシン・エラー・ログにダンプされます。*JOBINTはそれだけ単独で,あるいは*JOBDMP, *JOB,またはメッセージ・データ・フィールド番号のリストと一緒に指定することができます。
- メッセージ・データ・フィールド番号
- このエスケープ・メッセージが送られてしかもモニターされない時に,ダンプされるデータを識別するメッセージ・データ・フィールドの番号を指定します。最大99のデータ・フィールドの番号を指定することができます。また,リストには,値*JOB, *JOBINT,および*JOBDMPを含めることができます。
注:
- これらの値のいずれかがDMPLSTに指定された場合は,*JOBは値の一部であると想定されます。例えば,DMPLST (1 2 *JOBDMP)を指定すると,DMPLST(*JOB 1 2 *JOBDMP)と同じ結果になります。
- DMPLSTパラメーターに指定した値は,QSRVDMPシステム値により指定変更されることがあります。詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「システム管理」トピック・コレクションにある「システム値パラメーター」というタイトルのセクションを参照してください。
- モニター対象ではないメッセージを受け取るプログラムは,名前が「Q」で始まるか,メッセージ重大度が50以上である必要があります。
- ダンプが指定されたジョブのユーザーには,このパラメーターで要求されたダンプ・コマンドが許可されている必要があります。
| 上 |
メッセージのレベル (LVL)
定義中のメッセージ記述のレベルIDを指定します。レベルIDは,メッセージが定義される日付,およびIDを固有にする2桁の数字からなっています。
要素1: 作成日
- *CURRENT
- メッセージ記述のレベルIDの最初の部分として使用される現在日付。
- 作成日
- メッセージ記述が定義されている日付を指定します。日付はシステム値QDATFMTによって定義された形式で指定し,区切り記号を使用する場合には,QDATSEPで指定しなければなりません。
要素2: レベル番号
- 1
- 番号1は,メッセージ記述のレベルIDの2番目の部分として使用されます。
- 1から99
- メッセージ記述のIDを固有のものとする番号(1から99の範囲)を指定します。
| 上 |
警報オプション (ALROPT)
ヒストリー・ログ(QHST)またはシステム操作員メッセージ待ち行列(QSYSOPR)に送られるメッセージに関連した警報オプションを指定します。警報は,このシステムでエラーが起こったことを示すメッセージをホスト・システムに送るために使用することができます。
要素1: 警報タイプ
- *NO
- 警報は送られません。
- *IMMED
- 警報は,メッセージをQHSTまたはQSYSOPRに送るのと同時に,ただちに送られます。
- *UNATTEND
- 警報は,ネットワーク属性変更(CHGNETA)コマンドの警報状況 (ALRSTS)パラメーターに*UNATTENDが指定されている時にだけただちに送られます。
- *DEFER
- 警報は内部問題分析後に送られます。*DEFERを指定しなければならないのは,問題分析が実行できる対象のメッセージの場合だけです。警報は,メッセージによって参照された問題に関する問題分析からの最初の出口に送られます。次の場合は,*DEFERにセットされた警報はすべて*IMMEDとして取り扱われます。
- ネットワーク属性変更(CHGNETA)コマンドの警報状況 (ALRSTS)パラメーターに*UNATTENDが指定されている場合。
- 問題分析を使用して解決できる問題に対してエラー・ログIDが使用不能の場合。
- 問題ログ (LOGPRB)パラメーターに*NOが指定されている場合(メッセージによって報告された条件について問題分析を行うことができません)。
要素2: 資源名変数
- *NONE
- メッセージ・データ・フィールド形式番号は,警報IDと共には渡されません。
- 1から99
- 警報IDと共に渡されるメッセージ・データ・フィールド形式番号を指定してください。
| 上 |
問題ログ (LOGPRB)
弊社提供メッセージの場合に,項目を問題ログに入れるかどうかを指定します。このメッセージに対するエラー・ログIDがあり,このパラメーターに*YESが指定されている場合には,ユーザーは,システム操作員メッセージ待ち行列画面でF14キーを押す(DSPMSG *SYSOPRコマンドを実行する)ことにより,問題分析を呼び出すことができます。
- *NO
- 項目は問題ログに入れられません。
- *YES
- このメッセージに関連したエラー・ログIDがある場合には,項目が問題ログに入れられます。
| 上 |
コード化文字セットID (CCSID)
MSGおよびSECLVLパラメーターに指定されたテキストが入っているコード化文字セット識別(CCSID)を指定します。このメッセージ記述が追加されるメッセージ・ファイルが65534または65535でない場合には,指定されたテキストは指定されたCCSIDからメッセージ・ファイルのCCSIDに変換されます。そうでない場合には,テキストは変換されませんが,検索または表示機能の実行時に変換が必要になる場合に備えて,CCSIDが保管されます。メッセージ・ハンドラーとそれによるCCSIDの使用の詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「i5/OSのグローバリゼーション」トピック・コレクションを参照してください。
- *JOB
- このメッセージ記述のテキストは,このコマンドを実行するジョブのCCSIDに入っているとみなされます。
- *HEX
- このメッセージ記述のテキストは変換されず,65535というタグが付けられます。
- コード化文字セットID
- テキストが入っていると考えられるCCSIDを指定してください。有効な値の範囲は1から65535です。有効なCCSIDの値のリストについては,iSeries Information Center(http://www.ibm.com/eserver/iseries/infocenter)にあるグローバリゼーション情報を参照してください。受け入れられるのは,ジョブの変更先とすることができるCCSIDだけです。
| 上 |
例
例1:メッセージの定義
ADDMSGD MSGID(UIN0115) MSGF(INV)
MSG('ENTER THE NAME OF USER''S DEPARTMENT')
SECLVL('VALID DEPARTMENTS: &B X12 &B X13 &B X14')
TYPE(*CHAR) LEN(3) DFT('ZZZ')
このコマンドは,メッセージを定義し,それをINVという名前のファイルにID UIN0115で保管します。このメッセージは,&B形式設定文字を使用することによって第2レベル・メッセージ・テキストを提供し,3つの有効な部門名(X12, X13,およびX14)をそれぞれ別の行に表示します。有効な応答は3文字のIDだけにすることができるように,応答には妥当性検査が必要です。省略時の応答であるZZZも提供されます。
例2:メッセージ記述の定義
ADDMSGD MSGID(UPY0047) MSGF(PAYLIB/TIMECARD)
MSG('FOR WEEK OF &1, &2 TIME CARDS. ARE THERE MORE?')
FMT((*CHAR 8) (*CHAR 3)) TYPE(*ALPHA) LEN(1)
VALUES(N Y) SPCVAL((YES Y)(NO N)) DFT(N)
このコマンドは,PAYLIBライブラリーのTIMECARDメッセージ・ファイルに保管されるメッセージ記述を定義します。タイム・カードを処理するプログラムは,タイム・カードが週(&1に指定)に何回(&2)処理されたかを示すメッセージを(照会タイプ・メッセージとして)送ることができます。このメッセージをメッセージ待ち行列を通じてユーザーに送るには,SNDPGMMSGまたはSNDUSRMSGコマンドを使用する必要があります。この例では,コマンドに以下が指定されます:
- このメッセージのメッセージID(UPY0047)
- このメッセージが入れられるファイル(TIMECARD)
- 8文字のタイム・カード日付(例えば,09/15/88)で,これはMSGDTAパラメーターの最初の値であることが必要です
- 3桁以内のタイム・カードの番号(例えば,125)
YESの応答が送られた場合には,それはY (SPCVALパラメーター)として受け入れられます。NOが送られた場合には,それはNとして受け入れられます。YESもNOも送られない場合には,TYPE, LEN,およびVALUESパラメーターによって応答の妥当性が検査されます。ユーザーが選択した場合には,応答は送られず,省略時の応答(N)とみなされます。
例3:エスケープ・メッセージの定義
ADDMSGD MSGID(UPY1234) MSGF(PAYLIB/TIMECARD)
MSG('TAX FOR EMPLOYEE &1 EXCEEDS GROSS SALARY.')
SEV(75) FMT((*CHAR 6) (*DEC 9 2) (*CHAR 8))
DFTPGM(PAYLIB/BADTAX) DMPLST(1 2 3 *JOB)
このコマンドは,エスケープ・メッセージを定義します。メッセージの送信元は3つのデータ値を渡し,その最初のもの(従業員通し番号)がメッセージにおける置き換え変数として使用されます。このメッセージがエスケープ・メッセージとして送られ,メッセージが送られる先のプログラムがメッセージUPY1234をモニターしない場合には,省略時のシステムの処置が取られます。これには,渡された3つのデータ値とジョブ構造のダンプが含まれます。ダンプが取られた後に,プログラムBADTAXが呼び出されます。
メッセージのモニターの詳細については,メッセージ・モニター(MONMSG)コマンドを参照してください。
| 上 |
エラー・メッセージ
*ESCAPE メッセージ
- CPF2401
- ライブラリー&1は認可されていない。
- CPF2407
- &2にメッセージ・ファイル&1が見つからない。
- CPF2411
- &2のメッセージ・ファイル&1は認可されていない。
- CPF2412
- メッセージID &1は,&3のメッセージ・ファイル&2に既に存在している。
- CPF2430
- メッセージ記述はメッセージ・ファイルに追加されなかった。
- CPF2461
- メッセージ・ファイル&1を拡張することができなかった。
- CPF2483
- メッセージ・ファイルは現在使用中である。
- CPF2510
- &2のメッセージ・ファイル&1に論理的な損傷がある。
- CPF9830
- ライブラリー&1を割り当てることができない。
- CPF9838
- ユーザー・プロファイルの記憶域限界を超えた。
| 上 |