Workflow to process multiple rows
August 6th, 2008
There’s no standard loop construction (For/While/Do) in Siebel Workflow, but there are still a couple of ways to have a Workflow Process handle multiple rows.
Update Operation
For a simple update to a child entity use a Siebel Operation. When a Workflow Process has a Business Object then a Siebel Operation Update step defined for a child Business Component will update all records that are children of the selected record in the Primary Buisiness Component. The update can be filtered to specific records by specifying a SearchSpec on the Update.
This technique can be expanded through the use of Runtime Events: define an Event on the child BusComp to catch a simple update operation and trigger further processing of the record.

Bear in mind that for this to work then the Object Id process property must specify a valid record in the Primary Business Component. Also, watch out for this gotcha if you’re trying to dynamically update a field.
Sub Process SearchSpec
An alternative way to process more complicated actions is to call a sub-process for multiple rows. In this case a Workflow Process is defined as normal to act on a single record specified through the Object Id. Then to have this workflow run for multiple rows, define a new ‘wrapper’ workflow and add a Sub Process step to call the original process. To this Sub Process step add the Input Argument SearchSpec, supplying a search specification through the Value in the normal way.
When the wrapper workflow is executed, the SearchSpec is applied to the primary Business Component of the sub-process and the child workflow is run once for each row returned.

6 Comments Add your own
1. Jim | August 14th, 2008 at 5:52 am
Does this actually work? Can you really process multiple records by specifying “SearchSpec” as an input to the subprocess? I’m curious to find out because this will definitely be helpful to me in creating different workflows.
2. stuandgravy | August 14th, 2008 at 9:01 am
Works for me, Jim. Try it out.
3. Kevin | September 9th, 2008 at 9:42 am
Cool Tip! I used to build a complex loop diagram in my workflow to achieve this.
4. Paul | September 15th, 2008 at 12:47 pm
Siebel 8 provides a NextRecord operation that has been specifically built to loop through child records of a business object - but you can also fool it to loop through the parent by having the parent as a copied object under the BO without a link specified. This is pretty handy. See bookshelf/Metalink for examples.
5. Karan | October 3rd, 2008 at 3:20 pm
There is a business Service, available OOTB for SIA :
SIA BC Utility Service , which has a BCNextRecord method to loop through records.
I am trying to work out how to use this. No Doco for this Business Service, yet!
6. Dan | October 24th, 2008 at 2:27 am
I have a problem and wondering if you know any way to achieve this.
I have propertyset with multiple child propertysets. I need to loop through each child, ps.GetChild(i) record and pass it to sub process in next step.
Is there a way to do this from workflow?
thanks,
Dan
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed