La API IRZQGETS recupera una estructura SOAP de la cola de mensajes de IMS y devuelve la información al interlocutor en una estructura de lenguaje de alto nivel.
Las estructuras y variables a las que se hace referencia en este tema se definen en el archivo de inclusión IRZPWSH (consulte la sección Archivo de inclusión IRZPWSH).
Parámetros:
| Parámetro: | Tipo: | Uso: | Descripción: |
|---|---|---|---|
| @irz_async_msg_header_ptr | POINTER BYVALUE | Entrada | Puntero por valor a la instancia de @irz_async_msg_header que el
programa de proceso de mensajes (MPP) recupera de la cola de mensajes de
IMS antes de emitir una llamada Get Unique
(GU) mediante la interfaz CEETDLI. Importante: Esta instancia debe
pasarse en todas las llamadas a IRZQGETS e IRZQSETS.
|
| @irz_iopcb_ptr | POINTER BYVALUE | Entrada | Puntero por valor al PCB de E/S que se ha
pasado al programa de proceso de mensajes (MPP) en la entrada mediante
IMS. IRZQGETS utiliza este PCB de
E/S al invocar a CEETDLI para interactuar con la cola de mensajes de
IMS. Nota: Si el código de retorno de
IRZQGETS es 999, examine el PCB de E/S para determinar la causa del
error.
|
| @irz_struct_type | SIGNED FIXED BIN(31) BYVALUE | Entrada | Entero por valor que especifica el tipo de estructura de lenguaje que debe recuperarse de la cola de mensajes de IMS. Pueden utilizarse las constantes siguientes definidas en el archivo de inclusión IRZPWSH: @irz_soap_body_struct. |
| @irz_struct_name | WCHAR(100) VARYING BYADDR | Entrada | Serie por referencia que contiene el nombre de la estructura de lenguaje que debe recuperarse de la cola de mensajes de IMS. El valor de este parámetro debe corresponder al valor del parámetro @irz_struct_type. |
| @irz_struct_ptr | POINTER BYADDR | Salida | Puntero por referencia a un bloque de almacenamiento recién
asignado que contiene la estructura de lenguaje devuelta. Importante: Este
bloque de almacenamiento reside en el mismo espacio de direcciones que el
interlocutor. Por tanto, es muy aconsejable que el interlocutor libere este bloque
de almacenamiento cuando ya no sea necesario.
|
| @irz_struct_size | SIGNED FIXED BIN(31) BYADDR | Salida | Entero por referencia que contiene el tamaño en bytes de la estructura de lenguaje devuelta. |
| @irz_cee_feedback_ptr | POINTER BYVALUE | Entrada | Puntero por valor a una instancia de @irz_cee_feedback que define
una señal de condición de Language
Environment. Esta instancia se actualiza cada vez que IRZQGETS invoca a
Language Environment Callable
Services. Nota: Si el código de retorno de IRZQGETS es 998,
utilice la publicación Language
Environment Run-Time Messages (SA22-7566-10) para examinar el contenido de la
señal de condición y determinar la causa del error.
|
| @irz_debug | BIT(1) OPTIONAL | Entrada | Bit opcional que indica si IRZQGETS debe visualizar información de rastreo (consulte la sección Salida de rastreo de WSDL2PLI). |
Códigos de retorno:
Los códigos de retorno de IRZQGETS son constantes definidas en el archivo de inclusión IRZPWSH:
| Tipo: | Nombre: | Valor: |
|---|---|---|
| SIGNED FIXED BIN (31) | @irz_success | 000 |
| @irz_omitted_parameter | 100 | |
| @irz_invalid_pointer | 101 | |
| @irz_invalid_struct_type | 102 | |
| @irz_struct_not_found | 103 | |
| @irz_struct_name_mismatch | 104 | |
| @irz_invalid_struct_order | 105 | |
| @irz_cee_call_failure | 998 | |
| @irz_dli_call_failure | 999 |
Ejemplo de invocación:
01: /* Invocar la API IRZQGETS para recuperar la estructura de lenguaje
02: * del cuerpo SOAP de la cola de mensajes de IMS.
03: */
04: @irz_struct_name = 'RequestBodyStruct';
05: @irz_cee_feedback_ptr = addr(@irz_cee_feedback);
06: @irz_debug = '0'b;
07:
08: @return_code =
09: IRZQGETS(@irz_async_msg_header_ptr,
10: @irz_iopcb_mask_ptr, @irz_soap_body_struct,
11: @irz_struct_name, @irz_struct_ptr,
12: @irz_struct_size, @irz_cee_feedback_ptr,
13: @irz_debug);
14:
15: if (@return_code != @irz_success) then do;
16: display('MYMPP#handle_myOperation(): '
17: || 'ERROR, IRZQGETS @irz_soap_body_struct, '
18: || '@return_code: '|| trim(@return_code) || '.');
19: return;
20: end; else do;
21: RequestBodyStruct_ptr = @irz_struct_ptr;
22: end;