Showing posts with label Workflows. Show all posts
Showing posts with label Workflows. Show all posts

July 09, 2016

How to add delay in Siebel eScript/Workflow?

Disclaimer: Ideally you should never have to create delay in Siebel, you must be doing something absolutely wrong or something amazingly innovative if you have to add delay in Siebel script or Siebel workflows.
How to add some delay in Siebel Script?

Let's assume for some(god forbid) reason you need to create delay of some seconds in Siebel escript or workflow, then how will you do it? 

Siebel provides sleep step in workflows that can be used to create delay for interactive workflows, but there is no way (documented) to create delay for service workflows or in scripts. Let's see what workarounds do we have.

Solution 1: User operating system timeout in script. 

Siebel can invoke operating system commands by Clib.system function, these functions wait till time command is successfully completed by operating system. 
Clib.System("timeout 2"); // Two second delay in windows hosted environment

or 
Clib.system("sleep 2"); // Two second Linux hosted environment.

This instruction will call operating system timeout command to create delay and Siebel will wait for command to finish and only after the specified time Siebel will continue with rest of the code. 

Solution 2:  Use EAI File Transport service to read an non existent file and with FileSleepTime parameter to create delay.

This will cause Siebel to wait for file for at least time specified before timing out, an then proceed with workflow. Make sure you use exception branch in for this step to proceed.

Solution 3:  Use asynchronous server request business service to execute subprocess at specified time in future. 
This solution doesn't garuntee the execution on that time, but works perfectly fine incase there is some degree of tolerance.

June 21, 2016

Siebel Tools and Windows 10

Those who have been following blog closely would know from my latest demo video that I have been using windows 10 and Siebel IP16 for experimentation.

One can easily install Siebel Tools and client on windows 10 and run it on Oracle XE with Sample database, however Siebel IP16 being a new release it has some quirks which are not very developer friendly.

Here are some problems that I get everytime:

