Call graph of workflows

Hi all,

I’m looking to generate a call graph of my project’s workflows. The graph would be based on Invoke Workflow activities.

Example:

  • Main invokes InitAllSettings and Process
  • Process invokes Another

A graph might look like this:

Does Studio or Orchestrator have a way to do this?

Hi @eeskildsen

Once you Publish your NUPKG or code to the Orchestrator , under Packages , Click on Explore Package icon of the Updated Package.

Then Click on the Package Version and the Xaml you want to see the flow.

Hope this helps,
Thanks.

Hello @eeskildsen

You can do as above suggested by @suraj.setty . Else if you want to create flows and to convert that to workflow you can use Task capture also. There you can export the diagrams to different format.

Also please have a look into this

Thanks.

@suraj.setty and @Rahul_Unnikrishnan,

Thanks for the replies. That isn’t quite what I’m looking for.

I’m looking for a call graph of workflows (multiple XAML files). Suraj, your screenshot shows the flow of a state machine (a single XAML file).

Here’s an example of where a workflow call graph could help. Suppose that:

  • Workflow A calls Workflow B, which calls Workflow C, which calls Workflow D (A → B → C → D).
  • You create the workflows and wire them together.
  • Later on, it emerges that Workflow D needs additional data from Workflow A.
  • You give Workflow D a new argument, in_SomeArgument. However, Workflow A can’t pass a value to Workflow D directly, because there are two intervening workflows (B and C). You need to add in_SomeArgument to both of them as well.
  • It’s a large project and you’ve forgotten which workflows call which. You determine the flow of control, noting that A calls B calls C calls D. You add in_SomeArgument to workflows B and C and pass it to the next workflow in the Invoke Workflow activity.
  • In Workflow A, you then pass the needed value to Workflow B, which passes it to Workflow C, which passes it to Workflow D.

If there’s nothing built for this yet, I may experiment with creating something that can do it. Maybe the fact that it doesn’t exist already indicates that Studio is oriented toward flatter structures with fewer XAML files. And that’s okay…Projects can definitely be structured that way, but this could help us in certain projects where the flow of control has gotten complicated.

1 Like

I was just the OP’s question to myself. So, me too, would be interested in a way to visualize the call graph between workflows (as opposed to the activity graph inside a workflow). Using a tool like graphviz (and alike), it should be easy to generate such a graphical representation.

So, if anyone has a ready-to-use solution, please post it here :slight_smile: