About Workflow in IFS Applications
About Workflow in IFS Applications
This document describes how IFS Applications can be setup to interact with an external workflow engine.
Contents
Workflow Engines
Start a workflow
Human Task
Subscribe To Event
Workflow Engines
A workflow engine is a software application that manages and executes modeled computer processes.
Workflow engines using WS-BPEL (Web Services Business Process Execution Language) are compliant
with IFS Applications. IFS Applications can expose web services to be used by external applications and
also call web services exposed by other applications.
Start a workflow
A workflow exposing a web services can be called from IFS Applications. There are several ways to do
this.
IFS Applications can be configured to start a workflow in an external workflow engine when an event is
triggered. There is an action type "Start Workflow". By creating an Event Action with this action type and
specify the workflow server web service endpoint and what operation to call you can start a new
workflow instance in an external workflow engine. See Event Actions for more details.
A custom menu of type PL/SQL Block can be used to start a workflow. Create a custom menu with this
action type according to documentation. Add a PL/SQL block calling the database method
FND_WORKFLOW_CONNECTION_API.Start_Workflow (VARCHAR2
workflow_server_,VARCHAR2 web_service_name_,VARCHAR2 operation_
,VARCHAR2 parameter_attr_);
Setting the workflow server address to null value will use a default workflow server address. This default
workflow server is defined in the Workflow server window in Solution Manager.
Example:
DECLARE
attr_ VARCHAR2(4000);
workflow_server_ VARCHAR2(200) := null;
web_service_name_ VARCHAR2(200) := 'soa-infra/services/test/demobpel_ep';
operation_ VARCHAR2(50) := 'process';
BEGIN
Client_SYS.Clear_Attr(attr_);
Client_SYS.Add_To_Attr('CUSTOMER_ID', '1000',attr_);
Client_SYS.Add_To_Attr('NAME', 'TEST', attr_);
Client_SYS.Add_To_Attr('ASSIGNEE', 'ALAIN', attr_);
FND_WORKFLOW_CONNECTION_API.Start_Workflow (
workflow_server_,
web_service_name_,
operation_ ,
attr_);
END;
Human Task
IFS Application have a pre-packaged web service that creates a Human Task in IFS Application assigned to
one or many users. The call is asynchronous and a callback is done to a specified address.
Parameter Description:
Parameter
Description
Name
Description of the task. Details what the user should do in order to complete
message Optional
the task
A link that can help the user complete the task. It can refer to a specific
window within IFS Applications. Example
url Optional
"ifsapf:frmCustomerOrder?action=get&key1=<ORDER_NO>" where
<ORDER_NO> is to be replaced by an valid order id.
The priority of the task as defined by the sender. Values can be "High", "Low"
priorityDb Optional
or "Normal"
A Logical Unit name. Example "CustomerOrder". This will make the task
visible when the user is opening up windows in IFS Applications that are
businessObject Optional
showing Customer Orders. That means the window data source is connected
to logical unit "CustomerOrder".
This is a ; separated list of valid response options from the human task. When
a task is completed by the user the user can select any of the listed response
options supplied. This value will be returned in the callback when the
responseOptions Optional
workflow is resumed. The value sent back can be any of the values in the list
or null. The purpose is to be able to give an answer back to the workflow
engine from a Human Task.
eventLuName is the name of the logical unit where the event is defined
The rowkey attribute (also referred to as objkey). This identifies the object
objectKey Optional
that causes the Event to fire
Example:
- <createHumanTask_InputVariable>
- <humantask xmlns="http://message.integration.service.ifs/">
<receiver>BIID</receiver>
<url>ifsapf:frmCustomerOrder?external_search=ORDER_NO=12000</url>
<responseOptions>Approve;Deny</responseOptions>
</humantask>
</part>
</createHumanTask_InputVariable>
Subscribe To Event
IFS Applications have a pre-packaged web service to be able to subscribe to Event for a specific object.
When the specified Event is fired for the object a callback is executed to the specified callback url with
the correlation id
Parameter Description:
Parameter
Description
Name
eventLuName and eventId are key attributes for FndEvent. A callback is executed
eventLuName
when this event is fired for the object defined by objectKey
The rowkey attribute (also referred to as objkey). This identifies the object that
objectKey
causes the Event to fire