7.95.2 TRANSFERについてのコメント/警告
情報は、「交換リスト」を介してファンクション間で交換されます。交換リストの形式は以下のとおりです。
||N|T|L|D| V ||N|T|L|D| V | ....... |N|T|L|D| V ||
表記の説明:
N |
フィールド名 |
T |
フィールド・タイプ |
L |
フィールド長 |
D |
小数点以下桁数 |
V |
可変フィールド長 |
ファンクションが呼び出されるたびに、交換リストが検索されます。そのファンクションで使用したフィールドと同じ名前のフィールドが交換リストで見つかった場合、そのフィールドがファンクションに「マッピング」されます。交換リストでフィールドが見つかったかどうか、またそのフィールドがファンクションにマッピングされたかどうかに関わらず、検索の完了後に交換リストはクリアされます。
ファンクション間での情報交換は、通常のプログラム・パラメータのように位置ではなく、名前によって行われると考えることができます。
フィールドの定義が交換リスト内とファンクション内とで異なっている場合、上記の「マッピング」手順により、フィールドのタイプ、長さ、および小数点以下桁数が自動的に変換されます。
EXCHANGEコマンド、またはTRANSFERコマンドのEXCHANGEパラメータは、交換リストに新しい項目を追加するために使用します。
交換リストの合計長さは2000文字を超えることはできません。2000文字を超える場合、EXCHANGEまたはTRANSFERコマンドによって情報をリストに追加しようとすると、異常終了します。
交換情報を受け取るファンクションを使用するときは、情報交換が、ファンクション内の最初のRDMLコマンドが実行される前に行われることに注意してください。
EXCHANGEコマンドまたはEXCHANGEパラメータが正しく機能していないように見える場合、ファンクション内の最初のRDMLコマンドによって、直前に交換リストからマッピングされたフィールドが*DEFAULTまたは*NULLに設定されている可能性があります。この場合、EXCHANGEの値が失われます/上書きされます。