DFSQSETS

The DFSQSETS API creates a SOAP structure from the information in a language structure passed as input. Also, when specified, DFSQSETS copies the current SOAP structure and all previously supplied SOAP structures into the IMS Message Queue.

The structures and variables referred to in this topic are defined in DFSPWSH (see Include file DFSPWSH).

Usage:
  • Do not deallocate or otherwise invalidate structure pointers passed to DFSQSETS via the parameter @dfs_struct_ptr until you have committed the IMS multi-segment message to the IMS Message Queue by calling DFSQSETS with the @dfs_commit_structs bit set.
  • You must retrieve all structures in the IMS Message Queue using DFSQGETS before invoking DFSQSETS to put structures into it.
Limitations:
  • DFSQSETS does not support the storing of a SOAP Header structure.

Parameters:

Table 1. Parameters for DFSQSETS
Parameter Type Usage Description
@dfs_async_msg_header_ptr POINTER BYVALUE Output A pointer-by-value to the instance of @dfs_async_msg_header that the Message Processing Program (MPP) retrieves from the IMS Message Queue prior by issuing a Get Unique (GU) call using the CEETDLI interface.
Important: This instance must be passed on all calls to DFSQGETS and DFSQSETS.
@dfs_iopcb_ptr POINTER BYVALUE Input A pointer-by-value to the I/O PCB that was passed to the Message Processing Program (MPP) on entry by IMS. DFSQSETS uses this I/O PCB when invoking CEETDLI to interact with the IMS Message Queue.
Note: If the return code from DFSQSETS is 999 then inspect the I/O PCB to determine the cause of the error.
@dfs_struct_type SIGNED FIXED BIN(31) BYVALUE Input An integer-by-value specifying the type of the language structure to set in the IMS message. The following constants defined in include file DFSPWSH can be used: @dfs_soap_body_struct.
@dfs_struct_name WCHAR(100) VARYING BYADDR Input A string-by-reference containing the name of the language structure to set in the IMS message. The value of this parameter must correspond to the value of the parameter @dfs_struct_type.
@dfs_struct_ptr POINTER BYVALUE Input A pointer-by-reference to the language structure to set in the IMS message.
Note: This value must correspond to the values specified for the parameters @dfs_struct_type and @dfs_struct_name.
@dfs_struct_size SIGNED FIXED BIN(31) BYVALUE Input An integer-by-value specifying the size in bytes of the language structure pointed to by @dfs_struct_ptr.
@dfs_commit_structs BIT(1) BYVALUE Input A bit-by-value that indicating whether DFSQSETS should insert the current language structure and all previously supplied language structures into the IMS Message Queue.
@dfs_cee_feedback_ptr POINTER BYVALUE Input A pointer-by-value to an instance of @dfs_cee_feedback defining a Language Environment® Condition Token. This instance is updated each time DFSQSETS invokes Language Environment Callable Services.
Note: If the return code from DFSQSETS is 998 then use the publication Language Environment Run-Time Messages (SA22-7566-10) to inspect the contents of the condition token and determine the cause of the error.
@dfs_debug BIT(1) OPTIONAL Input An optional bit indicating whether DFSQSETS should display trace information (see Trace output for WSDL-to-PL/I segmentation APIs).

Return codes:

The return codes for DFSQSETS are constants defined in the DFSPWSH include file:

Table 2. Return codes for DFSQSETS
Type: Name: Value:
SIGNED FIXED BIN(31) @dfs_success 000
@dfs_omitted_parameter 100
@dfs_invalid_pointer 101
@dfs_invalid_struct_type 102
@dfs_struct_not_found 103
@dfs_struct_name_mismatch 104
@dfs_invalid_struct_order 105
@dfs_invalid_segment_size 109
@dfs_cee_call_failure 998
@irz_dli_call_failure 999

Example invocation of DFSQSETS

01: /* Invoke API DFSQSETS to set the SOAP body language
02: * structure and commit it to the IMS Message Queue.
03: */
04: @irz_struct_name      = 'ResponseBodyStruct';
05: @irz_struct_ptr       = ResponseBodyStruct_ptr;
06: @dfs_struct_size      = storage(ResponseBodyStruct);
07: @dfs_commit_structs   = '1'b;
08: @dfs_cee_feedback_ptr = addr(@dfs_cee_feedback);
09: @dfs_debug            = '0'b;
10:
11: @return_code =
12:    DFSQSETS(@dfs_async_msg_header_ptr,
13:    @dfs_iopcb_mask_ptr, @dfs_soap_body_struct,
14:    @dfs_struct_name, @dfs_struct_ptr,
15:    @dfs_struct_size, @dfs_commit_structs,
16:    @dfs_cee_feedback_ptr, @dfs_debug);
17:
18: if (@return_code != @dfs_success) then do;
19:    display('MYMPP#handle_myOperation(): '
20:       || 'ERROR, DFSQSETS @dfs_soap_body_struct, '
21:       || '@return_code: '|| trim(@return_code) || '.');
22:    return;
23: end;