Las transformaciones bidireccionales del código de tiempo de ejecución se realizan en el entorno de ejecución de flujo de servicios CICS. Se utiliza el módulo FEJBDTRN, que se suministra con el código host de Rational Developer paraSystem z. Este módulo puede copiarse en cualquier biblioteca que esté asignada como PDSE; aparece en la lista DFHRPL del trabajo de inicio de CICS. El módulo FEJBDTRN se invoca cuando se necesitan conversiones bidireccionales en el código generado, por ejemplo, cuando la correlación se genera entre los campos de los mensajes que tienen diferentes atributos bidireccionales.
Para flujos de hebreo, también puede utilizar la versión FEJBDTRE autónoma de la rutina de conversión bidireccional. FEJBDTRE puede copiarse en cualquier biblioteca de la lista DFHRPL (PDS o PDSE). Desde el punto de vista funcional, no hay ninguna diferencia entre FEJBDTRN y FEJBDTRE. Para poder generar el flujo del Entorno de ejecución de flujo de servicios CICS con llamadas a FEJBDRE, debe cambiar el módulo bidireccional predeterminado que se especifica en la ventana Preferencias.
MACGEN IF IDD OF I-F01 NOT EQUAL SPACES AND
LOW-VALUES THEN
MACGEN MOVE IDD OF I-F01 TO IDD OF V-F01
CALL WS-BIDITRN-CALL USING BY REFERENCE
IDD OF V-F01 BY VALUE LENGTH OF IDD OF V-F01
BY CONTENT INATTR OF BIDIMSG BY VALUE LENGTH OF INATTR OF BIDIMSG
BY CONTENT 'VISUALLTR' BY VALUE 9
BY CONTENT '424' BY VALUE 3
BY REFERENCE BIDI-RESPONSE-CODE
BY REFERENCE BIDI-REASON-CODE
Los atributos bidireccionales pueden aparecer explícitamente. Si los atributos se suministran como parte de un mensaje de recepción, los atributos aparecen en la estructura BIDIMSG que aparece en el libro de copia BIDIMSG. Estos atributos se derivan de los atributos bidireccionales de los archivos SFMXSD correspondientes.
Cada atributo va seguido de un parámetro que especifica su longitud.
IF BIDI-RESPONSE-CODE NOT EQUAL
BIDI-NORMAL-RESPONSE
MOVE +9 TO ERROR-IND
MOVE BIDI-RESPONSE-CODE TO EDC-BIDITRN-RESP
MOVE BIDI-REASON-CODE TO EDC-BIDITRN-REAS
MOVE IDD OF V-F01 TO EDC-BIDITRN-DATA
MOVE LENGTH OF IDD OF V-F01 TO EDC-BIDITRN-DATALEN
MOVE INATTR OF BIDIMSG TO EDC-BIDITRN-INATTR
MOVE LENGTH OF INATTR OF BIDIMSG TO EDC-BIDITRN-INATTRLEN
MOVE 'VISUALLTR' TO EDC-BIDITRN-OUTATTR
MOVE 9 TO EDC-BIDITRN-OUTATTRLEN
MOVE '424' TO EDC-BIDITRN-CODEPAGE
MOVE 3 TO EDC-BIDITRN-CODEPAGELEN
MOVE BIDITRN-ERRMSG TO WS-ERR-MESSAGE
MOVE BIDI-ERROR-CODE TO WS-ERR-CODE
PERFORM POST-NAVIGATOR-ERROR-RTN
THRU POST-NAVIGATOR-ERROR-EXIT
PERFORM 9010-NAVIGATOR-RETURN
END-IF.
La tabla siguiente describe los códigos de respuesta y razón BIDITRN. Para cada punto de anomalía posible dentro de BIDITRN, debe haber un código de respuesta; este código debe propagarse a través de la pila hasta el programa llamante. Básicamente, el código de respuesta indica la ubicación de la anomalía dentro de BIDITRN. El código de razón proporciona detalles de por qué ha fallado BIDITRN, en la ubicación especificada por BIDITRN.
| Código de respuesta | Significado | Código(s) de razón |
|---|---|---|
| 0 | Éxito | 0 |
| 1 | BIDITRN inbuffer malloc ha fallado | valores de número de error para la llamada a malloc |
| 2 | BIDITRN codePag malloc ha fallado | valores de número de error para la llamada a malloc |
| 3 | BIDITRN input_attr malloc ha fallado | valores de número de error para la llamada a malloc |
| 4 | BIDITRN output_attr malloc ha fallado | valores de número de error para la llamada a malloc |
| 5 | Serie de atributos bidireccionales no válida |
|
| 6 | El formato de la serie de atributos bidireccionales bidi_attr malloc ha fallado | valores de número de error para la llamada a malloc |
| 7 | El formato de la serie de atributos bidireccionales uppercase_attr malloc ha fallado | valores de número de error para la llamada a malloc |
| 8 | BIDITransform outbuffer malloc ha fallado | valores de número de error para la llamada a malloc |
| 9 | BIDITransform layout malloc ha fallado | valores de número de error para la llamada a malloc |
| 10 | BIDITransform inShape malloc ha fallado | valores de número de error para la llamada a malloc |
| 11 | BIDITransform outShape malloc ha fallado | valores de número de error para la llamada a malloc |
| 12 | BIDITransform set_desc malloc ha fallado | valores de número de error para la llamada a malloc |
| 13 | BIDITransform m_create_layout ha fallado | valores de número de error para la llamada a malloc |
CIA08008E(DFHMA08008E): La transformación BIDI ha fallado. Código de repuesta X, Código de razón.