メッセージ・ソース・ファイルの作成
メッセージ・ソース・ファイルには、メッセージ・テキストと各メッセージに関連した情報が入っています。標準タグおよび標準形式が、メッセージ・テキストとさまざまなタイプのメッセージ情報に使用されます。メッセージ・ソース・ファイルのタグおよび形式は、ロード可能 TEXT ファイルにソース・ファイルを変換するために、CEEBLDTX ユーティリティーによって使用されます。
TSO/E の場合は、部分修飾名を指定すると、TSO/E は、左端修飾子として現行の接頭部 (通常はユーザー ID) を追加し、右端修飾子として TEXT を追加します。メッセージ・ソース・ファイル内のレコードは、レコード長が 80 の固定長レコード形式でなければなりません。
メッセージ・ファイルを作成するときには、エディター内で必ず順序番号付け属性をオフにして、あとに順序番号が生成されないようにしてください。桁 1~72 の後続ブランクは無視されます。メッセージの各国語版ごとに 1 つ以上のメッセージ・データ・セット (TSO/E) が必要です。
ソース・ファイルを作成するのに使用されるタグはすべてコロン (:) で始まり、キーワードとピリオド (.) がそれに続きます。. タグは、注記される個所を除いて、すべて 1 桁目から始めなければなりません。メッセージ・ソース・ファイルの注釈は、入力行の左端のピリオドとアスタリスク (.*) から始めなければなりません。
図 1 は、機能 ID が XMP であるメッセージ・ソース・ファイルの例を示します。
:facid.XMP
:msgno.10
:msgsubid.0001
:msgname.EXMPLMSG
:msgclass.I
:msg.This is an example of an insert,
:tab.+1
:ins 1.a simple insert
:msg., within a message.
:xpl.This is a simple example of how to put an insert into a message.
:presp.No programmer response required.
:sysact.No system action is taken.
- :facid.
- すべてのメッセージ・ファイルの初めには、機能 ID が必要です。これは、メッセージ番号の最初の 3 文字として使用されます。ソース・ファイル内のメッセージはすべて同じ機能 ID をもっています。例えば、Language Environment により出されるメッセージはすべて CEE という機能 ID をもっています。機能 ID は、4 桁の識別番号およびメッセージ重大度コードと結合して、メッセージ番号になります。機能 ID には、英数字 (A ~ Z、a ~ z、0 ~ 9) を使用することができます。
機能 ID タグを省略すると、ロード可能メッセージ・ファイルの作成時にエラーが発生します。また、このタグを複数指定したり、機能 ID にブランクや特殊文字を使用したりしてもエラーが発生します。
C アプリケーションが POSIX(OFF) で実行している場合、Language Environment は、 互換性のために EDC という機能 ID を持つメッセージを出します。 詳しくは、POSIX でのランタイム・メッセージを参照してください。
注: 機能 ID は、条件トークンの最初の 3 文字としても使用されます。 - :msgno.
- このタグは必須です。メッセージ番号タグは、メッセージに関する情報の始めと終わりを定義します。次の :msgno. タグまでの情報はすべて、現行メッセージです。メッセージ番号は、メッセージ接頭部に続く 4 桁の数字として表され、メッセージ・ソース・ファイル内のメッセージを識別するために使用されます。同じメッセージ番号を複数のメッセージが使用できるのは、メッセージ内で :msgsubid. タグが使用されている場合に限られます。
:msgno. タグで使用されるメッセージ番号は、昇順にしなければなりません。 メッセージ番号は、1 桁から 4 桁の数字 (0 ~ 9) になります。先行ゼロは、使用される文字が 3 文字以下の場合に追加されます。
アプリケーションが POSIX(ON) を指定して実行している場合は 5201 から 5209 のメッセージ番号が使用されますが、POSIX(OFF) が有効なときは同じメッセージに 6000 から 6008 のメッセージ番号が使用されます。 詳しくは、POSIX でのランタイム・メッセージを参照してください。
- :msgsubid.
- このタグは省略可能です。メッセージの副次 ID タグは、同じメッセージ番号を持つ異なるメッセージを区別します。メッセージがすべて固有のメッセージ番号をもっている場合には、:msgsubid. タグは必要ありません。
:msgsubid. タグに付随する番号は、同じメッセージ番号をもっているメッセージ内で固有であり、昇順でなければなりません。:msgsubid. タグに付随する番号は、 1 桁から 4 桁の数字 (0 から 9) になります。使用される数字が 3 桁以下の場合、先行ゼロが追加されます。
- :msgname.
- :msgname. タグは、メッセージに名前を付けるために使用されます。この名前は、メッセージに関連付けられる条件トークンのシンボル名になり、CEEBLDTX ユーティリティーにより生成された COPY ファイルに入ります。例えば、XMP という機能 ID を持つメッセージの :msgname. タグに EXMPLMSG を使用した場合には、このメッセージに関連付けられる条件のシンボル・フィードバック・コードは EXMPLMSG になります。
メッセージ名が省略されると、機能 ID と基本の 32 の等価のメッセージ番号がシンボル・メッセージ名として使用されます。これに加えて :msgsubid. タグを使用した場合は、メッセージの副次 ID の前に下線を付けたものが、メッセージ名に付加されます。例えば、:msgno. が、10 という値で、機能 ID が XMP の場合、このメッセージに関連付けられる条件のシンボル・フィードバック・コードは XMP00A になります。これに加えて、:msgsubid. タグを値 0001 で 使用した場合、シンボル・フィードバック・コードは XMP00A_0001 になります。
- :msgclass.
- このタグは必須です。:msgclass. (または :msgcl.) タグは、メッセージ識別の最終部分を構成します。これには、メッセージの重大度コードを示す大文字小文字区別の文字が必要です。この文字は、メッセージに関連付けられる条件トークンの重大度のレベルに対応します。:msgclass. タグが条件トークンの重大度レベルと異なる場合、条件トークンに割り当てられた重大度が使用されます。重大度コード、重大度のレベル、および条件の説明については、表 1 を参照してください。
- :msg.
- :msg. タグは、表示されるメッセージのテキスト (一部または全部) の始めを示します。メッセージ・テキストは、Language Environment に認識されている各国語 (DBCS 文字を含む) で表示することができます。サポートされる各国語のリストについては、「z/OS Language Environment プログラミング・リファレンス」を参照してください。:msg. タグは、メッセージを構成するのに必要な回数だけ繰り返すことができます。メッセージ挿入だけでメッセージを構成する場合には、これは必要ありません。メッセージのメッセージ・テキストに 2 つ以上の行が必要な場合には、行はすべて、メッセージ・テキストの最初の行の始めに左寄せされます。メッセージ・テキストは、最後の非ブランク文字で終了します。メッセージのために予約されている固定スペースがないので、メッセージ変換のために追加スペースを予約する必要はありません。
- :hex.
- :hex. タグは、16 進文字ストリングの始めを示します。使用する場合には、:msg. タグのテキスト内になければなりません。 :ehex. タグにより終了します。:hex. タグは、メッセージ・テキスト内のどの個所でも使用することができます。
- :ehex.
- :ehex. タグは、16 進数ストリングを終了させます。このタグは、メッセージ・テキスト内のどの個所でも使用することができます。
- :dbc.
- :dbc. タグは、DBCS 文字のテキストを定義します。ストリングには SBCS 文字を入れることができませんが、シフトアウト文字で始まり、シフトイン文字で終わらなければなりません。
- :tab.n
- :tab. タグは、メッセージの次の部分が、指定した数のスペース分をタブ移動する、あるいは指定した桁にタブ移動することを示します。番号が正符号の後ろにある場合には、メッセージの次の部分が、現在位置から指定した数のスペース分を移動することを示します。番号が正符号の後ろにない場合には、メッセージの次の部分が始まる桁を示します。タブ値は、1 ~ 255 までの範囲になければなりません。必要に応じて、タブ値に適応するために出力の新しい行が自動的に作成されます。これは、現在位置が指定したタブの桁よりも大きい場合を含みます。
- :tbn.
- :tbn. タグは、:etbn. タグが見つかるまで、あとに続く行に書き込まれるテキストを現行の桁で開始させるために使用します。
- :etbn.
- :etbn. タグは、:tbn. タグによって設定されたタブをオフにします。
- :ins n.[text]
- :ins. タグは、メッセージ挿入を定義します。挿入は、CEECMI 呼び出し可能サービスで値に割り当てられる変数です。
挿入番号 (n) は、1 ~ 9 の数になります。ピリオドの後にあるテキストはその挿入を記述します。このテキストは省略可能です。挿入に割り当てられた値が認識されない場合は、メッセージ・ファイルのみに組み込まれます。 例えば、挿入タグのあとのテキスト変数名 は、変数名が挿入に割り当てられることを示します。
メッセージに使用される各挿入には値を 1 つ割り当てることができます。挿入タグは、移動したり、交換したり、省略したりすることができますが、挿入値は変更することができません。挿入番号ではなく、:ins n. タグの順序により、挿入の順序が判別されます。
- :newline.
- :newline. タグは、複数行のメッセージに使用される新しいメッセージ行を作成します。
- :xpl.
- このタグは省略可能です。:xpl. タグは、条件を説明するために使用されるテキストを示します。これは、メッセージの一部として出力されませんが、メッセージ SCRIPT ファイルが形式設定されて、出力される場合にはメッセージに組み込まれます。
- :presp.
- このタグは省略可能です。:presp. タグは、推奨されるプログラマーの対応を記述するテキストを示します。これは、メッセージの一部としては出力されませんが、メッセージ SCRIPT ファイルが形式設定され、出力されたり、オンライン表示される場合にはメッセージに組み込まれます。
- :sysact.
- このタグは省略可能です。:sysact. タグは、システムの処理を記述するテキストを示します。これは、メッセージの一部としては出力されませんが、メッセージ SCRIPT ファイルが形式設定され、出力されたり、オンライン表示される場合にはメッセージに組み込まれます。