Wednesday, 4 September 2013

Siebel WorkFlows

Documentation Process:
1)     Use Case/ Functional Design Document
Requirement will be coming through Functional Design Document or Use Case document
2)     LLD (Low Level Design Document)
In LLD, we need to provide the touch points (In which objects we need to do the changes and Approach for the requirement) about the requirement.

3)     HLD (High Level design document)
In HLD, we need to add more technical flavour about the requirement (What are the steps or business services or properties we need to provide for achieving the requirement)

4)     TDD (Technical Design Document)
Original code should be available in TDD
Note: Once TDD is approved from the Client, then we need to start our work
5)     Test Cases
àNeed to provide steps for testing process about the requirement
6)     Tracability Matrix document

Use Case / Functional document requirement sequence To Test Case sequence
--------------------------------------------------------------------------------
For business automation process
Note: when ever the condition satisfies, the related action should perform
Req: if Account Status = ‘Active’, new activity should be create for that account
Req: If user clicks on ‘Submit’ button in Quote List Applet, then an email should be forward to the related Primary Sales Rep
Component Group: Workflow Management
  • Workflow Process Manager
  • Workflow Process Batch Manager
  • Workflow Process Manager (Server Request)
  • Generate Triggers
  • Workflow Monitor Agent
  • Workflow Action Agent
àWorkflows are not related srf changes
àWorkflows are based on Business Object
Workflow Modes:
7.0 Flowàfor upgradation
Long Running Flowàif we use wait step in the design process
Interactive Flowàif we use ‘User Interact’ step in the WF
Note: takes the user from one view to another view using WF
Service FlowàGeneral WFs (Default Mode)

Process Properties:
Error Codeàsiebel generated error code will be displayed
Error MessageàCode related error text message
Object IdàCondition satisfied primary BC Record row id will be passed as input to the workflow through this process property
Process Instance IdàUnique Workflow Id
Siebel Operation Object IdàRow Id of the newly created record using Siebel Operation step will be stored in this process property
Workflow Process Steps:
èDesign
Components:
          Start, Stop, End, Connectors, Exceptions
          àStop will throw the custom defined message in UI layer
          àExceptions will be used for error handling
Decision Point: for checking the conditions
Siebel Operation: will be used for query/update/insert operations in BC level
Wait: For long running workflow
User Interact: takes the user from one view to another view

Sub Process: Workflow with in a workflow
If condition is checking in BC1 and if we are executing the action in BC2 which is not related to parent BO, then we need create a workflow based on BO2 and that workflow will be used as sub process in main workflow.
Business Service: It executes its own functionality
Ex:
àOutbound Communications Manager (For sending an email)
àWorkflow Process Manager (For triggering the workflow)
àEAI Siebel Adapter (for converting property set to Siebel message/Siebel message to property set)
Methods
Arguments
Note: Every business service will have its own methods and every method will have its own input and output arguments
èValidate
          Checking the connectivity between the components
èSimulate
Testing/debugging the workflow by passing the row id as input to the workflow in Object Id process property
èDeploy
Workflow definitions that have been created on Siebel tools side will be moved to client side (Administration level)
àWF object definitions will be inserted into S_WFR_PROC
àWF will become read only
àStatus will change to ‘Completed’

ð  Activate:
          àWF definitions will be inserted into S_WFA_DPLOY_DEF
àWorkflow Process Manager will identify the WF definitions from this table while invoking the workflow
Invoke:
Invoking techniques:
àRuntime Events (if we want to trigger the workflow using Siebel provided events which triggers at runtime)
Ex: SetFieldValue, WriteRecord
          Type: Synchronous
          Component: Workflow Process Manager
àApplication should be open and user should do some action from UI layer
          àTriggers from UI layer and Business Logic layer
UPDATE S_ORG_EXT SET CUST_STAT_CD = ‘Active’ WHERE ROW_ID=’1-1’     
Note: Condition will be checking with in the workflow
àIf we set the condition from back end, then runtime event will not be triggered
àPolicies
          Conditions and Actions (WF name that needs to be triggered)
          àTriggers from data layer
          àApplication may not be open
