Workflow is one of the most commonly used functionality in Siebel. They provide us the way to automate simple and complex business process without much trouble.
Workflows can be invoke in several ways in Siebel.
- Runtime Events
- Scripting
- User Property
- Workflow Policy
In this post I will be giving example of how to invoke workflow process in different ways.
>> Runtime Events
We can specify runtime event at
Workflow Process: To define a runtime event in the workflow process, follow the steps given below
Select the connecter after the start step as shown below
Siebel Workflow Connector
In the Workflow Step Branch: window below provide the details at which you want to this workflow to execute. For example If I want my workflow to be invoked at write record of Action buscomp then I will enter the following detail
Event Object Type: BusComp
Event Object: Action
Event: Write Record
Runtime Events
>> Administration Runtime
Runtime Events are available in Administration - Runtime Event Screen.
We have all the corresponding events which we find in BusComp, Applet and Application such as WriteRecord, PreWriteRecord, ChangeRecord, and PreQuery etc.
We need to remember one thing here is that Runtime events fire before the corresponding object event.
For example
WriteRecord runtime event for object type BusComp will fire before BusComp WriteRecord event
To call a workflow from Administration Runtime event define a Action Set and Enter the information as shown below
Business Service: Workflow Process Manager
Business Service Method: RunProcess
Business Service Context: “ProcessName”, “Name of workflow”
Even Spaces matter in Business Service Context value after there is a space after comma and then workflow name. Now you can define the event according to your requirement which will call this Action Set
Administration Runtime Events
>> Scripting.
To call a workflow process from scripting you can use the code given below
var svc = TheApplication().GetService(”Workflow Process Manager”);
var Input = TheApplication().NewPropertySet();
var Output = TheApplication().NewPropertySet();
var rowId = this.GetFieldValue(”Id”);
Input.SetProperty(”ProcessName”, “GEAE Activity Approved by SSD Notification”);
Input.SetProperty(”Object Id”, rowId);
Input.SetProperty(”Opportunity Id”, vOppId);
Input.SetProperty(”OwnerEmailAddress”,v_OwnerEmail);
svc.InvokeMethod(”RunProcess”, Input, Output);
Here any property that you set in input property set will be assigned to corresponding process property in the Workflow Process (WFP) as in the above example
Input.SetProperty(”Opportunity Id”, vOppId);
above line of code will result in process property called “Opportunity Id” in WFP to assigned the value of variable vOppId.
>>User Property:
You can use Named Method property on BC to invoke a workflow. Example
Name: Named Method 1
Value: “New Record”, “INVOKESVC”, “Example”, “Workflow Process Manager”, “RunProcess”, “‘ProcessName’”, “Example Wrokflow”, “‘RowId’”, “[Id]”
To see the detail explanation of user property read the following post
>>Workflow Policy:
Workflow Process can also be called from workflow policy. We can Define a workflow policy (WFP) in Administration – Business Process >> Policy.
Steps to create Workflow Policy are not in the scope of this post. We assume here that you have created a workflow policy record and specified appropriate conditions.
In the argument section choose
Argument: Process Name
Value: Workflow Process Name
Hope this helps
No comments:
Post a Comment