Use the Invoke system function to request a Web Service.
Before you begin
Before you beginWorkflow properties - Web
Services. Specify the partner links in the workflow properties. Here are some properties
that might need to be configured:
- Data fields and attachments that are required for input to the services
- Any data fields or XML fields that are required for returned values
- The default folder in your object store or library where returned attachments are to be
stored
About this task
An endpoint for a partner link might change for various reasons. For example, you might
update the partner link by selecting a different version of a workflow with the corresponding
Receive system function. When an endpoint changes, Process Designer inspects
each
Invoke system function in the current workflow and updates them as follows:
- If parameters are the same, the value of each parameter is preserved.
- If there are new parameters, those parameters are added to the list of parameters, but the
expression value is empty.
- If a parameter no longer exists, it is deleted, but any data field that was created for
that parameter remains.
- If the operation no longer exists, the operation is blank.
- If the mode switches from "Parameters" to "XML" or vice versa, the message or parameters
must be updated.
- If the mode is "XML", the message template is reloaded and the message must be
updated.
Procedure
To specify an Invoke system function:
- From the Web Services step palette, drag an Invoke step onto the workflow map.
-
On the Invoke General tab, select the Partner Link for the Web Service. The Partner Links
list contains only entries that are specified for Invoke in Workflow Properties Web
Services.
- Select the appropriate Operation in the Web Service.
- Under Message Type, select Parameters or XML.
|
Parameters
|
Use workflow data fields and attachments for input and output. This option is available
for simple parameters and for schemas up to two levels deep.
Outgoing data
If the Web Service you are invoking requires input, the required fields are displayed
under Outgoing Parameters. In the Expression field, specify a
previously defined data field or expression of the appropriate data type.
For more information, see Specify operation parameters.
Restriction:
- The name of a parameter cannot contain numbers, special characters, or spaces.
- The parameter type determines the processes that can communicate with a P8 web
service. If you set the parameter type to be attachment by value, a web service can
communicate with another P8 workflow process only. That is, the other participant in
the conversation cannot be an external web service. For an example of setting the
parameter type, see Using Web Services: Parameter example.
Incoming data
If the Web Service returns data, the name and data type are displayed under Incoming
Parameters. In the Field Name field, select a previously defined
data field of the appropriate type to hold the returned data.
|
|
XML
|
Use XML messages for input and output. This option must be used for nested parameters
more than two levels deep.
Outgoing data
If the Web Service you are invoking requires input, the required fields are displayed
in a "template" format in the Outgoing Message. Edit the message, substituting a data
field of the appropriate type where indicated by the format
+_datatype. For array fields, you can add more lines, as necessary.
All fields in the outgoing message must be strings, so you must convert other types,
such as float or integer, to strings. For example, to use data field MyFloatData, you can
use convert(MyFloatData, string) in the message. This restriction applies only when the
message type is XML; in the Parameter format, Process Designer handles data conversions
for the messages.
Incoming data
For Incoming XML Data Field, specify a previously defined XML data field. You can use
one of the XPath functions in subsequent steps to extract the appropriate data from the
XML message.
|
- Optional:
Specify a timeout expression to indicate alternative processing after a specified amount of
time.
-
On the Advanced tab, enter a time expression to specify the wait time.
For example, you can enter a time function such as addminutes(systemtime(),
30). This example allows the step to wait 30 minutes before it goes to the
specified timeout map.
-
Select an appropriate submap to be executed if the timeout condition occurs. You can
choose one of the system maps (Terminate or Malfunction), or you can create your own
submap.
This timeout expression does not apply when the web service request is successfully invoked.
When a work item is queued to the WSRequest queue, the timeout commences until the WSRequest
queue sends the web service request to the web service. Once the web service request is
issued, the timeout expression no longer applies. Additionally, if the request is sent within
the timeout period, the timeout processing does not occur even if the web service is delayed
in sending back an expected reply.
- Optional:
Invoke system function: Web Services-ReliableMessaging.
- Optional:
Correlating web conversations.