How to call another workflow from within a Orquesta workflow

workflows

(Sandeep Rawat) #1

How to call another workflow as a task from within an Orquesta workflow.


(Lindsay Hill) #2

Just call it the same as any other action


(Sandeep Rawat) #3

Thanks , I followed examples and could do it. However I have a question. I am using with items to call a subworkflow and that subworkflow has take to ask user. Somehow that block the overall or other tasks is that expected?

Also is it possible to to join concurrent subworkflows called using with items in the main/parent workflow?


(Lindsay Hill) #4

Maybe you could try it and find out?


(Sandeep Rawat) #5

Did something like this:


version: '1.0'

description: Test....
input:
  - device_list

vars:
  - task_results:

output:
  - results: <% ctx().task_results %>

tasks:
  starting:
    action: core.echo message="starting workflow for multiple devices"
    next:
      - do: execute_tasks

  execute_tasks:
    with: 
      items: device in <% ctx(device_list) %>
      concurrency: <% len(ctx(device_list)) %>
    action: core.echo message="Starting for device=<% item(device) %>"
    action: shigo.test-sequential-workflow device=<% item(device) %>
    next:
      - when: <% succeeded() %>
        publish:
          - task_results: <% task(execute_tasks).result.items.result.output.result %>
        do: finish

  finish:
    join: all
    action: core.echo message="Completed <% ctx().task_results %>"