IDIWRITE コマンド

IDIWRITE コマンドは、ユーザー出口から Fault Analyzer にデータ・レコードを渡すために使用します。これは、コンパイラー・リスト読み取り、メッセージ、異常終了コードの説明、フォーマット、または通知ユーザー出口でのみ使用できます。IDIWRITE コマンドによって提供可能なデータのタイプは、このコマンドの使用元であるユーザー出口のタイプによって異なります。詳細については、それぞれのユーザー出口タイプに関する一般セクションを参照してください。

1. Syntax

1 IDIWRITE
1 'text'
1 var_name
各コマンドの説明。
'text'
印刷するテキストをアポストロフィで囲んで指定します。ストリングを囲むには、単一引用符 (') または二重引用符 (") のいずれかを使用できます。このとき最初の引用符と最後の引用符には、同じ文字を使用してください。テキスト中の引用符がストリングを囲むために使用された引用符と同じ場合、いずれの引用符も 2 回指定する必要があります。例えば、It isn't there を出力するには、テキストを "It isn't there" または 'It isn''t there' で指定します。

引用符付きストリングを使用すると、通知ユーザー出口またはフォーマット・ユーザー出口でのみサポートされます。

var_name
データ・レコードを含む変数の名前。

var_name を指定せずに IDIWRITE コマンドを使用する場合、関連する出口タイプで説明したように出口固有のデータ域を使用してデータ・レコードを渡す必要があります。

戻りコード

IDIWRITE コマンドでは、以下の戻りコードが使用されます。
0
レコードが正常に書き込まれました。
2
直前のエラーによりレコードの書き込みが使用不可になりました。
4
エラーのためレコードが書き込まれませんでした。エラーの説明が IDITRACE DDname に書き込まれます。
8
コマンド構文エラーです。エラーの説明が IDITRACE DDname に書き込まれます。

2. IDIWRITE コマンド例

/* REXX */
/* Pass records to Fault Analyzer */

/* Method 1 - plain text */
"IDIWRITE 'This is record 1'"
if RC = 0 then say 'Method 1 success!'

/* Method 2 - using LST data area (Compiler Listing Read user exit) */
rec = 'This is record 2'
LST.DATA_LENGTH = length(rec)
LST.DATA_BUFFER = rec
"IDIWRITE"
if RC = 0 then say 'Method 2 success!'

/* Method 3 - letting REXX resolve data record variable */
rec = 'This is record 3'
"IDIWRITE '"rec"'"
if RC = 0 then say 'Method 3 success!'

/* Method 4 - letting Fault Analyzer resolve data record variable */
rec = 'This is record 4'
"IDIWRITE rec"
if RC = 0 then say 'Method 4 success!'