DFHWS2LS: WSDL to high-level language conversion

The DFHWS2LS procedure generates a high-level language data structure and a web service binding file from a web service description. You can use DFHWS2LS when you expose a CICS® application program as a service provider or when you construct a service requester.

Job control statements for DFHWS2LS

JOB
Starts the job.
EXEC
Specifies the procedure name (DFHWS2LS).
INPUT.SYSUT1 DD
Specifies the input. The input parameters are usually specified in the input stream. However, they can be defined in a data set or in a member of a partitioned data set.

Symbolic parameters

The following symbolic parameters are defined in DFHWS2LS:

JAVADIR = path
Specifies the name of the Java™ directory that is used by DFHWS2LS. The value of this parameter is appended to /usr/lpp/ to produce a complete path name of /usr/lpp/ path .
Typically, you do not specify this parameter. The default value is the value that was supplied to the CICS installation job (DFHISTAR) in the JAVADIR parameter.
PATHPREF = prefix
Specifies an optional prefix that extends the z/OS® UNIX directory path used on other parameters. The default is the empty string.
Typically, you do not specify this parameter. The default value is the value that was supplied to the CICS installation job (DFHISTAR) in the PATHPREF parameter.
TMPDIR = tmpdir
Specifies the location of a directory in z/OS UNIX that DFHWS2LS uses as a temporary workspace. The user ID under which the job runs must have read and write permission to this directory.
The default value is /tmp.
TMPFILE = tmpprefix
Specifies a prefix that DFHWS2LS uses to construct the names of the temporary workspace files.
The default value is WS2LS.
USSDIR = path
Specifies the name of the CICS TS directory in the UNIX system services file system. The value of this parameter is appended to /usr/lpp/cicsts/ to produce a complete path name of /usr/lpp/cicsts/ path .
Typically, you do not specify this parameter. The default value is the value that was supplied to the CICS installation job (DFHISTAR) in the USSDIR parameter.
SERVICE = value
Use this parameter only when directed to do so by IBM® Support.

The temporary work space

DFHWS2LS creates the following three temporary files at run time:
  • tmpdir / tmpprefix .in
  • tmpdir / tmpprefix .out
  • tmpdir / tmpprefix .err
where:
  • tmpdir is the value specified in the TMPDIR parameter.
  • tmpprefix is the value specified in the TMPFILE parameter.
The default names for the files, when TMPDIR and TMPFILE are not specified, are as follows:
  • /tmp/WS2LS.in
  • /tmp/WS2LS.out
  • /tmp/WS2LS.err
Important: DFHWS2LS does not lock access to the z/OS UNIX files or the data set members. Therefore, if two or more instances of DFHWS2LS run concurrently, and use the same temporary workspace files, nothing prevents one job overwriting the workspace files while another job is using them, leading to unpredictable failures.

Therefore, you are advised to devise a naming convention, and operating procedures, that avoid this situation. For example, you can use the system symbolic parameter SYSUID to generate workspace file names that are unique to an individual user. These temporary files are deleted before the end of the job.

Important: The utility will only run under the default USS shell. If you have configured a different shell (such as the bash shell) to launch, based on your .profile, then the utility will fail to run without issuing any error messages. If you use a different shell you must alter the configuration of your .profile to use the default USS shell before running the utility.

Input parameters for DFHWS2LS