1. All workflows by default are not valid :(
Workflow simulator will error out straight away even if there is nothing wrong with workflow. Validator might say workflow is not fully connected.
Workflow simulation on Windows 10

What's the fix? Just edit the workflow once and move around workflow steps. And then simulate again, this time it will work just fine.

2. Tools wont boot and authentication subsystem will reject your login.
An internal error has occurred within the authentication subsystem for the Siebel application. Please contact your system administrator for assistance.(SBL-DAT-00565)
SBL-DAT-00565

Oracle XE is either crashed or booting up just give it few minutes have a coffee or something.


3. Dedicated client wont start
A system error occurred trying to start the command 'siebel.exe /c "C:\Siebel\16.0.0.0.0\Client\BIN\enu\scomm.cfg" /b "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" /u SADMIN /p SADMIN /d SAMPLE_XE /h'.(SBL-DEV-00127)
Cant start dedicated client.

Just run tools as administrator and you will be fine.

Hope it helps.

My current setup includes: Windows 10, Siebel IP16, Oracle XE, Oracle Virtual Box containing : Windows 2008 Server which is hosting  > MSSQL Server + IIS + Siebel Server IP16.

March 22, 2016

How to use Siebel Product Configurator API in Workflow?

What is Product Configurator API? 
Siebel product configurator API is bunch of Siebel business services and methods which allows to add order item under a root customizable product which complies with rules and validations defined in product model.

It is much more cryptic and complex if one starts with the bookshelf.

@renjith shared this beautiful document on slack community.This example explains how we can invoke Siebel Configurator API in correct sequence to add line items in an order.
Product Configurator API in Workflow
In this example, workflow first creates new order and a order line item for root customizable product using Siebel Operation Step. And then it invokes Remote Complex Object Instance service(API) methods to add line item under the root customisable product.

Product Model used for demo :
Siebel Product Model
 Business Service executed in sequence are:

  1. ISS Copy Service :: Load EAI
  2. Remote Complex Object Instance :: LoadInstance
  3. Remote Complex Object Instance :: CreateSession
  4. Remote Complex Object Instance :: SyncInstance
  5. Remote Complex Object Instance :: UnloadInstance

Level of simplicity and details shown in the document is just awesome. Hats off to @renjith!!

Download the document from here. If document has been helpful, then please plus one this post to let @renjith know.

If you have similar articles and would like to share with all viewers then please let me now in comments below. I will be more than happy to share.

March 14, 2016

Scenario based Interview Questions - Part 2

This is the second post in series of Scenario based Interview Questions . I recommend you to read first post of this series where we discussed Siebel Configuration Interview Questions before going through this post.

If you like the questions and would like to see more like this, then please +1 this post on google.

November 10, 2015

What are the limitations of Siebel Workflows?

This question was asked by one of readers of this blog, and it quickly got me intrigued to research for answer. While doing research I compared the capabilities of Siebel workflow vs Siebel scripting, and got amazed with results.




I started of by listing things which I thought wont be possible in workflows however I got surprised with its capabilities as I dig deeper. I am classifying results as Myths, Facts and Limitations.

Myths

Myth 1: Run time events doesn't work from workflows.

Absolutely wrong, runtime events are tagged to bus comps and work the same in workflow as they work on UI.

Myth 2: Can't update read-only fields in workflows.

One might think that as it is not possible to set admin mode to true in workflow thus it wont be possible to update read only fields. But that is simply a myth.The fact is that there is no need to set admin mode to true in workflows, read only user properties are inactivated for workflows all the time!

Myth 3: There is no way to associate and disassociate records of MVG BusComp in workflows.

If Siebel operation is used on detail bus comp, delete operation acts like dis-associate and insert like an associate.

Myth 4: Workflow can not query based on calculated fields.

Not True. Siebel Operation search spec can be created using Calculated fields, however be cautious of performance impact in case you plan to use calculated fields in search spec.

Facts


Fact 1: Cannot query on child BC directly in Siebel workflows. Workflow always queries Primary bus comp first.

True, however I don't consider it as limitation as one can create workflow based on a different BO which has child bus comp as primary buscomp, and there are many business services available which can query data from another BO without creating another sub process.

Fact 2: There is no way to change primary record in MVG in workflows.

This one I am not too sure about, would like to know from the experts, how they have overcome this problem.

Limitations


Limitation 1: It is not possible to change view mode in Workflows?
Siebel Operation step always queries database with "All View" view mode there is no way to change this pragmatically.


Limitation 2: It is not possible to pass variable by reference in to a workflow.
This seems to be the minor limitation of the workflow, however it does not limit the capability or usage in anyway.


Limitation 3: There is no native way of executing Clib functions in workflows.
There are lot of functions available for execution in workflows however Clib is not one of them. Thus if there is a need to call Clib function through workflow you will have to call a custom business service.


Limitation 4: There no native way to execute methods on application or BC level.
Agreed as limitation unless someone suggests any way out. Some BusComps exposes some methods that can be executed only with scripting. For Example: 1. RepriceAll Method on Quote Item and Order Items. 2. GetFile Methods on Attachment Buscomp etc..

 

Limitation 5: It is not possible to set sort spec on Siebel operation?
This seems to be the only glaring Limitation of workflow/Siebel Operation that Siebel operation does not contain any way to query based in a sort spec. Arguably one can say sort spec can be specified on bus comp, however it wont be wise to clone buscomp just to change the sort order. Would like to know what readers think?



I don't believe that this list is complete in anyway, hoping to get some answers from community. Please feel free to contribute your thoughts on this topic, would be more than happy to be proved incorrect on the points above.

June 27, 2015

How to build Siebel Workflow Expression?

I remember my days when i started with Siebel, I just couldn't get the syntax of workflow expression correct. I still see newbies of siebel struggling to get it right the first time. In this post I would try to make the basic rules of workflow expressions as simple as possible.

Basic Rules of Siebel Workflow Expression are :

  1. Siebel Workflow takes String as input.
  2. + (plus) is the concatenation operator.
  3.  Process properties can be referred using & operator like this > [&Object Id] 
  4.  Don't worry about spaces in process property names, they are allowed.

Let's take an simple example where we want to build the expression to search for records with Contact Id specified in Object Id the search spec would be:



if Object id contains : 1-12345 then expression will be evaluated as :


Did I say its a H.U.G ?

See what is the difference between Expression Business Component and Filter Business Component


Hope it helps. If you know similar topic and want to share with Siebel community, please post it in comments below. I will post it as blog post.

March 12, 2015

100 Siebel Interview Questions : Workflows : Part 2

On readers interest, creating Part 2 for the post on Siebel Workflow Interview Question, feel free to leave a comment for any specific question that you faced difficulty in answering or would like to know more about any specific area in Siebel.



Question: Is it mandatory to specify Business Object on a Workflow?

Answer: No, Business Object needs to specified only when there is need to use Siebel Operation in Workflow.

Question: What is the difference between Expression business component and Filter business component in Siebel Operation?

Answer: These business components fields are used in Siebel Operation when search spec is built by referencing another business component field.

For Example: To find Account records where Account Id is specified in Contact's Account Id field, expression will be created like :
"[Id] = [Account Id]"
And Filter Business Component will be set as : Account and Expression Business will be set as Contact. Thus it will be evaluated as :

"[Account.Id] = [Contact.Account Id]"

read more on :
How to create Siebel Operation Expression 
Bookshelf: Defining Siebel Operation Search Spec


Question : How to compare two properties in Siebel Workflow?

Answer: Expression on Siebel Conditional branch can be used to compare two properties.  To see how to create expression in siebel workflow please see.



March 10, 2015

How to invoke siebel workflow through Command Line?

Siebel provides very simple way of handling this situation via server manager. Server manager is command line interface of Siebel which primarily designed to perform system administration activities like starting and stopping components, it can also be used create requests for the server components.

To execute a siebel workfow through command line first we need to connect to the server manager through this command:

srvrmgr /g gateway1 /e enterprise1 /s server1 /u sadmin /p pwd

 And then execute following command

run task for component WfProcMgr with processname='Test Workflow'

You additionally pass SearchSpec and use workflow process batch manager to execute workflow for multiple records.

run task for component WfProcBatchMgr with processname='Test Workflow', SearchSpec ='[Date]=Today()-1'  

This solution has only two limitations,  

First, we can not pass values for process properties of the workflow. This has to be done by querying the values first and then calling the actual workflow.

Second, if the batch size is huge it might take few hours to serveral hours to process depending upon the workflow process. This happens because Workflow Process Batch Manager executes the workflow in sequence. That means it will only start the workflow for second record when first is finished.

Please share your experiences with Batch processes designed through command line.  

December 09, 2013

100 Siebel Interview Questions: Workflows

 You are reading, the most read article of this entire blog. Please share in comments if it helped you, if you would like to any other question to the list. 💙

This article has been added on reader's request, and these are not the 100 questions as of now ( ideally there should not be 100 question in an interview :) ). My intention with this article is to point all the minor doubts of Siebel Consultants regarding workflows. Feel free to suggest any other question on this topic, I will be more than happy to add it to the list.


Question: What are the different ways to invoke workflows in Siebel?

Answer: Some of the known ways of executing workflows are:
1. Named Method User Property
2. Calculated Field expression
3. Script on BusComp, Applet, Application, Business Services
4. Workflow Policy
5. RCR & Server Requests
6. Asynchronous Server Request - Business Service
7. Run Time Events
8. Command line using Server Manager
9. Web services & Receiver components(JMS,MQ)
10. Through Siebel URL 
11. Commands
12. Order Management Signals

Question: How to invoke workflow on specific server?

Answer: Workflows executed through workflow process manager business service are executed on the same server where request is made. Asynchronous Server Request and Server request business service can send request to other servers for workflow execution; this can be done by specifying server name as input argument.

Question: What are different ways of error handling in workflow process?

Answer: There are two ways of error handling in Siebel workflows. Most popular to handle error in workflows are exception branches(the red arrows :) ), they can be created for each step in workflow to handle error for the step.Secondly  we can use Error Process Name property of workflows to call another workflow process to handle in case of any error.