Type: Asynchronous
Component: Workflow Process Manager
Based on the condition, the related action will perform
Note: Once the condition satisfies, then only WF will be triggered
àScripting: Button Click
Type: Synchronous
Component: Workflow Process Manager
          àFor triggering the WF using button click in Asynchronous Mode
                   Component: Workflow Process Manager (Server Request)
àRCR (Repeating Component Request)
            For triggering the workflow based on time interval
Type: Asynchronous
Component: Workflow Process Batch Manager
Ex: for every 1 hr workflow should be triggered for sending all the ‘Submitted’ quotes information to external system for approval process
àNamed Method (BC User Property)
Type: Synchronous
Component: Workflow Process Manager
Note: without writing the code, we can call a workflow using button click from this user property
Requirement:
------------------
If 'Account Status' is 'Active', then 'Type' should become 'Federal'

-->Check Out 'Account' project
1) Select Workflow Process-->New Record
Process Name                                       Project                   Business Object
UpdateAccountType            Account         Account

Select Workflow-->Right Click-->Edit Workflow Process-->Connect the following steps

Check Status Step:
Select the arrow between Decision Point and Siebel Operation-->Double Click on It and give the properties
Compare To: Business Component
Operation: All Must Match (Ignore Case)
Object: Account
Field: Account Status
Values: Active
-->Click on 'Add' button-->Click on 'OK' button

Update Type Step:
Select 'Siebel Operation'-->In 'Workflow Steps’ List Applet
Business Component: Account
Operation: Update

-->Select 'Siebel Operation'-->Right Click-->Show Fields-->New Record
Field                       Type                      Value
Type                      Literal                     Federal
Validation:
Right Click on the designer window-->Validate-->Click on 'Start' button for validation
Simulation:

Select the Condition satisfied Row Id and add that row id for Object Id Process property.

-->Right Click the Workflow-->Simulate

Deployment:
Select the Workflow-->Click on 'Deploy' button
Note: Status of the workflow changes to ‘Completed’ and workflow becomes read only
-->'Check In’ the Workflow


Activation:
Open Server Application-->Sitemap-->Administration - Business Process-->Workflow Deployment-->Select 'UpdateAccountType' Workflow and Click on 'Activate' button
Note: Once the Activation is done, Workflow will be available in ‘Active Workflow Process’ List Applet.
Invoking using Runtime events:
1)    Check Out ‘Account’ project
2)     Select ‘AccountUpdateType’ workflowàClick on ‘Revise’ button.
3)    Select ‘AccountUpdateType’ which is having version ‘1’àRight ClickàEdit Workflow Process
4)     Select the arrow between ‘Start’ and ‘Decision Point’
In Workflow Step Branch List Applet
Event Object Type              Event Object            Event
BusComp                                    Account                            SetFieldValue
5)    Select the WorkflowàClick on ‘Deploy’ button
6)    Check In ‘Account’ Project
7)    Activate the workflow

Reloading Runtime Events:
SitemapàAdministration – Runtime EventsàEvents
Query for
Event Object Type              Event Object            Event
BusComp                                    Account                            SetFieldValue
àSelect the Eventàfrom the Applet MenuàClick on ‘Reload Runtime Events’
àCheck the Results
---------------------------------------------------------------------------------------------------



Requirement:

When Account Status = ‘Active’, then Account Type should become ‘Federal’ and New Activity should be create for that account with ‘Type’ as ‘Analyst’, ‘Status’ as ‘In Progress’ and ‘Description’ as ‘Testing through Workflow’

Design Process:
Check Status Step: same as above
Update Type Step: same as above
Create Activity Step:
Select 'Siebel Operation'-->In 'Workflow Steps’ List Applet
Business Component: Action
Operation: Insert

-->Select 'Siebel Operation'-->Right Click-->Show Fields-->New Record
Field                       Type                      Value
Type                      Literal                     Analyst
Status           Literal                     In Progress
Description     Literal                     Testing Through Workflow
àAdd the Event in workflow, Deploy, Check In the project
àActivate the Workflow and Re Load Runtime events
Workflow Debugging Process/Error Handling:
1)    Using Exceptions in Workflow
2)    Increasing Monitoring Level from the Client Side
3)    Writing Error Message into log file by writing custom business service
4)    Checking the ‘WfProcMgr’ log file
C:\Sea77\siebsrvr\log