Read syntax diagramSkip visual syntax diagramPDSLIB= valuePDSCP= valueREQMEM= valueRESPMEM= valueLANG=COBOLLANG=PLI-ENTERPRISELANG=PLI-OTHERLANG=CLANG=CPPSTRUCTURE=(request,response)PGMNAME= valueURI= valuePGMINT=CHANNELCONTID= valuePGMINT=COMMAREATRANSACTION= nameUSERID= idMAPPING-LEVEL=1.0MAPPING-LEVEL=1.1MAPPING-LEVEL=1.2Advanced data mapping (mapping level 1.2 and higher)MAPPING-LEVEL=2.0MAPPING-LEVEL=2.1Advanced data mapping (mapping level 2.1 and higher)MAPPING-LEVEL=2.2Advanced data mapping (mapping level 2.2 and higher)MAPPING-LEVEL=3.0DATETIME=PACKED15DATETIME=STRINGDATA-TRUNCATION=DISABLEDDATA-TRUNCATION=ENABLEDMAPPING-LEVEL=4.0Advanced data mapping (mapping level 4.0 and higher)MAPPING-LEVEL=4.1Advanced data mapping (mapping level 4.1 and higher)MAPPING-LEVEL=4.2Advanced data mapping (mapping level 4.2 and higher)MAPPING-LEVEL=4.3Advanced data mapping (mapping level 4.3 and higher)MAPPING-OVERRIDES=SAME-AS-MAPPING-LEVELHYPHENS-AS-UNDERSCORESLESS-DUP-NAMESNO-ARRAY-NAME-INDEXINGUNDERSCORES-AS-HYPHENSMINIMUM-RUNTIME-LEVEL=MINIMUMMINIMUM-RUNTIME-LEVEL=1.0MINIMUM-RUNTIME-LEVEL=1.1MINIMUM-RUNTIME-LEVEL=1.2MINIMUM-RUNTIME-LEVEL=2.0MINIMUM-RUNTIME-LEVEL=2.1Advanced data mapping (runtime level 2.1 and higher)MINIMUM-RUNTIME-LEVEL=2.2Advanced data mapping (runtime level 2.2 and higher)MINIMUM-RUNTIME-LEVEL=3.0Advanced data mapping (runtime level 3.0 and higher)MINIMUM-RUNTIME-LEVEL=4.0Advanced data mapping (runtime level 4.0 and higher)MINIMUM-RUNTIME-LEVEL=4.1Advanced data mapping (runtime level 4.1 and higher)MINIMUM-RUNTIME-LEVEL=4.2Advanced data mapping (runtime level 4.2 and higher)MINIMUM-RUNTIME-LEVEL=4.3Advanced data mapping (runtime level 4.3 and higher)MINIMUM-RUNTIME-LEVEL=CURRENTDATA-SCREENING=ENABLEDDATA-SCREENING=DISABLED HTTPPROXY=domain nameIP address: port number HTTPPROXY-USERNAME= value HTTPPROXY-PASSWORD= value BINDING= valueCCSID= valueNAME-TRUNCATION=RIGHTNAME-TRUNCATION=LEFTLOGFILE= valueOPERATIONS= valueSYNCONRETURN=NOSYNCONRETURN=YESWSBIND= valueWSDL= valueWSDL-SERVICE= valueWSRR-SERVER= scheme://domain nameIP address: port number  WSRR-NAME= valueWSRR-NAMESPACE= valueWSRR-USERNAME= valueWSRR-PASSWORD= valueWSRR-VERSION= valueSSL-KEYSTORE= valueSSL-KEYPWD= valueSSL-TRUSTSTORE= valueSSL-TRUSTPWD= value1WIDE-COMP3=FULLWIDE-COMP3= NOWIDE-COMP3= YES
Advanced data mapping (mapping level 1.2 and higher)
Read syntax diagramSkip visual syntax diagramCHAR-VARYING=NOCHAR-VARYING=NULLCHAR-VARYING=YESCHAR-VARYING-LIMIT=32767CHAR-VARYING-LIMIT= valueCHAR-MULTIPLIER=1CHAR-MULTIPLIER= valueDEFAULT-CHAR-MAXLENGTH=255DEFAULT-CHAR-MAXLENGTH= valueDEFAULT-FRACTION-DIGITS=3DEFAULT-FRACTION-DIGITS= value
Advanced data mapping (mapping level 2.1 and higher)
Read syntax diagramSkip visual syntax diagramINLINE-MAXOCCURS-LIMIT=1INLINE-MAXOCCURS-LIMIT= value
Advanced data mapping (mapping level 2.2 and higher)
Read syntax diagramSkip visual syntax diagramPDSMEM= value
Advanced data mapping (runtime level 2.1 and higher)
Read syntax diagramSkip visual syntax diagramXML-ONLY=FALSEXML-ONLY=TRUE
Advanced data mapping (runtime level 3.0 and higher)
Read syntax diagramSkip visual syntax diagramWSADDR-EPR-ANY=FALSEWSADDR-EPR-ANY=TRUE
Advanced data mapping (mapping level 4.2 and higher)
Read syntax diagramSkip visual syntax diagramADDITIONAL-PROPERTIES-DEFAULT=FALSEADDITIONAL-PROPERTIES-DEFAULT=TRUEADDITIONAL-PROPERTIES-MAX=UNBOUNDEDADDITIONAL-PROPERTIES-MAX= valueADDITIONAL-PROPERTIES-SIZE=255ADDITIONAL-PROPERTIES-SIZE= value
Notes:
  • 1 Each of the WSRR parameters that can be specified when the WSRR-SERVER parameter is set can be specified only once.

Parameter use

  • You can specify the input parameters in any order.
  • Each parameter must start on a new line.
  • A parameter, and its continuation character, if you use one, must not extend beyond column 72; columns 73 to 80 must contain blanks.
  • If a parameter is too long to fit on a single line, use an asterisk (*) character at the end of the line to indicate that the parameter continues on the next line. Everything, including spaces, before the asterisk is considered part of the parameter. For example:
    WSBIND=wsbinddir*
    						/app1
    is equivalent to
    WSBIND=wsbinddir/app1
  • A # character in the first character position of the line is a comment character. The line is ignored.
  • A comma in the last character position of the line is an optional line separator, and is ignored.

Parameter descriptions

ADDITIONAL-PROPERTIES-DEFAULT = { true | false }
Indicates whether JSON schema objects that do not explicitly declare support for Additional Properties are interpreted as supporting them or not. Additional JSON properties are any properties within a JSON object that are not pre-defined in the JSON Schema. These properties are typically rejected by the data transformation mechanism as unexpected extra data. If ADDITIONAL-PROPERTIES-DEFAULT is set to TRUE, or if the JSON schema explicitly sets additionalProperties:true for an object, then space is allocated in the generated copybooks to hold such values. Applications can interact with those values using the associated fields in the copybooks.

