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:
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:
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;