Errores (CPI-C)
En la tabla siguiente se resumen los cambios de estado que se producen cuando se produce un error de transmisión de datos.
return_code | Estado anterior | Nuevo estado |
---|---|---|
CM_PROGRAM_ERROR_PURGING | RECEIVE | Sin cambios |
CM_PROGRAM_ERROR_NO_TRUNC | RECEIVE | Sin cambios |
CM_SVC_ERROR_PURGING | ENVIAR | RECEIVE |
CM_SVC_ERROR_NO_TRUNC | SEND_PENDING | RECEIVE |
Si el programa asociado trunca un registro lógico, el programa local recibe la notificación del truncamiento a través de return_code en la siguiente llamada de recepción .
Si un programa emite Receive con requested_length establecido en cero, la llamada se ejecuta como de costumbre. Sin embargo, data_received y status_received no se establecen en la misma llamada de recepción . (Una excepción a esta situación es el registro NULO enviado a través de una conversación asignada, descrita en el siguiente párrafo).
En una conversación asignada en la que los datos están disponibles en el programa asociado, data_received se establece en CM_INCOMPLETE_DATA_RECEIVED. Si hay disponible un registro nulo (send_length en la llamada de Send_Data emitida por el programa asociado está establecido en cero), data_received se establece en CM_COMPLETE_RECORD_RECEIVED con received_length establecido en cero.
En una conversación básica en la que los datos están disponibles y la característica de relleno se establece en CM_FILL_LL, data_received se establece en CM_INCOMPLETE_DATA_RECEIVED. Si la característica de relleno se establece en CM_FILL_BUFFER, data_received se establece en CM_DATA_RECEIVED.
La unidad lógica (LU) no realiza automáticamente ninguna conversión entre EBCDIC y ASCII en la cadena de datos recibida antes de colocarla en el búfer. Si es necesario, el programa puede usar Common Service Verb (CSV) CONVERT para traducir una cadena de un juego de caracteres al otro.