次の表は、データ転送エラーが発生したときに発生する状態の変化をまとめたものです。
| return_code | 古い状態 | 新しい状態 |
|---|---|---|
| CM_PROGRAM_ERROR_PURGING | RECEIVE | 変更なし |
| CM_PROGRAM_ERROR_NO_TRUNC | RECEIVE | 変更なし |
| CM_SVC_ERROR_PURGING | SEND | RECEIVE |
| CM_SVC_ERROR_NO_TRUNC | SEND_PENDING | RECEIVE |
パートナー プログラムが論理レコードを切り捨てた場合、ローカル プログラムは次の受信呼び出しの return_code を通じて切り捨ての通知を 受け取ります 。
プログラムが 0 に設定requested_lengthReceive を発行した場合、呼び出しは通常どおりに実行されます。 ただし、同じ受信呼び出しでは、data_receivedとstatus_receivedは設定されません。 (この状況の 1 つの例外は、次の段落で説明する、マップされた会話を介して送信される null レコードです)。
パートナー プログラムからデータを使用できるマップされた会話では、 data_received は CM_INCOMPLETE_DATA_RECEIVED に設定されます。 null レコードが使用可能な場合 (パートナー プログラムによって発行されたSend_Data呼び出しの send_length が 0 に設定されている場合)、 data_received は received_length 0 に設定された CM_COMPLETE_RECORD_RECEIVED に設定されます。
データが使用可能で、フィル特性がCM_FILL_LLに設定されている基本的な会話では、 data_received はCM_INCOMPLETE_DATA_RECEIVEDに設定されます。 フィル特性がCM_FILL_BUFFERに設定されている場合、 data_received はCM_DATA_RECEIVEDに設定されます。
論理ユニット (LU) は、バッファーに入れる前に、受信したデータ文字列に対して EBCDIC と ASCII の 間の変換を自動的に実行しません。 必要に応じて、共通サービス動詞 (CSV) CONVERT を使用して、文字列を 1 つの文字セットから他方の文字セットに変換できます。