DFHLS2WS: high-level language to WSDL conversion

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

The job control statements for DFHLS2WS, its symbolic parameters, its input parameters and their descriptions, and an example job help you to use this procedure.

Job control statements for DFHLS2WS

JOB
Starts the job.
EXEC
Specifies the procedure name (DFHLS2WS).
INPUT.SYSUT1 DD
Specifies the input. The input parameters are typically 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 DFHLS2WS:
JAVADIR = path
Specifies the name of the Java™ directory that is used by DFHLS2WS. 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.
SERVICE = value
Use this parameter only when directed to do so by IBM® Support.
TMPDIR = tmpdir
Specifies the location of a directory in z/OS UNIX that DFHLS2WS uses as a temporary work space. 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 DFHLS2WS uses to construct the names of the temporary workspace files.
The default value is LS2WS.
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.

The temporary work space

DFHLS2WS 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/LS2WS.in
  • /tmp/LS2WS.out
  • /tmp/LS2WS.err
Important: DFHLS2WS does not lock access to the z/OS UNIX files or the data set members. Therefore, if two or more instances of DFHLS2WS run concurrently and use the same temporary workspace files, nothing prevents one job from overwriting the workspace files while another job is using them, which might cause 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 DFHLS2WS

Read syntax diagramSkip visual syntax diagramPDSLIB= valuePDSCP= valueREQMEM= valueRESPMEM= valueREQUEST-CHANNEL= valueRESPONSE-CHANNEL= valueLANG=COBOLLANG=PLI-ENTERPRISELANG=PLI-OTHERLANG=CLANG=CPPSTRUCTURE=(DFHREQUESTrequest,DFHRESPONSEresponse) PGMNAME= valueTRANSACTION= nameUSERID= id URI= value PGMINT=CHANNELCONTID= valuePGMINT=COMMAREA MAPPING-LEVEL=1.0MAPPING-LEVEL=1.1MAPPING-LEVEL=1.2MAPPING-LEVEL=2.0MAPPING-LEVEL=2.1MAPPING-LEVEL=2.2MAPPING-LEVEL=3.0DATETIME=UNUSEDDATETIME=PACKED15DATA-TRUNCATION=DISABLEDDATA-TRUNCATION=ENABLEDCHAR-VARYING=COLLAPSECHAR-VARYING=BINARYMAPPING-LEVEL=4.0MAPPING-LEVEL=4.1MAPPING-LEVEL=4.2MAPPING-LEVEL=4.3CHAR-OCCURS=STRINGCHAR-OCCURS=ARRAYCHAR-USAGE=NATIONALCHAR-USAGE=DBCSCHAR-VARYING=NOCHAR-VARYING=NULLMINIMUM-RUNTIME-LEVEL=MINIMUMMINIMUM-RUNTIME-LEVEL=CURRENTMINIMUM-RUNTIME-LEVEL=1.0MINIMUM-RUNTIME-LEVEL=1.1MINIMUM-RUNTIME-LEVEL=1.2MINIMUM-RUNTIME-LEVEL=2.0MINIMUM-RUNTIME-LEVEL=2.1MINIMUM-RUNTIME-LEVEL=2.2MINIMUM-RUNTIME-LEVEL=3.0MINIMUM-RUNTIME-LEVEL=4.0MINIMUM-RUNTIME-LEVEL=4.1MINIMUM-RUNTIME-LEVEL=4.2MINIMUM-RUNTIME-LEVEL=4.3SOAPVER=1.11.2ALLDATA-SCREENING=ENABLEDDATA-SCREENING=DISABLED HTTPPROXY=domain nameIP address: port number HTTPPROXY-USERNAME= value HTTPPROXY-PASSWORD= value CCSID= valueREQUEST-NAMESPACE= valueRESPONSE-NAMESPACE= valueSYNCONRETURN=NOSYNCONRETURN=YESTRUNCATE-NULL-ARRAYS=DISABLEDTRUNCATE-NULL-ARRAYS=ENABLEDTRUNCATE-NULL-ARRAY-VALUES=,NULLPACKEDZEROSPACEZEROWSBIND= value WSDL= valueWSDL_1.1= value WSDL_2.0= value LOGFILE= valueWSDLCP=LOCALWSDLCP=UTF-8WSDLCP=EBCDIC-CP-USWSDL-NAMESPACE= valueOPERATION-NAME= valueBINDING-NAME= valuePORT-NAME= valueSERVICE-NAME= valueWSRR-SERVER= scheme://domain nameIP address: port number 1 WSRR-DESCRIPTION= valueWSRR-ENCODING= valueWSRR-LOCATION= valueWSRR-USERNAME= valueWSRR-PASSWORD= valueWSRR-VERSION=1WSRR-VERSION= valueSSL-KEYSTORE= valueSSL-KEYPWD= valueSSL-TRUSTSTORE= valueSSL-TRUSTPWD= valueWSRR-CUSTOM- PropertyName= value1
Notes:
  • 1 Each of the WSRR parameters that can be specified when the WSRR-SERVER parameter is set can be specified only once. The exception to this rule is the WSRR-CUSTOM parameter, which you can specify a maximum of 255 times.

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

