Starting a New Workflow from a Previous Workflow



By: coolguys

December 10, 2007 11:14 am

Reads: 146

Comments:0

Rating:0

Problem

A Forum reader recently asked:

“I have a workflow where I should branch flow to several different workflows; however, I have separate flows already available. My reason to branch several approvals is that I need a Request/manager approval form where there is a collection of rights to choose from at one point. But rights should be also available to request separately. I would like to use available workflows to handle owner/admin approval…”

And here’s the response from J. Craddock …

Solution

1. Make a note of the workflow you wish to start and its required input parameters. In my example I use a control named “Field”, datatype String, control type Text.

2. Using an HTML browser, navigate to the server where your user application app server is installed. You will need to obtain the wsdl and save it to disk. In my example, it’s accessable using
“http://jcraddock:8080/IDM/provisioning/service?wsdl”

3. Create a new flow. For the request form, make sure you gather enough information to pass to the 2nd flow. It’s easier if you use the same control and data types in both workflows, the caller and the callee.

4. In the new flow, drop an integration activity down. Go to the WSDL Resource on the property sheet and navigate to where you saved the wsdl in step 2.

5. At the dialog for choosing port type and operation, choose “Provisioning” as the port type and “start” as the operation.

6. In the data item mapping view, select pre-activity and click the Mapping button. This will bring up the mapping dialog.

7. In the dialog, customize the inputs to match the inputs required by the workflow you need to start. Retain arg0 and arg1, and for arg2, use the right mouse button to customize how many items your workflow needs to start. In my example I only have one field, so I have one data item node, and under that I have one name and one value/string.

8. Map the following:

  • arg0 – an expression of the flow you wish to start (my example,
    ‘CN=startWithCB,CN=RequestDefs,CN=AppConfig,CN=UserApplication,CN=TestDrivers,O=novell’)
  • arg1 – an expression of who the request is for (my example, recipient (no quotes)
  • arg2/dataitem/name – an expression of the name of the Field (my example, “Field”)
  • arg2/dataitem/value/String – an expression of the value you wish to pass (my example, flowdata.get(‘Start/requestForm/Field’) (no quotes)

9. If your server is protected, as it should be, you will need to pass in the user id and password of the user application admin server in order to be able to start the flow.

a) Select the integration activity. You will notice that a fourth tab appears in the PRD editor, labeled “Integration”.

b) Click that tab, and a tree structure with commands appears.

c) Scroll down to the WS Interchange command and double-click it.

d) In the resulting dialog, select the Connection tab.

e) Type in the user id and password expressions (because they are expressions, they need quotes). My example: userid: ‘cn=admin,o=novell’ password: ‘mypassord’

10. Click OK.

11. Save and deploy.

The flow should start!

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Tags:
Categories: Uncategorized

Disclaimer: As with everything else at NetIQ Cool Solutions, this content is definitely not supported by NetIQ, so Customer Support will not be able to help you if it has any adverse effect on your environment.  It just worked for at least one person, and perhaps it will be useful for you too.  Be sure to test in a non-production environment.

Comment