Increasing Monitoring Level from the Client Side
SitemapàAdministration – Business ProcessàWorkflow DeploymentàActive Workflow Process
Select the workflowà
Monitoring Level: 4 - Debug
àTrigger the workflow
àGo to ‘Administration – Business ProcessàWorkflow Instance MonitoràSelect the WorkflowàIn Step Instances view tab,we can able to see the result of each step used in the Workflow

Requirement:

When Service Request Status = ‘Cancelled’, the associated Activities should change to ‘Cancelled’
Invoking using Policies:

1) Create Policy Group
          UpdateSRActivityPolicyGroup
          Sitemap-->Administration - Business Process-->Policy Group-->New Record
          Name: UpdateSRActivityPolicyGroup
2) Create Action
          -->we need to add workflow name
          -->Go to 'Actions'-->New Record
Name                                          Program                                            Workflow Object
UpdateSRActivityPolicyAction Run Workflow Process         Service Request

Arguments:
Create new record
Argument                         Value
ProcessName           UpdateSRActivity
----------------------------------------------------------------------
3)Create Policy (Add the policy to the related Policy Group)
          Add Condition and Action
-->Go to 'Policies'-->New Record
Name                               Workflow Object                Policy Group
UpdateSRActivityPolicy         Service request        UpdateSRActivityPolicyGroup

Conditions:
New Record
Condition Field                             Operation                          Value
Service Request Status        =                                    Cancelled

Actions:
New Record
Action: UpdateSRActivityPolicyAction



4) Generate Triggers
          -->Which will add the policy condition to database
Sitemap-->Administartion - Server Management-->Jobs-->New Record
Component/Job                  Requested Server
Generate Triggers              RAM(Siebel Server Name)

Job Parameters:
Create following records
Name                                                  Value
Privileged User                                                SIEBEL
Privileged User Password                        SIEBEL
EXEC                                                   True

-->Click on 'Start' button to start the job. Wait until the status changes to 'Success'
-----------------------------------------------------
5) Enable Workflow Monitor Agent Component
                   Group Name: Policy Group Name
                   Use Action Agent: True/false
Sitemap-->Administartion - Server Configuration-->Enterprises-->Component Definitions
Query for 'Workflow Monitor Agent' -->Copy Record
Component              Alias                       Component Group
UpdateSR                          UpdateSR                Workflow Management
Component Parameters:
Parameter                                  Value
Sleep Time                                 1
Default Tasks                              1
Group Name                               UpdateSRActivityPolicyGroup

Select 'UpdateSR' Component-->Click on 'Enable' button and then 'Synchronize' button

Note: when we synchronize, the component registration will be available for gateway server and enterprise sevrver.
--> For effecting the policy changes, we should bounce siebel server( need to re- start the siebel services)


6) Enable Workflow Action Agent Component
---------------------------------------------------------------
IF 'SR STATUS = ' Cancelled' THEN RULE_ID '1-ABC' = TRUE
INSERT INTO S_ESCL_REQ (BT_ROW_ID, RULE_ID, GROUP_ID...)