BINDING-NAME = value

Specifies the binding name that is used in the generated WSDL document. If no value is supplied, a default binding name is generated using the value of the PGMNAME parameter followed by HTTPSoapBinding . If SOAPVER is set to ALL, a 12 suffix is appended to the name of the SOAP 1.2 binding.

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-VARYING = { NO | NULL | COLLAPSE | BINARY }
Specifies how character fields in the language structure are mapped when the mapping level is 1.2 or higher. A character field in COBOL is a Picture clause of type X, for example PIC(X) 10 ; a character field in C/C++ is a character array. You can select these options:
NO
Character fields are mapped to an <xsd:string> and are processed as fixed-length fields. The maximum length of the data is equal to the length of the field. NO is the default value for the CHAR-VARYING parameter for COBOL and PL/I at mapping levels 2.0 and earlier.
This value does not apply to Enterprise and Other PL/I language structures.
NULL
Character fields are mapped to an <xsd:string> and are processed as null-terminated strings. CICS adds a terminating null character when transforming from a SOAP message. The maximum length of the character string is calculated as one character less than the length indicated in the language structure. NULL is the default value for the CHAR-VARYING parameter for C/C++.
This value does not apply to Enterprise and Other PL/I language structures.
COLLAPSE
Character fields are mapped to a JSON string. Trailing and embedded white space in the field is not included in the JSON message; for example, <space>AB<space><space><space>C<space> becomes AB<space>C. The inbound JSON message is parsed to remove all leading, trailing, and embedded white space. COLLAPSE is the default value for the CHAR-VARYING parameter for COBOL and PL/I at mapping level 2.1 onwards.
For more information about variable-length values and white space, see Support for variable-length values and white space.
BINARY
Character fields are mapped to an <xsd:base64binary> and are processed as fixed-length fields. The BINARY value on the CHAR-VARYING parameter is available only at mapping levels 2.1 and onwards.
CHAR-OCCURS = { STRING | ARRAY }
Specifies how character arrays in the language structure are mapped when the mapping level is 4.0 or higher. For example, PIC X OCCURS 20 . This parameter is only for use by the COBOL language.
ARRAY
Character arrays are mapped to an XML array. This means that every character is mapped as an individual XML element. This is also the behavior at mapping levels 3.0 and earlier.
STRING
Character arrays are mapped to an XML string. This means that the entire COBOL array is mapped as a single XML element.
CHAR-USAGE = { NATIONAL | DBCS }

In COBOL, the national data type, PIC N , can be used for UTF-16 or DBCS data. This setting is controlled by the NSYMBOL compiler option. You must set the CHAR-USAGE parameter on the assistant to the same value as the NSYMBOL compiler option to ensure that the data is handled appropriately. This is typically set to CHAR-USAGE=NATIONAL when you use UTF-16.

