Errors (CPI-C)

La tabella seguente riepiloga le modifiche dello stato che si verificano quando viene rilevato un errore di trasmissione dati.

return_code Stato precedente Nuovo stato
CM_PROGRAM_ERROR_PURGING RECEIVE Nessuna modifica
CM_PROGRAM_ERROR_NO_TRUNC RECEIVE Nessuna modifica
CM_SVC_ERROR_PURGING SEND RECEIVE
CM_SVC_ERROR_NO_TRUNC SEND_PENDING RECEIVE

Se il programma partner tronca un record logico, il programma locale riceve la notifica del troncamento tramite return_code nella chiamata di ricezione successiva.

Se un programma genera problemi di ricezione con requested_length impostato su zero, la chiamata viene eseguita come di consueto. Tuttavia, data_received e status_received non vengono impostati nella stessa chiamata di ricezione . Un'eccezione a questa situazione è il record Null inviato su una conversazione mappata, descritta nel paragrafo successivo.

In una conversazione mappata in cui i dati sono disponibili dal programma partner, data_received è impostato su CM_INCOMPLETE_DATA_RECEIVED. Se è disponibile un record Null (send_length nella chiamata Send_Data rilasciata dal programma partner è impostata su zero), data_received è impostato su CM_COMPLETE_RECORD_RECEIVED con received_length impostato su zero.

In una conversazione di base in cui i dati sono disponibili e la caratteristica di riempimento è impostata su CM_FILL_LL, data_received è impostata su CM_INCOMPLETE_DATA_RECEIVED. Se la caratteristica di riempimento è impostata su CM_FILL_BUFFER, data_received è impostata su CM_DATA_RECEIVED.

L'unità logica (LU) non esegue automaticamente alcuna conversione tra EBCDIC e ASCII nella stringa di dati ricevuta prima di inserirla nel buffer. Se necessario, il programma può usare Common Service Verb (CSV) CONVERT per tradurre una stringa da un set di caratteri all'altro.