Question: How to configure a workflow policy?

Answer:
1. Ensure Workflow Policy column is created in Siebel tools & Added in workflow policy object
2. Create workflow policy action to execute workflow
3. Create workflow policy record and create conditions and associate action to the workflow policy.
4. Execute “Generate Trigger” task to create triggers
5. Restart Workflow Monitor Agent

Question: What is the difference between Synchronous and Asynchronous workflow execution?

Answer: Synchronous workflow is executed in user session and user has to wait till workflow is executed. Workflow is executed synchronously usually through button click or record operations like set field value or write record, where user need to know the outcome of the workflow.

Asynchronous workflow requests are executed by server in background and does not requires user to wait for the outcome. These type of workflows are usually interface workflows.

Question: What is the difference between Stop step and End Step?

Answer: Stop step sets the status of workflow to “In Error” and End step set the status to “Completed”
Stop steps should be avoided in integration workflows and workflow policies as they may cause server component to error out.

Question: What is the difference between Workflow policy and Run time events?

Answer: Workflow policy adds the workflow execution request to the queue and executes the workflow from server components.
Runtime event executes workflows as and when requested and process is executed in user session user has to wait for the workflow to complete.

Questions: Is it possible to create Workflow without Business Object ? If yes how ?

Answer: Yes it is possible to create workflow without business object. Business Object is not a required field on Workflow. It is only required when workflow need to use any siebel operation.

