Working with the SOAP Request Nodes

Overview of the SOAP Request Node

You can add a SOAP Request node to a Diagram tab in an orchestration job to access a third-party web service that uses a SOAP interface. SOAP (Simple Object Access Protocol) is a simple XML-based protocol to let applications exchange information over HTTP. The SOAP transformation generates SAS SOAP procedure code to access a web service in the context of a job. The procedure invokes a SOAP web service through Java Native Interface (JNI). The procedure provides options for the request XML document (IN), the service endpoint (URL), the SOAP action or operation (SOAPACTION), and the map used to handle the response (OUT).
It is assumed that you are familiar with how to use the SOAP interface to access web services. Gather the same information that you need to use the SAS SOAP procedure to read from and write to the desired web service. Example options and values are shown in the next section. For detailed information about the SAS SOAP procedure, see the documentation for that procedure in the Base SAS Procedures Guide.

Inputs and Outputs to the SOAP Service Node

The SOAP Request node can take the inputs and outputs listed in the following table:
Inputs and Outputs to the SOAP Request Node
Name
Description
WSCP_ACTION
The SOAP action
WSCP_ADDRESS
The URI to process
WSCP_BINDING
The binding to use
WSCP_DOMAIN
The authentication domain of the credentials to use
WSCP_OPERATION
The web service operation to invoke
WSCP_PASS
The user’s password
WSCP_POLL_INTERVAL
The interval to check for cancellation
WSCP_PREEMPTIVE_AUTHENTICATION
The preemptive authentication setting
WSCP_PROXY_DOMAIN
The proxy authentication domain
WSCP_PROXY_HOST
The host name of the proxy
WSCP_PROXY_PASS
The proxy user’s password
WSCP_PROXY_PORT
The proxy port number
WSCP_PROXY_USER
The proxy user
WSCP_REQUEST
The XML request template
WSCP_RESPONSE
The XML response template
WSCP_USER
The user name
WSCP_WS_SECURITY_DOMAIN
Specifies whether to determine the user and password from the domain server
WSCP_WS_SECURITY_MUST
Specifies whether the mustUnderstand attribute in WS_Security is set
WSCP_WS_SECURITY_PASS
The password in WS_Security input to the provider
WSCP_WS_SECURITY_USER
The user in WS_Security input to the provider
WSCP_WSDL_ADDRESS
The URI of the SOAP service
WSCP_WSDL
The WSDL expressed as a string
Unique Outputs:
No unique outputs

Using the SOAP Request Node

You can add a SOAP Request node to a Flow tab in an orchestration job to access a third-party web service that uses a SOAP interface. For example, you can use a SOAP Request node in an orchestration job to connect to a web service that performs currency conversions.
The Flow tab for the SOAP Request Job is shown in the following display:
SOAP Request Job
SOAP Request Job
Click Use WSDL to create request in the SOAP Request tab, as shown in the following display:
SOAP Request Tab
SOAP Request Tab
Now, you can use the Create Request window to specify the WSDL, WSDL binding, and operation for the SOAP request. This window is shown in the following display:
Create Request Window
Create Request Window
Note the WSDL is specified as a URI. You can click the key icon if you need to set up security for the request. You can also click OK to rediscover bindings and operations, even if the WSDL has not been updated. Note that you can manually enter the WSDL or WSDL address on the Inputs tab. However, then you are also responsible for entering a valid binding and operation for that WSDL or WSDL address.
The following display shows the data generated by the WSDL request in the SOAP Request tab :
SOAP Request Tab
SOAP Request Tab
Note that the URI and operation are specified in the Use WSDL to create request section. The two request variables, FromCurrency and ToCurrency, are listed under Request data. Finally, the response variable, ConversionRateResult, is shown in the Response data section.
You can also see these request variables in the XML-based Request Template, which is shown in the following display:
Request Template
Request Template Window
The response variable, similarly, is included in the XML-based Response Template window. This template is shown in the following display:
Response Template Window
Response Template Window

Usage Notes for SOAP Request Nodes

Out-of -Memory Errors for SOAP Request Nodes

SAS Visual Process Orchestration jobs with a SOAP Request node or an HTTP Request node can run out of memory if you are using a Sun Java Virtual Machine (JVM). If this happens, add the following option to the Java start command that is specified in the app.cfg file for the server that executes the job.
The Java option is: -XX:MaxPermSize=256m -XX:+CMSClassUnloadingEnabled