El archivo de inclusión IRZPWSH define las estructuras PL/I utilizadas con las API de segmentación IRZQGETS, IRZQSETS, IRZXGETS y IRZXSETS.
El archivo de inclusión IRZPWSH se encuentra en el servidor z/OS, en el conjunto de datos SFEKSAMP instalado por la parte de host de Rational Developer for System z.
La Figura 1 muestra la primera parte de IRZPWSH, antes de la definición de las API de segmentación:
/* Este archivo deben incluirlo todos los MPP de proveedor de servicios IMS
* desarrollados mediante el soporte descendente RDz para IMS Enterprise
* Suite SOAP Gateway.
/********************************************************************
* Segmento de cabecera de mensaje asíncrona, simétrica y obligatoria que
* debe utilizarse con las API de IRZPWSIO: IRZQGETS, IRZQSETS, IRZXGETS, IRZXSETS.
* @version E527A9DA-8413-4FB0-AE3F-99E02FBC7E92
********************************************************************/
dcl 01 @irz_async_msg_header_ptr pointer;
dcl 01 @irz_async_msg_header unaligned
based(@irz_async_msg_header_ptr),
02 ll fixed bin (15) init(0),
02 zz fixed bin (15) init(0),
02 trancode char (08) init(''),
02 header_guid char (36) init
('E527A9DA-8413-4FB0-AE3F-99E02FBC7E92'),
02 service_context,
03 target_namespace wchar (1024) varying init(''),
03 service_name wchar (0512) varying init(''),
03 port_name wchar (0512) varying init(''),
03 operation_name wchar (0512) varying init(''),
02 language_binding,
03 soap_header_bit bit (1) aligned init('0'b),
03 soap_header,
04 header_struct_name wchar (100) varying init(''),
04 header_struct_segment_num fixed bin (31) init(0),
04 header_struct_segment_cnt fixed bin (31) init(0),
04 header_struct_size fixed bin (31) init(0),
04 header_struct_ptr pointer,
03 soap_body_bit bit (1) aligned init('0'b),
03 soap_body,
04 body_struct_name wchar (100) varying init(''),
04 body_struct_segment_num fixed bin (31) init(0),
04 body_struct_segment_cnt fixed bin (31) init(0),
04 body_struct_size fixed bin (31) init(0),
04 body_struct_ptr pointer,
03 soap_fault_bit bit (1) aligned init('0'b),
03 soap_fault,
04 fault_struct_name wchar (100) varying init(''),
04 fault_struct_segment_num fixed bin (31) init(0),
04 fault_struct_segment_cnt fixed bin (31) init(0),
04 fault_struct_size fixed bin (31) init(0),
04 fault_struct_ptr pointer;
dcl @irz_async_msg_header_size fixed bin(31)
value(storage(@irz_async_msg_header));
/********************************************************************
* Declaraciones y constantes de Bloque de comunicación de programa de E/S (IOPCB)
********************************************************************/
dcl 01 @irz_iopcb_mask_ptr pointer;
dcl 01 @irz_iopcb_mask unaligned based(@irz_iopcb_mask_ptr),
02 iopcb_lterm char(8),
02 resv char(2),
02 iopcb_status_code char(2),
02 iopcb_date decimal fixed(7,0),
02 iopcb_time decimal fixed(6,9),
02 iopcb_msg_seq_number fixed bin(31),
02 iopcb_mod_name char(8),
02 iopcb_user_id char(8);
/********************************************************************
* Constantes @param @IRZ_STRUCT_TYPE utilizadas con las API de IRZPWSIO:
* IRZQGETS, IRZQSETS.
********************************************************************/
dcl @irz_soap_header_struct fixed bin(31) value(1);
dcl @irz_soap_body_struct fixed bin(31) value(2);
dcl @irz_soap_fault_struct fixed bin(31) value(3);
/********************************************************************
* Constantes de código de retorno utilizadas con las API de IRZPWSIO:
* IRZQGETS, IRZQSETS, IRZXGETS, IRZXSETS.
********************************************************************/
dcl @irz_success fixed bin(31) value(000);
dcl @irz_omitted_parameter fixed bin(31) value(100);
dcl @irz_invalid_pointer fixed bin(31) value(101);
dcl @irz_invalid_struct_type fixed bin(31) value(102);
dcl @irz_struct_not_found fixed bin(31) value(103);
dcl @irz_struct_name_mismatch fixed bin(31) value(104);
dcl @irz_invalid_struct_order fixed bin(31) value(105);
dcl @irz_invalid_struct_size fixed bin(31) value(106);
dcl @irz_invalid_struct_name fixed bin(31) value(107);
dcl @irz_struct_already_set fixed bin(31) value(108);
dcl @irz_icon_buf_exhausted fixed bin(31) value(997);
dcl @irz_cee_call_failure fixed bin(31) value(998);
dcl @irz_dli_call_failure fixed bin(31) value(999);
/********************************************************************
* Declaraciones y constantes de interfaz CEETDLI IMS.
********************************************************************/
dcl @irz_dli_get_unique char (4) value('GU ');
dcl @irz_dli_get_next char (4) value('GN ');
dcl @irz_dli_insert char (4) value('ISRT');
dcl @irz_dli_message_exists char (2) value('CF');
dcl @irz_dli_end_segments char (2) value('QD');
dcl @irz_dli_end_messages char (2) value('QC');
dcl @irz_dli_status_ok char (2) value(' ');
dcl @irz_message_max_data fixed bin(31) value(2147123205);
dcl @irz_segment_max_data fixed bin(31) value(32763);
dcl 01 @irz_message_segment unaligned,
02 _ll signed fixed bin(15),
02 _zz bit(16),
02 _data char(@irz_segment_max_data);
/********************************************************************
* Declaraciones y constantes de Language Environment.
********************************************************************/
dcl 1 @irz_cee_feedback feedback;