Workflow: Running in loops
Posted by: Collaborative Consulting
Template which provide a simple solution to perform looping of a workflow.
Overview
The solution to loop a workflow/mapping consists of the following components: A. Control table: This table has at a minimum two columns, one column stores the value based on which looping has to be performed which in our case is Dept_ID. The second column specifies if the row has been processed.
B. Parent workflow: This workflow consists of a mapping which determines if the there are any rows left in the control table that have to be processed. If yes then it calls the child workflow else it creates an indicator file which signals the end of the loop. C. Child workflow: This workflow contains the mapping which needs to be looped as per the requirement. The mapping also updates the control table to flag the row which it is currently processing.Both the workflow contains command task which call each other using pmcmd with NOWAIT parameter. The values in the control table have to be reset prior to process.You can download this listing as part of the Advanced Workflow Techniques.
DEPT_ID | PROCESSED |
---|---|
101 | X |
102 |
Features
Solution to loop through a workflow. Sample mapping xml and workflow are provided as XML?s. DDL for control table is provided.Visio flows for the workflows are also provided using Informatica stencil.Current Version: 1.0Release Date: 4/4/2011 System Requirements:
- Informatica PowerCenter 9.1 and 9.5
Resources
Support
Email: brajagopal@collaborative.com Phone : 001.781.565.2600 Fax : 001.781.565.2700Website :www.collaborative.com Head Office Headquarters Boston70 Blanchard Road, Suite 500Burlington, MA 01803
Comments (6)
Hi,
I followed the steps. The parent workflow is calling the child workflow properly.
However, the child workflow fails to call parent in a loop as the instance of parent is still executing.
In other words, the paren is still in execution mode after calling the child. When child tries to call the parent again, it fails as there is already an active execution of the parent.
Could you please advise how parent can immediately complete after calling the child and not wait on the child?
Thanks,
Srinivas