DBCS
Data from PIC ( n ) fields is treated as DBCS encoded data.
NATIONAL
Data from PIC ( n ) fields is treated as UTF-16 encoded data.
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 = { UNUSED | PACKED15 }
Specifies if potential ABSTIME fields in the high-level language structure are mapped as timestamps:
PACKED15
Packed decimal fields of length 15 (8 bytes) are treated as CICS ABSTIME fields, and mapped as timestamps.
UNUSED
Packed decimal fields of length 15 (8 bytes) are not treated as timestamps.
You can set this parameter at a mapping level of 3.0.
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 DFHLS2WS 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 DFHLS2WS uses a 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 DFHLS2WS uses a 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.
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 DFHLS2WS writes its activity log and trace information. DFHLS2WS 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 DFHLS2WS.

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 DFHLS2WS uses when generating the web service binding file and web service description. You can select these options:
1.0
This mapping level is the default. It indicates that the web service binding file is generated using CICS TS 3.1 mapping levels.
1.1
Use this mapping to regenerate a binding file at this specific level.
1.2
At this mapping level, you can use the CHAR-VARYING parameter to control how character arrays are processed at run time. VARYING and VARYINGZ arrays are also supported in PL/I.
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. At this mapping level you can take advantage of the new values for the CHAR-VARYING parameter, COLLAPSE and BINARY. FILLER fields in COBOL and * fields in PL/I are systematically ignored at this mapping level, the fields do not appear in the generated WSDL document, and an appropriate gap is left in the data structures at run time.
2.2
Use this mapping level with a region at CICS TS 3.2 with APAR PK69738 or later to take advantage of mapping enhancements when using DFHWS2LS.
3.0
Use this mapping level with a region at CICS TS 4.1 or later. At this mapping level you can create a web service from an application that uses many containers in its interface by setting the REQUEST-CHANNEL and RESPONSE-CHANNEL parameters. You can also map dateTime fields to XML timestamps by setting the DATETIME parameter.
4.0
Use this mapping level with a region at CICS TS 5.2 or later. At this mapping level you can use COBOL OCCURS DEPENDING ON fields and the CHAR-OCCURS parameter.
4.1
For truncatable array support, use this mapping level with a region at CICS V5.2 with APAR PI67641, or later.
4.2
No significant changes. Use this mapping level with a region at CICS TS 5.4 with APAR PI86039, or later.
4.3
No significant changes. 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 .

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.
OPERATION-NAME = value
Specifies the operation name that is used in the generated WSDL document. If no value is supplied, a default name is generated using the value of the PGMNAME parameter followed by the operation value.
PDSLIB = value
Specifies the name of the partitioned data set that contains the high-level language data structures to be processed. The data set members used for the request and response are specified in the REQMEM and RESPMEM parameters respectively.
Restriction: The records in the partitioned data set must have a fixed length of 80 bytes.
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.
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.
  • At mapping levels earlier than 3.0, the channel can contain only one container, which is used for both input and output. Use the CONTID parameter to specify the name of the container. The default name is DFHWS-DATA.
  • At mapping level 3.0, the channel can contain multiple containers. Use the REQUEST-CHANNEL and RESPONSE-CHANNEL parameters. Do not specify PDSLIB , REQMEM , or RESPMEM.
COMMAREA
CICS uses a communication area (COMMAREA) to pass data to the target application program.

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 then 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 the CICS PROGRAM resource for the target application program that will be exposed as a web service. The CICS web service support will link to this program.
PORT-NAME = value
Specifies the name that is used for the port and portType in the generated WSDL document. If no value is supplied, a default name is generated using the value of the PGMNAME parameter followed by Port . If SOAPVER is set to ALL, a 12 suffix is appended to the name of the SOAP 1.2 port.
REQMEM = value
Specifies the name of the partitioned data set member that contains the high-level language structure for the web service request. For a service provider, the web service request is the input to the application program.
REQUEST-CHANNEL = value
Specifies the name and location of a channel description document. The channel description describes the containers that the web service provider application can use in its interface when receiving a SOAP message from a web service requester. The channel description is an XML document that must conform to the CICS-supplied channel schema.
You can use this parameter at mapping level 3.0 only.
REQUEST-NAMESPACE = value
Specifies the namespace of the XML schema for the request message in the generated web service description. If you do not specify this parameter, CICS generates a namespace automatically.
RESPMEM = value
Specifies the name of the partitioned data set member that contains the high-level language structure for the web service response. For a service provider, the web service response is the output from the application program.

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