Question: How to get current date in Siebel Workflow?

Answer:  Property can be populated with current date by using Timestamp() in Siebel Workflow. Syntax of Timestamp in Siebel Workflow.

Question: What is stored in Siebel Operation Object Id when Query method from Siebel operation step returns more than one record?

Answer: Siebel Operation Object Id contains * if more that one records or updated are queried using Siebel operation.


Question: How to pass hierarchical property set from custom business service to Workflow?

Answer: To pass hierarchy from custom business service to workflow, type of property set should be the same as the name of output argument. 



http://howtosiebel.blogspot.com/2015/10/download-siebel-interview-questions-pdf.html
Download Siebel Interview Question eBook

See Part :2 of Siebel Workflow Interview Questions

See more EAI Interview Questions here.

June 28, 2013

Date manipulation in Siebel Workflows - Contd

In continuation of Incrementing date in workflows.
See latest post on Date functions Siebel eScript

This article explains how to compare two dates type process property in Siebel Workflows.

Everything seems to work as expected, the only point is to make sure you have set the property type of the property holding date as "Date"

To add number of days to a date: [&Date] +30
To subtract number of days from a date : [&Date] - 4
To find if date is passed: [&Date] < Today()
To find if date is future date: [&Date] > Today()
To Add 1 Sec to a date: [&Date] + (1/(24*60*60))

Comparing Date in Siebel Workflow Expression
Comparing Date in Siebel Workflow Expression

Julian days also seems to work perfectly in Siebel Workflow Expression.

To get current Julian month use: JulianMonth(Today())
To get Julian Year: JulianYear(Today())
To get Julian Week: JulianWeek(Today())

Julian Month in Siebel Workflow Expression
Julian Month in Siebel Workflow Expression
Output:
Siebel Workflow Process Output
Workflow Process Output
Today(): returns current system date without timestamp.
Timestamp(): returns date with time stamp

hth

June 24, 2013

How to increment date in Siebel workflows?

It is supposed to be the one of the toughest task in e-script is to handle date fields and manipulate the data. Recently I learned it is fairly simple to manipulate the date values in Siebel Workflows as compared to e-script.

This revelation goes to Naresh Lalam from siebel.ittoolbox . After his one of the comments I went up and verified that date fields can be simply manipulated from expression of Workflow Process

Provided :
1: Process Proerty storing Date is of type : Date
2: Number of days which needs to subtracted to added should be integer.
Output Arguments








On simulating these expression it results extremely simple output.

Workflow Process Properties












Credit : Naresh

cheers :)