You can use this parameter at a mapping level of 4.2 or higher.

ADDITIONAL-PROPERTIES-MAX = { 0-20 | UNBOUNDED }
Indicates how many Additional Properties are supported for a JSON object that supports them. See ADDITIONAL-PROPERTIES-DEFAULT. The generated copybooks will contain structures suitable for addressing any additional properties. By default, there is no maximum constraint placed on the number of properties that are supported. The copybooks are generated in a similar fashion to arrays with no constraints and use containers. This parameter can be used to apply a maximum constraint that can be used in combination with the INLINE-MAXOCCURS-LIMIT parameter to cause a fixed length array to be allocated for the maximum number of properties, thereby avoiding the need for containers.

You can use this parameter at a mapping level of 4.2 or higher.

ADDITIONAL-PROPERTIES-SIZE = { 16-32767 | 255 }
Indicates the maximum size for each of the JSON additional properties. If a JSON object supports additional properties, as defined by ADDITIONAL-PROPERTIES-DEFAULT, then the generated copybooks will have bindings to support properties up to the number specified by ADDITIONAL-PROPERTIES-MAX. By default, the maximum value supported for each additional property is 255 characters. A field of that size will be generated into the copybooks that are produced. This size can be customized by setting the ADDITIONAL-PROPERTIES-SIZE parameter. For example, a JSON object is processed that is found to contain the following property:

"example": { "notes": "this extra property was not defined in the JSON Schema" }

If the copybooks have been generated to support additional properties, then that entire value will be passed to the application for processing. The value begins with the leading quotation mark before the property's key, and ends with the trailing right brace in the property's value. It's approximately 100 characters in this example. The value used for ADDITIONAL-PROPERTIES-SIZE must be large enough to hold the largest such value that might occur. If the allocated buffer is too small for the value that is processed, an error response is generated.

You can use this parameter at a mapping level of 4.2 or higher.