RESPONSE-CHANNEL = value
Specifies the name and location of a channel description document. The channel description describes the containers that the web service provider application can use in its interface when sending a SOAP response message to a web service requester. The channel description is an XML document that must conform to the CICS-supplied channel schema.
You can use this parameter at mapping level 3.0 only.
RESPONSE-NAMESPACE = value
Specifies the namespace of the XML schema for the response message in the generated web service description. If you do not specify this parameter, CICS generates a namespace automatically.
SERVICE-NAME = value
Specifies the service name that is used in the generated WSDL document. If no value is supplied, a default service name is generated using the value of the PGMNAME parameter followed by Service.
SOAPVER = { 1.1 | 1.2 | ALL }
Specifies the SOAP level to use in the generated web service description. This parameter is available only when the MINIMUM-RUNTIME-LEVEL is set to 2.0 or higher.
1.1
The SOAP 1.1 protocol is used as the binding for the web service description.
1.2
The SOAP 1.2 protocol is used as the binding for the web service description.
ALL
Both the SOAP 1.1 or 1.2 protocol can be used as the binding for the web service description.
If you do not specify a value for this parameter, the default value depends on the version of WSDL that you want to create:
  • If you require only WSDL 1.1, the SOAP 1.1 binding is used.
  • If you require only WSDL 2.0, the SOAP 1.2 binding is used.
  • If you require both WSDL 1.1 and WSDL 2.0, both SOAP 1.1 and 1.2 bindings are used for each web service description.
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 the names of the high-level structures contained in the partitioned data set members that are specified in the REQMEM and RESPMEM parameters:
request
Specifies the name of the high-level structure that contains the request when the REQMEM parameter is specified. The default value is DFHREQUEST.
The partitioned data set member must contain a high-level structure with the name that you specify or a structure named DFHREQUEST if you do not specify a name.
response
Specifies the name of the high-level structure containing the response when the RESPMEM parameter is specified. The default value is DFHRESPONSE.
If you specify a value, the partitioned data set member must contain a high-level structure with the name that you specify or a structure named DFHRESPONSE if you do not specify a name.
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 $ @ # _ < >

TRUNCATE-NULL-ARRAYS = { DISABLED | ENABLED }
Specifies how structured arrays are processed at mapping level 4.1 or higher. If enabled, CICS will attempt to recognize empty records within an array (see TRUNCATE-NULL-ARRAY-VALUES for more information about identifying empty records). If five consecutive empty array records are detected, the array is truncated at the first such record when generating XML/JSON. This truncation capability is only enabled for arrays with structured content, arrays of simple primitive fields are not subject to truncation. Truncation of arrays can result in a more concise representation of the data in JSON/XML, but is not without risk. If five consecutive data records are misidentified as uninitialised storage (perhaps because they legitimately contain low values), data loss can be experienced. If TRUNCATE-NULL-ARRAYS is enabled and TRUNCATE-NULL-ARRAY-VALUES is not set, then the default value for TRUNCATE-NULL-ARRAY-VALUES is used.
TRUNCATE-NULL-ARRAY-VALUES = { NULL | PACKEDZERO|SPACE | ZERO }
Specifies which values are treated as empty for TRUNCATE-NULL-ARRAYS processing at mapping level 4.1 or higher. By default, the null value (0x00, or low-values) is treated as empty. If all of the bytes of storage within a record of a structured array contain nulls, then the entire record is considered to be empty. One or more of the NULL, PACKEDZERO, SPACE and ZERO values can be specified in a comma separated list.
NULL
Implies a null character (0x00).
PACKEDZERO
Implies a positive signed packed decimal zero (0x0C), a negative signed packed decimal zero (0x0D), or an unsigned packed decimal zero (0x0F).
SPACE
Implies an SBCS EBCDIC space (0x40).
ZERO
Implies an unsigned zoned decimal zero (0xF0).

Any matching combination of the selected bytes within a structured array record will cause the entire record to be identified as empty.

If TRUNCATE-NULL-ARRAY-VALUES has a value defined, TRUNCATE-NULL-ARRAYS must be enabled.

URI = value
This parameter specifies the relative or absolute URI that a client will use to access the web service. CICS uses the value specified when it generates a URIMAP resource from the web service binding file created by DFHLS2WS. The parameter specifies the path component of the URI to which the URIMAP definition applies.
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 $ @ #