Workflow`     Policy Tables:
S_ESCL_REQ
S_ESCL_STATE
S_ESCL_ACTN_REQ
S_ESCL_LOG

With Policy Duration and Use Action Agent = true
When workflow triggers, a new record inserts into S_ESCL_REQ Table.
Workflow Monitor Agent picks that record and inserts into S_ESCL_STATE.
Once the end time is reached , WorkMon picks that record from S_ESCL_STATE table and inserts into S_ESCL_ACTN_REQ.
When a new record inserts into S_ESCL_ACTN_REQ table, Workflow Action Agent picks that record and inserts into S_ESCL_LOG table.
Note: Once the record is reached to S_ESCL_LOG table, then workflow triggering process completed successfully.

With Policy Duration and Use Action Agent = false
WorkMon picks the record from S_ESCL_REQ table and inserts into S_ESCL_STATE table.Once the end time is reached , WorkMon picks the same record from S_ESCL_STATE table and inserts into S_ESCL_LOG

Without Policy Duration and Use Action Agent = true
WorkMon picks the record from S_ESCL_REQ table and inserts into S_ESCL_ACTN_REQ table.
When a new record inserts into S_ESCL_ACTN_REQ table, Workflow Action Agent picks that record and inserts into S_ESCL_LOG table.

Without Policy Duration and Use Action Agent = false
WorkMon picks the record from S_ESCL_REQ table and inserts into S_ESCL_LOG table.

Note: Record count of S_ESCL_REQ or S_ESCL_ACTN_REQ tables should be 0. If not, the related component may be down or not enabled.

Requirement:
When Service Request Status = ‘Cancelled’, the associated Activities should change to ‘Cancelled’


1)   Check Out ‘Service’ project
Workflow Name                           BO                         Project
UpdateSRActivity                Service Request       Service

Check SR Status Step:
Compare To: Business Component
Object: Service Request
Field: Status
Value: Cancelled

Query Activities Step:

Select ‘Query Activities’àIn Workflow Steps window
Business Service Name                 Business Service Method
PRM ANI Utility Service                  QueryBusComp

Select ‘Query Activities’àRight ClickàShowInput Arguments
Input Argument                  Type             Value
Business Component Literal             Action
Keep Context           Literal             Y
Search Spec                      Expression       "[Activity SR Id] = '" + [&Object Id] + "'"

Note: Copy the Search Specification syntax from ‘Opportunity Assigned Notification Process’ workflow if requires

Select ‘Query Activities’àRight ClickàShowOutput Arguments
Property Name                  Type                                Output Argument
ActivityRecCount       Output Argument                  Record Count

Note: Need to create ‘ActivityRecCount’ process property for storing Output of ‘PRM ANI Utility Service’
Check Rec Count Step:
Compare To: Process Property
Object: ActivityRecCount
Operation: Greater Than
Value: 0


Update Step:
Select ‘Update’ siebel operation
Business Component                              Operation
Action                                                           Update

Show Fields:
Field Name                        Type                                Value
Status                              Literal                     Cancelled

èSimulate the workflow
====================================================

Invoking using RCR:

Requirement: For every 2 hrs, workflow should be triggered and it should changes the Activity status to ‘On Hold’ if the Service Request Status is ‘Pending’
Design, Validate, Simulate, Deploy and Activate the workflow

Invoking:
SitemapàAdministartion – Sever ManagementàJobsàCreate new record
Component/Job: Workflow Process Batch Manager
Requested Server: RAM (Siebel Server Name)
Repeating: True

Job Details:
Repeat Unit: Hours
Repeat Interval: 2
Repeat From: Actual Start

Job Parameters:
Name                                        Value
Workflow Process Name               UpdateSRActivity-RCR
Search Specification                     [Status] = ‘Pending’

Click on ‘Start’ button to start the RCR component
àCheck the results

For avoiding multiple times triggering process for a single record:

1)    Add ‘Flag’ field in ‘Service Request’ BC
Pre Default Value for this field should be ‘N’
2)    Update ‘Flag’ field value to ‘Y’ in the Workflow.
3)    Add the condition for RCR as
          [Status] = ‘Pending’ AND [Flag] = ‘N’
4)    Trigger the workflow

WORK FLOW USING INTERACTIVE STEP
When Account Status = ‘Customer’, then user should navigate to Account Details Activity View for checking the newly created activity.
Workflow Mode: Interactive Flow
GoToActivities Step:
User Interact View: Account Detail - Activities View
Note: Select the Arrow between User Interact and End step and change the connect type to ‘Condition’
àSimulate the workflow
Sending Email:
When Quote Status is submitted, then email should be forward to Sales Rep and Sales Manager
Workflow Name: SendQuoteEmail
Quote Step:
BC Name                                    Operation
Quote                                        Query
Show Search Spec:
Output Arguments:
Position Step:
BC Name                                    Operation
Position                                      Query


GetManagerEmail Step:
Subprocess Name: GetQuoteManagerEmail
Workflow Name: GetQuoteManagerEmail
BO Name: Position
Position Step:
BC                                   Operation
Position                            Query
Note: Deploy  Get Quote Manager Email (we need to deploy Sub process related workflow)
Sub Process Inputs:
SendMail  Step:
BS Name                                             BS Method
Outbound Communications Manager SendMessage
Input Arguments:

Deploy, activate and invoke the workflow
Note: For identifying Communication Profile
SitemapàAdministration –CommunicationsàCommunication Drivers and Profiles










Profile Attributes
If all activities are ‘Done’, then associated account should be ‘Qualified’
Workflow
Check Status:
Check Activities:
BS Name                          BS Method
PRM ANI Utility Service        QueryBusComp
Check Count:
Update Account:
Business Component                     Operation
Account                                                 Update
Specify the event for the arrow between start step to decision point step:
àDeploy and activate the workflow
Go to run time events, select the event and click on Action Set Name

Add Action
èRe Load Runtime event
àCheck the results


Questions:
1)    What are the workflow modes?
2)    What are the Workflow Tables?
3)   What are the pre defined process properties we need to provide for the workflow?
4)    How to invoke Synchronous workflows and Asynchronous workflows
Ans: Synchronous: Runtime Evetnts, Button Click, Named Method User Property
Asynchronous: Policies, RCR
5)    Do we need to compile the workflow if we create new process property?
Ans: No (But, in Web Services we need to compile)
6)    What is the default mode for the workflow?
7)    How to invoke the workflow using button click in Asynchronous mode?
Ans: Using ‘Workflow Process Manager (Server Request)’ Component
8)    What is the difference between Policies and Runtime Events
9)    What are the components should be enabled and running when we invoke a workflow using policies?
Ans: Workflow Process Manager, Workflow Monitor Agent, Workflow Action Agent
10) What are the policy tables?
11) Can we able to invoke a workflow without giving condition using policies?
Ans: No
12)  How to do error handling in workflows?
Ans:
a.    Using Exceptions
b.    Using Custom Defined Business Service (which will write the Error Message into a log file)
c.    Setting the Monitorng level to ‘4-debug’ in Active Workflow Process (Need to check the results in Workflow Instance Monitor)
d.    From ‘WfProcMgr’ log file (Path: C:\Sea77\siebsrvr\log)
e.    From ‘WfProcBatchMgr’ (For RCR)
13) Can we able to raise custom defined error message in workflows?
Ans: using ‘Stop’ step
14) When we need to go for Sub Process?
Ans: If we wanted to execute the Action in a BC which is binded to different BO.
15) Do we need to invoke the Sub Process related workflow?
Ans: No. But we need to deploy the Sub Process Related Workflow
16) How to get the record count for a business component in workflows?
Ans: Using PRM ANI Utility Service with Query BusComp Method
17) What is ‘Generate Triggers?
18) While running Generate Triggers job, if we provide ‘EXEC’ = ‘Flase’, what will happned?
Ans:
19) If Workflow Monitor Agent is not enabled, what will be the impact on the workflow?
Ans: The Record will be strucked in S_ESCL_REQ table. Workflow will not be triggered
20) Can we able to invoke the workflow using policies in Batch Process?
Ans: Yes, if we provide the duration for the Policy
21) What is the Server Component for RCR?
Ans: Workflow Process Batch Manager
22) Can we use Workflow Process Manager Server component for RCR invoking technique?

Ans: No

4 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Really good info for beginners and Siebel community!! But screen shot is not visible. I'm using chrome.

    ReplyDelete
  4. I really appreciate information shared above. It’s of great help. If someone want to learn Online (Virtual) instructor lead live training in Siebel Business Automation, kindly contact us http://www.maxmunus.com/contact
    MaxMunus Offer World Class Virtual Instructor led training on Siebel Business Automation. We have industry expert trainer. We provide Training Material and Software Support. MaxMunus has successfully conducted 100000+ trainings in India, USA, UK, Australlia, Switzerland, Qatar, Saudi Arabia, Bangladesh, Bahrain and UAE etc.
    For Demo Contact us.
    Nitesh Kumar
    MaxMunus
    E-mail: nitesh@maxmunus.com
    Skype id: nitesh_maxmunus
    Ph:(+91) 8553912023
    http://www.maxmunus.com/


    ReplyDelete