BINDING = value
If the web service description contains more than one <wsdl:Binding> element, use this parameter to specify which one is to be used to generate the language structure and web service binding file. Specify the value of the name attribute that is used on the <wsdl:Binding> element in the web service description.
CCSID = value
Specifies the CCSID that is used at run time to encode character data in the application data structure. The value of this parameter overrides the value of the LOCALCCSID system initialization parameter. The value must be an EBCDIC CCSID that is supported by Java and z/OS conversion services (see z/OS Unicode Services User's Guide and Reference ). If you do not specify this parameter, the application data structure is encoded using the CCSID specified in the system initialization parameter.

You can use this parameter with any mapping level.

CHAR-MULTIPLIER = { 1 | value }
Specifies the number of bytes to allow for each character when the mapping level is 1.2 or later. The value of this parameter can be a positive integer in the range of 1 - 2,147,483,647. All nonnumeric character-based mappings, are subject to this multiplier. Binary, numeric, zoned, and packed decimal fields are not subject to this multiplier.

This parameter can be useful if, for example, you are planning to use DBCS characters where you might opt for a multiplier of 3 to allow space for potential shift-out and shift-in characters around every double-byte character at run time.

When you set CCSID=1200 (indicating UTF-16), the only valid values for CHAR-MULTIPLIER are 2 or 4. When you use UTF-16, the default value is 2 . Use CHAR-MULTIPLIER=2 when you expect application data to contain characters that require 1 UTF-16 encoding unit. Use CHAR-MULTIPLIER=4 when you expect application data to contain characters that require 2 UTF-16 encoding units.
Note: Setting CHAR-MULTIPLIER to 1 does not preclude the use of DBCS characters, and setting it to 2 does not preclude the use of UTF-16 surrogate pairs. However, if wide characters are routinely used then some valid values will not fit into the allocated field. If a larger CHAR-MULTIPLIER value is used, it can be possible to store more characters in the allocated field than are valid in the XML. Care must be taken to conform to the appropriate range restrictions.
CHAR-VARYING = { NO | NULL | YES }
Specifies how variable-length character data is mapped when the mapping level is 1.2 or higher. Variable-length binary data types are always mapped to either a container or a varying structure.
Note: If PGMINT is set to COMMAREA, variable length strings cannot be mapped into containers, and this parameter has no effect.

If you do not specify this parameter, the default mapping depends on the language specified.

You can select these options:

NO
Variable-length character data is mapped as fixed-length strings.
NULL
Variable-length character data is mapped to null-terminated strings.
YES
Variable-length character data is mapped to a CHAR VARYING data type in PL/I. In the COBOL, C, and C++ languages, variable-length character data is mapped to an equivalent representation that comprises two related elements: data-length and the data.
CHAR-VARYING-LIMIT = { 32767 | value }
Specifies the maximum size of binary data and variable-length character data that is mapped to the language structure when the mapping level is 1.2 or higher. If the character or binary data is larger than the value specified in this parameter, it is mapped to a container and the container name is used in the generated language structure. The value can range from 0 to the default 32,767 bytes.
CONTID = value
In a service provider, specifies the name of the container that holds the top-level data structure used to represent a SOAP message.

The length of the container that CICS passes to the target application program is the greater of the lengths of the request container and the response container.

DATA-SCREENING = { ENABLED | DISABLED }
Specifies whether application supplied data is screened for errors.
ENABLED
Any application-supplied runtime data that is inconsistent with the language structure, is treated as an error, and message DFHPI1010 is issued. An error response is returned to the application.
DISABLED
Values in application-supplied runtime data that are inconsistent with the language structure are replaced by default values. For example, a zero replaces a bad value in a numeric field. Message DFHPI1010 is not issued and a normal response is returned to the application. This feature can be used to avoid INVALID_PACKED_DEC and INVALID_ZONED_DEC error responses that are generated from uninitialized output fields.
DATA-TRUNCATION = { DISABLED | ENABLED }
Specifies whether variable length data is tolerated in a fixed-length field structure:
DISABLED
If the data is less than the fixed length that CICS is expecting, CICS rejects the truncated data and issues an error message.
ENABLED
If the data is less than the fixed length that CICS is expecting, CICS tolerates the truncated data and processes the missing data as null values.
DATETIME = { PACKED15 | STRING }
Specifies how <xsd:dateTime> elements are mapped to the language structure.
PACKED15
The default is that any <xsd:dateTime> element is processed as a timestamp and is mapped to CICS ABSTIME format.
STRING
The <xsd:dateTime> element is processed as text.
DEFAULT-CHAR-MAXLENGTH = { 255 | value }
Specifies the default array length of character data in characters for mappings where no length is implied in the web service description document, when the mapping level is 1.2 or higher. The value of this parameter can be a positive integer in the range of 1 - 2,147,483,647.
DEFAULT-FRACTION-DIGITS = { 3 | value }
Specifies the default number of fraction digits to use on an XML decimal schema type. The default is 3. For COBOL, the valid range is 0-17, or 0-30 if parameter WIDE-COMP3 is being used. For C or PLI the valid range is 0-30.
HTTPPROXY = { domain name : port number | IP address : port number }
If your WSDL contains references to other WSDL files that are located on the internet, and the system on which you are running DFHWS2LS uses a proxy server to access the internet, specify the domain name or IP address and the port number of the proxy server. For example:
HTTPPROXY=proxy.example.com:8080

In other cases, this parameter is not required.

HTTPPROXY-PASSWORD = value
Specifies the HTTP proxy password that must be used with HTTPPROXY-USERNAME if the system on which you are running DFHWS2LS uses an HTTP proxy server to access the Internet, and the HTTP proxy server uses basic authentication. You can use this parameter only when you also specify HTTPPROXY.
HTTPPROXY-USERNAME = value
Specifies the HTTP proxy username that must be used with HTTPPROXY-PASSWORD if the system on which you are running DFHWS2LS uses an HTTP proxy server to access the Internet, and the HTTP proxy server uses basic authentication. You can use this parameter only when you also specify HTTPPROXY.
INLINE-MAXOCCURS-LIMIT = { 1 | value }
Specifies whether or not inline variable repeating content is used based on the maxOccurs attribute. Variably repeating content that is mapped inline is placed in the current container with the rest of the generated language structure. The variably repeating content is stored in two parts, as a counter that stores the number of occurrences of the data and as an array that stores each occurrence of the data. The alternative mapping for variably repeating content is container-based mapping, which stores the number of occurrences of the data and the name of the container where the data is placed. Storing the data in a separate container has performance implications that might make inline mapping preferable.

The INLINE-MAXOCCURS-LIMIT parameter is available only at mapping level 2.1 onwards. The value of INLINE-MAXOCCURS-LIMIT can be a positive integer in the range of 0 - 32,767. A value of 0 indicates that inline mapping is not used. A value of 1 ensures that optional elements are mapped inline. If the value of the maxOccurs attribute is greater than the value of INLINE-MAXOCCURS-LIMIT , container-based mapping is used; otherwise inline mapping is used.

When deciding if you want variably repeating lists to be mapped inline, consider the length of a single item of recurring data. If few instances of long length occur, container-based mapping is preferable; if many instances of short length occur, inline mapping is preferable.

LANG = COBOL
Specifies that the programming language of the high-level language structure is COBOL.
LANG = PLI-ENTERPRISE
Specifies that the programming language of the high-level language structure is Enterprise PL/I.
LANG = PLI-OTHER
Specifies that the programming language of the high-level language structure is a level of PL/I other than Enterprise PL/I.
LANG = C
Specifies that the programming language of the high-level language structure is C.
LANG = CPP
Specifies that the programming language of the high-level language structure is C++.
LOGFILE = value
The fully qualified z/OS UNIX name of the file into which DFHWS2LS writes its activity log and trace information. DFHWS2LS creates the file, but not the directory structure, if it does not already exist.

Typically, you do not use this file, but it might be requested by the IBM service organization if you encounter problems with DFHWS2LS.

MAPPING-LEVEL = { 1.0 | 1.1 | 1.2 | 2.0 | 2.1 | 2.2 | 3.0 | 4.0 | 4.1 | 4.2| 4.3}
Specifies the level of mapping that DFHWS2LS uses when generating the web service binding file and language structure. You can select these options:
1.0
This mapping level is the default. The web service binding file and language structure are generated using CICS TS 3.1 mapping levels.
1.1
XML attributes and <list> and <union> data types are mapped to the language structure. Character and binary data that have a maximum length of more than 32,767 bytes are mapped to a container. The container name is created in the language structure.
1.2
Use the CHAR-VARYING and CHAR-VARYING-LIMIT parameters to control how character data is mapped and processed at run time. If you do not specify either of these parameters, binary and character data that have a maximum length of less than 32,768 bytes are mapped to a VARYING structure for all languages except C++, where character data is mapped to a null-terminated string.
2.0
Use this mapping level in a region at CICS TS 3.2 or later to take advantage of the enhancements to the mapping between the language structure and web services binding file.
2.1
Use this mapping level with a region at CICS TS 3.2 with APAR PK59794, or later for <xsd:any> and xsd:anyType support, the option to map variably repeating content inline with the INLINE-MAXOCCURS-LIMIT parameter, and support for minOccurs="0" on <xsd:sequence> , <xsd:choice> , and <xsd:all>.
2.2
Use this mapping level with a region at CICS TS 3.2 with APAR PK69738 or later to take advantage of the following support:
  • Elements with fixed values
  • Enhanced support for <xsd:choice> elements
  • Abstract data types
  • Abstract elements
  • Substitution groups
3.0
Use this mapping level with a region at CICS TS 4.1 or later. At this mapping level you can transform timestamps to CICS ABSTIME format.
4.0
Use this mapping level with a region at CICS TS 5.2 or later when you want to use UTF-16.
4.1
For truncatable array support, use this mapping level with a region at CICS V5.2 with APAR PI67641, or later.
4.2
Use this mapping level with a region at CICS TS 5.4 with APAR PI86039, or later.
4.3
Use this mapping level with a region at CICS TS 5.4 with APAR PI88519, or later.

For more information about mapping levels, see Mapping levels for the CICS assistants.

MAPPING-OVERRIDES = { SAME-AS-MAPPING-LEVEL | HYPHENS-AS-UNDERSCORES | LESS-DUP-NAMES | NO-ARRAY-NAME-INDEXING | UNDERSCORES-AS-HYPHENS }
Specifies whether the default behavior is overridden for the specified mapping level when generating language structures.
Note: Any of the sub options may be used in a comma delimited list. The options are not mutually exclusive; they are combinatorial and unordered.
SAME-AS-MAPPING-LEVEL
This parameter generates language structures in the same style as the mapping level. This is the default.
HYPHENS-AS-UNDERSCORES
For PL/I only. This parameter converts any hyphens in the WSDL document to underscores rather than the character X, to improve the readability of the generated PL/I language structures. For more information, see XML schema to PL/I mapping.
LESS-DUP-NAMES
This parameter generates non-structural structure field names with _value at the end of the name to enable direct referencing to the field. For example, in the following PLI language structure, when MAPPING-OVERRIDES=LESS-DUP-NAMES is specified, level 12 field streetName is suffixed with _value :
09 streetName,
12 streetName CHAR(255) VARYING
UNALIGNED,
12 filler BIT (7),
12 attr_nil_streetName_value BIT (1),
The resulting structure is as follows:
09 streetName,
12 streetName_value CHAR(255) VARYING
UNALIGNED,
12 filler BIT (7),
12 attr_nil_streetName_value BIT (1),
NO-ARRAY-NAME-INDEXING
For COBOL and Enterprise PL/I only. Ensures that the field names within an array are unique only within the scope of the higher level structure.
UNDERSCORES-AS-HYPHENS
This option is enabled automatically at Mapping level 4.0.
For COBOL only. This parameter converts any underscores in the WSDL document to hyphens, rather than the character X, to improve the readability of the generated COBOL language structures. If any field name clashes occur, the fields are numbered to ensure they are unique. For more information, see XML schema to COBOL mapping.
MINIMUM-RUNTIME-LEVEL = { MINIMUM | 1.0 | 1.1 | 1.2 | 2.0 | 2.1 | 2.2 | 3.0 | 4.0 | 4.1 | 4.2 | 4.3|CURRENT }
Specifies the minimum CICS runtime environment into which the web service binding file can be deployed. If you select a level that does not match the other parameters that you have specified, you receive an error message. You can select these options:
MINIMUM
The lowest possible runtime level of CICS is allocated automatically given the parameters that you selected.
1.0
The generated web service binding file deploys successfully into a CICS TS 3.1 region that does not have APARs PK15904 and PK23547 applied. Some parameters are not available at this runtime level.
1.1
The generated web service binding file deploys successfully into a CICS TS 3.1 region that has at least APAR PK15904 applied. You can use a mapping level of 1.1 or earlier for the MAPPING-LEVEL parameter. Some parameters are not available at this runtime level.
1.2
The generated web service binding file deploys successfully into a CICS TS 3.1 region that has both APAR PK15904 and PK23547 applied. You can use a mapping level of 1.2 or earlier for the MAPPING-LEVEL parameter. Some parameters are not available at this runtime level.
2.0
The generated web service binding file deploys successfully into a CICS TS 3.2 or later region. You can use a mapping level of 2.0 or earlier for the MAPPING-LEVEL parameter. Some parameters are not available at this runtime level.
2.1
The generated web service binding file deploys successfully into a region at CICS TS 3.2 with APAR PK59794 or later. You can use a mapping level of 2.1 or earlier for the MAPPING-LEVEL parameter. Some parameters are not available at this runtime level.
2.2
The generated web service binding file deploys successfully into a region at CICS TS 3.2 region with APAR PK69738 or later. With this runtime level, you can use a mapping level of 2.2 or earlier for the MAPPING-LEVEL parameter. Some parameters are not available at this runtime level.
3.0
The generated web service binding file deploys successfully into a region at CICS TS 4.1 or later. With this runtime level, you can use a mapping level of 3.0 or earlier for the MAPPING-LEVEL parameter. Some parameters are not available at this runtime level.
4.0
The generated web service binding file deploys successfully into a region at CICS TS 5.2 or later. With this runtime level, you can use a mapping level of 4.0 or earlier for the MAPPING-LEVEL parameter. You can use any optional parameter at this level.
4.1
The generated web service binding file deploys successfully into a region at CICS TS 5.2 with APAR PI67641, or later. With this runtime level, you can use a mapping level of 4.1 or earlier for the MAPPING-LEVEL parameter.
4.2
The generated web service binding file deploys successfully into a region at CICS TS V5.4 with APAR PI86039, or later. With this runtime level, you can use a mapping level of 4.2 or earlier for the MAPPING-LEVEL parameter.
4.3
The generated web service binding file deploys successfully into a region at CICS TS 5.4 with APAR PI88519, or later. With this runtime level, you can use a mapping level of 4.3 or earlier for the MAPPING-LEVEL parameter.
CURRENT
The generated web service binding file deploys successfully into a CICS region at the same runtime level as the one you are using to generate the web service binding file.
NAME-TRUNCATION = { LEFT | RIGHT }
Specifies whether XML element names are truncated from the left or the right. The CICS web services assistant truncates XML element names to the appropriate length for the high-level language specified; by default names are truncated from the right.
OPERATIONS = value
For web service requester applications, specifies a subset of valid <wsdl:Operation> elements from the web service description that is used to generate the web service binding file. Each <wsdl:Operation> element is separated by a space; the list can span more than one line if necessary. You can use this parameter for both WSDL 1.1 and WSDL 2.0 documents.
PDSCP = value
Specifies the code page used in the partitioned data set members specified in the REQMEM and RESPMEM parameters, where value is a CCSID number or a Java code page number. If this parameter is not specified, the z/OS UNIX System Services code page is used. For example, you might specify PDSCP = 037.
PDSLIB = value
Specifies the name of the partitioned data set that contains the generated high-level language. The data set members used for the request and response are specified in the REQMEM and RESPMEM parameters respectively.
PDSMEM = value
Specifies a 1- to 6-character prefix that DFHWS2LS uses to generate the names of the partitioned data set members that will contain the high-level language structures for abstract data types. The member name is generated by appending a number to the prefix, with a maximum member name length of 8 characters.

Use this parameter at a mapping level of 2.2 or higher for naming the language structures associated with abstract data types. If the PDSMEM parameter is omitted, language structures for abstract data types are named using the value in the REQMEM parameter.

PGMINT = { CHANNEL | COMMAREA }
For a service provider, specifies how CICS passes data to the target application program:
CHANNEL
CICS uses a channel interface to pass data to the target application program.
COMMAREA
CICS uses a communication area to pass data to the target application program.

This parameter is ignored when the output from DFHWS2LS is used in a service requester.

When the target application program has processed the request, it must use the same mechanism to return the response. If the request was received in a communication area, the response must be returned in the communication area; if the request was received in a container, the response must be returned in a container. The length of the communication area or container that CICS passes to the target application program is the greater of the lengths of the request communication area or container and the response communication area or container.

PGMNAME = value
Specifies the name of a CICS PROGRAM resource.
When DFHWS2LS is used to generate a web service binding file that will be used in a service provider, you must supply this parameter. It specifies the resource name of the application program that is exposed as a web service.
When DFHWS2LS is used to generate a web service binding file that will be used in a service requester, omit this parameter.
REQMEM = value
Specifies a 1- to 6-character prefix that DFHWS2LS uses to generate the names of the partitioned data set members that will contain the high-level language structures for the web service request:
  • For a service provider, the web service request is the input to the application program.
  • For a service requester, the web service request is the output from the application program.
DFHWS2LS generates a partitioned data set member for each operation. The member name is generated by appending a number to the prefix, with a maximum member name length of 8 characters.

Although this parameter is optional, you must specify it if the web service description contains a definition of a request.

RESPMEM = value
Specifies a 1- to 6-character prefix that DFHWS2LS uses to generate the names of the partitioned data set members that will contain the high-level language structures for the web service response:
  • For a service provider, the web service response is the output from the application program.
  • For a service requester, the web service response is the input to the application program.
DFHWS2LS generates a partitioned data set member for each operation. The member name is generated by appending a number to the prefix, with a maximum member name length of 8 characters.

Omit this parameter if no response is involved; that is, for one-way messages.

SSL-KEYSTORE = value
This optional parameter specifies the fully qualified location of the key store file.
Use this parameter if you want the web services assistant to use secure sockets layer (SSL) encryption to communicate across a network to an IBM WebSphere® Service Registry and Repository (WSRR).
SSL-KEYPWD = value
This optional parameter specifies the password for the key store.
Use this parameter if you want the web services assistant to use secure sockets layer (SSL) encryption to communicate across a network to an IBM WebSphere Service Registry and Repository (WSRR).
SSL-TRUSTSTORE = value
This optional parameter specifies the fully qualified location of the trust store file.
Use this parameter if you want the web services assistant to use secure sockets layer (SSL) encryption to communicate across a network to an IBM WebSphere Service Registry and Repository (WSRR).
SSL-TRUSTPWD = value
This optional parameter specifies the password for the trust store.
Use this parameter if you want the web services assistant to use secure sockets layer (SSL) encryption to communicate across a network to an IBM WebSphere Service Registry and Repository (WSRR).
STRUCTURE = ( request , response )
For C and C++ only, specifies how the names of the request and response structures are generated.
The generated request and response structures are given names of request nn and response nn where nn is a numeric suffix that is generated to distinguish the structures for each operation.

If one or both names is omitted, the structures have the same name as the partitioned data set member names generated from the REQMEM and RESPMEM parameters that you specify.

SYNCONRETURN = { NO | YES }
Specifies whether the remote web service can issue a sync point.
NO
The remote web service cannot issue a sync point. This value is the default. If the remote web service issues a sync point, it fails with an ADPL abend.
YES
The remote web service can issue a sync point. If you select YES , the remote task is committed as a separate unit of work when control returns from the remote web service. If the remote web service updates a recoverable resource and a failure occurs after it returns, the update to that resource cannot be backed out.
TRANSACTION = name
In a service provider, this parameter specifies the 1- to 4-character name of an alias transaction that can start the pipeline. The value of this parameter is used to define the TRANSACTION attribute of the URIMAP resource when it is created automatically using the PIPELINE scan command.
Acceptable characters:

A-Z a-z 0-9 $ @ # _ < >

URI = value
In a service provider, this parameter specifies the relative URI that a client uses to access the web service. CICS uses the value specified when it generates a URIMAP resource from the web service binding file created by DFHWS2LS. The parameter specifies the path component of the URI to which the URIMAP definition applies.
In a service requester, the URI of the target web service is not specified with this parameter. CICS does not generate a URIMAP resource for a service requester. You can define your own URIMAP resource for service requesters to use when they make client requests to the URI of the target web service. When a service requester issues the INVOKE SERVICE command, CICS uses the soap:address location from the wsdl:port specified in the web service description if present. You can override that and specify a different URI using the URIMAP or URI options on the INVOKE SERVICE command.
USERID = id
In a service provider, this parameter specifies a 1- to 8-character user ID, which can be used by any web client. For an application-generated response or a web service, the alias transaction is attached under this user ID. The value of this parameter is used to define the USERID attribute of the URIMAP resource when it is created automatically using the PIPELINE scan command.
Acceptable characters:

A-Z a-z 0-9 $ @ #

WIDE-COMP3 = { FULL | NO | YES }
Controls the maximum size of the packed decimal variable length in the generated COBOL or PL/I language structure.
FULL
For COBOL and PL/I. DFHJS2LS generates a packed decimal field that is large enough to hold all valid values. The maximum size is 31 digits. This is the default.
NO
For COBOL only. DFHJS2LS limits the packed decimal variable length to 18 when generating the COBOL language structure type COMP-3. If the packed decimal size is greater than 18, message DFHPI9022W is issued to indicate that the specified type is being restricted to a total of 18 digits.
YES
For COBOL only. DFHJS2LS supports the maximum size of 31 when generating the COBOL language structure type COMP-3.
Note: The NO and YES options generate fields that are unable to represent all valid values; the FULL option avoids this problem. However, the FULL option does allow some invalid values to be represented in the packed decimal field. For example, if a schema indicates that there are a maximum of five digits and a maximum of two fractional digits, the FULL option will generate a packed decimal field that allows for seven digits, and this allows space for valid values such as 25000 and 999.99, but also provides space for some invalid values such as 9999.99. When you use the FULL option, take care not to generate invalid values in application data.
WSADDR-EPR-ANY = { TRUE | FALSE }
Specifies whether CICS transforms a WS-Addressing endpoint reference (EPR) into its components parts in the language structures or treats the EPR as an <xsd:any> type. Treating the EPR as an <xsd:any> type means that the WSACONTEXT BUILD API can use the EPR XML directly.
FALSE
DFHWS2LS behaves typically, transforming the XML to a high-level language structure.
TRUE
Setting this option to TRUE means that at run time CICS treats the whole EPR as an <xsd:any> type and places the EPR XML into a container that can be referenced by the application. The application can use the EPR XML with the WSACONTEXT BUILD API to construct an EPR in the addressing context.
This parameter is available only at runtime level 3.0 onwards.
For more information on using this parameter, see Parameters required by DFHWS2LS to support WS-Addressing.
WSBIND = value
The fully qualified z/OS UNIX name of the web service binding file. DFHWS2LS creates the file, but not the directory structure, if it does not already exist. The file extension defaults to .wsbind.
WSDL = value
The fully qualified z/OS UNIX name of the file that contains the web service description. The file name is restricted to characters that are valid for a URL and in particular may not contain any # character. If you are using WSRR to retrieve the WSDL document, this parameter specifies the location on the file system to which a local copy of the WSDL document will be written.
WSDL-SERVICE = value
Specifies the wsdl:Service element that is used when the web service description contains more than one Service element for a Binding element. If you specify a value for the BINDING parameter, the Service element that you specify for this parameter must be consistent with the specified Binding element. You can use this parameter with either WSDL 1.1 or WSDL 2.0 documents.
WSRR-NAME = value
Specifies the name of the WSDL document to retrieve from WSRR. Use this parameter only when the WSRR-SERVER parameter is specified.
WSRR-NAMESPACE = value
Specifies the namespace of the WSDL document to retrieve from WSRR. You can optionally use this parameter when the WSRR-SERVER parameter is specified to fully qualify the WSDL document name specified in the WSRR-NAME parameter.
WSRR-PASSWORD = value
Use this optional parameter if you must enter a password to access WSRR.
If the WSRR-USERNAME parameter is specified, you must also specify this parameter.
Use this parameter only when the WSRR-SERVER parameter is specified.
WSRR-SERVER = { domain name : port number | IP address : port number }
Use this parameter to specify the location of the IBM WebSphere Service Registry and Repository (WSRR) server. If this parameter is specified, WSRR parameter validation is used.
WSRR-USERNAME = value
Use this optional parameter if you are required to specify a user name to access WSRR. This user name is used by WSRR to set the owner property.
Use this parameter only when the WSRR-SERVER parameter is specified.
WSRR-VERSION = value
Specifies the version of the WSDL document to retrieve from WSRR. You can use this parameter only when the WSRR-SERVER parameter is specified.
XML-ONLY = { TRUE | FALSE }
Specifies whether or not CICS transforms the XML in the SOAP message to application data. Use the XML-ONLY parameter to write web service applications that process the XML themselves.
TRUE
CICS does not perform any transformations to the XML. The service requester or provider application must work with the contents of the DFHWS-BODY container directly to map data between XML and the high-level language.
FALSE
CICS transforms the XML to a high-level language.
This parameter is available only at runtime level 2.1 onwards.

Other information

  • The user ID under which DFHLS2SC runs must be configured to use UNIX System Services. The user ID must have read permission to the CICS z/OS UNIX file structure and PDS libraries and write permission to the directories specified on the LOGFILE , WSBIND , and WSDL parameters.
  • The user ID must have a sufficiently large storage allocation to run Java.
  • The JCL has a maximum parameter length of 100 characters. This can be increased by using the STDPARM statement. For more information, see z/OS UNIX System Services User's Guide.

Example


//WS2LS JOB '
accounting information
',
name,MSGCLASS=A
// SET QT=''''
//JAVAPROG EXEC DFHWS2LS,
// TMPFILE=&QT.&SYSUID.&QT
//INPUT.SYSUT1 DD *
PDSLIB=//CICSHLQ.SDFHSAMP
REQMEM=CPYBK1
RESPMEM=CPYBK2
LANG=COBOL
LOGFILE=/u/exampleapp/wsbind/example.log
MAPPING-LEVEL=3.0
MAPPING-OVERRIDES=UNDERSCORES-AS-HYPHENS
CHAR-VARYING=NULL
INLINE-MAXOCCURS-LIMIT=2
PGMNAME=DFH0XCMN
URI=exampleApp/example
PGMINT=COMMAREA
SYNCONRETURN=YES
WSBIND=/u/exampleapp/wsbind/example.wsbind
WSDL=/u/exampleapp/wsdl/example.wsdl
/*