Condividi tramite


Errori (CPI-C)

Nella tabella seguente vengono riepilogate le modifiche dello stato che si verificano quando viene rilevato un errore di trasmissione dei dati.

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

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

Se un programma genera un problema 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, descritto nel paragrafo successivo.

In una conversazione mappata in cui i dati sono disponibili nel 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 è impostato su zero), data_received è impostato su CM_COMPLETE_RECORD_RECEIVED con received_length impostato su zero.

In una conversazione di base in cui sono disponibili i dati 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 sulla stringa di dati ricevuta prima di inserirla nel buffer. Se necessario, il programma può usare Common Service Verb (CSV) CONVERT per convertire una stringa da un set di caratteri all'altro.