WSBIND = value
The fully qualified z/OS UNIX name of the web service binding file. DFHLS2WS creates the file, but not the directory structure, if it does not already exist. The file extension is .wsbind.
WSDL = value
The fully qualified z/OS UNIX name of the file into which the web service description is written. The web service description conforms to the WSDL 1.1 specification. DFHLS2WS creates the file, but not the directory structure, if it does not already exist. The file extension is .wsdl.
WSDL_1.1 = value
The fully qualified z/OS UNIX name of the file into which the web service description is written. The web service description conforms to the WSDL 1.1 specification. DFHLS2WS creates the file, but not the directory structure, if it does not already exist. The file extension is .wsdl . This parameter produces the same result as the WSDL parameter, so you can specify only one or the other.
WSDL_2.0 = value
The fully qualified z/OS UNIX name of the file into which the web service description is written. The web service description conforms to the WSDL 2.0 specification. DFHLS2WS creates the file, but not the directory structure, if it does not already exist. The file extension is .wsdl . This parameter can be used with the WSDL or WSDL_1.1 parameters. It is available only when the MINIMUM-RUNTIME-LEVEL is set to 2.0 or higher.
WSDLCP = { LOCAL | UTF-8 | EBCDIC-CP-US }
Specifies the code page that is used to generate the WSDL document.
LOCAL
Specifies that the WSDL document is generated using the local code page and no encoding tag is generated in the WSDL document.
UTF-8
Specifies that the WSDL document is generated using the UTF-8 code page. An encoding tag is generated in the WSDL document. If you specify this option, you must ensure that the encoding remains correct when copying the WSDL document between different platforms.
EBCDIC-CP-US
This value specifies that the WSDL document is generated using the US EBCDIC code page. An encoding tag is generated in the WSDL document.
WSDL-NAMESPACE = value
Specifies the namespace for CICS to use in the generated WSDL document.
If you do not specify this parameter, CICS generates a namespace automatically.
WSRR-CUSTOM- PropertyName = value
Use this optional parameter to add customized metadata to the WSDL document in the WSRR. The WSRR-CUSTOM- PropertyName = value pairs are added into the WSDL document and appear in WSRR without the WSSR-CUSTOM prefix.
You can specify a maximum of 255 custom PropertyName = value pairs. Avoid duplicate and blank PropertyName = value pairs.
Use this parameter only when the WSRR-SERVER parameter is specified.
WSRR-DESCRIPTION = value
Use this optional parameter to specify the metadata that describes the WSDL document being published.
Use this parameter only when the WSRR-SERVER parameter is specified.
WSRR-ENCODING = value
Use this optional parameter to specify the character set encoding of the WSDL document. If the WSRR-ENCODING parameter is not specified, WSRR uses the value specified in the WSDL document.
Use this parameter only when the WSRR-SERVER parameter is specified.
WSRR-LOCATION = value
Use this optional parameter to specify the URI that identifies the location of the WSDL document. If this parameter is not specified, the URI defaults to the filename specified in the WSDL parameter. For example, if the value of the WSDL parameter is wsrr/example.wsdl , the value of the WSRR-LOCATION parameter defaults to example.wsdl.
Use this parameter only when the WSRR-SERVER parameter is specified.
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 = { 1 | value }
Use this parameter to set the version property of the WSDL document in WSRR.
Use this parameter only when the WSRR-SERVER parameter is specified.

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


				//LS2WS JOB '
				accounting information
				',
				name,MSGCLASS=A
				// SET QT=''''
				//JAVAPROG EXEC DFHLS2WS,
				// TMPFILE=&QT.&SYSUID.&QT
				//INPUT.SYSUT1 DD *
				PDSLIB=//CICSHLQ.SDFHSAMP
				REQMEM=DFH0XCP4
				RESPMEM=DFH0XCP4
				LANG=COBOL
				LOGFILE=/u/exampleapp/wsbind/example.log
				MINIMUM-RUNTIME-LEVEL=2.1
				MAPPING-LEVEL=2.1
				CHAR-VARYING=COLLAPSE
				PGMNAME=DFH0XCMN
				URI=http://myserver.example.org:8080/exampleApp/example
				PGMINT=COMMAREA
				SOAPVER=1.1
				SYNCONRETURN=YES
				WSBIND=/u/exampleapp/wsbind/example.wsbind
				WSDL=/u/exampleapp/wsdl/example.wsdl
				WSDL_2.0=/u/exampleapp/wsdl/example_20.wsdl
				WSDLCP=LOCAL
				WSDL-NAMESPACE=http://mywsdlnamespace
				/*