Skip to content

Workflow Execution

The workflow engine queues every step per entity to be executed by the workers. So for each entity there is a run method call in the worker. Per step and FB the data context and the condition on the steps are defining the entities on which the FB is executed.

flowchart TB  

        start([Start Workflow]) ===> wf
        subgraph wf[Workflow]
            direction LR
            subgraph fbs[ ]
                direction LR
                fb1 --> fb2 --> fb3
                subgraph fb1[Function Block 1 per Group]
                    direction LR
                    subgraph fb1context[Context FB 1]
                        direction TB
                        fb1l1((Location 1))
                        fb1l2((Location 2))
                    end
                    fb1c(Condition FB1) ==> fb1context
                end
                subgraph fb2[Function Block 2 per Device]
                    direction LR
                    subgraph fb2context[Context FB 2]
                        direction TB
                        fb2l1r1(Router L1-1)
                        fb2l1r2(Router L1-2)
                        fb2l2r1(Router L2-1)
                        fb2fc1(Configuration Item / Controller eg vManage)
                    end
                    fb2c(Condition FB2) ==> fb2context
                end
                subgraph fb3[Function Block 3 per Device]
                    direction LR
                    subgraph fb3context[Context FB 3]
                        direction TB
                        fb3l1s1(Switch L1-1)
                        fb3l1s2(Switch L1-2)
                        fb3l2s1(Switch L2-1)
                    end
                    fb3c(Condition FB3) ==> fb3context
                end

            end
            subgraph full[Full Context]
                direction LR
                fl1((Location 1))
                fl2((Location 2))
                fl1 --> fl1r1(Router L1-1)
                fl1 --> fl1r2(Router L1-2)
                fl2 --> fl2r1(Router L2-1)
                fl1 --> fl1s1(Switch L1-1)
                fl1 --> fl1s2(Switch L1-2)
                fl2 --> fl2s1(Switch L2-1)
                fc1(Configuration Item / Controller eg vManage)
            end

            full --> fb1c
            full --> fb2c
            full --> fb3c

        end


style fb1 fill:#8d8d94
style fb2 fill:#8d8d94
style fb3 fill:#8d8d94

style fc1 fill:#837dff
style fb2fc1 fill:#837dff

style full fill:#b3b1c9
style fb1context fill:#b3b1c9
style fb2context fill:#b3b1c9
style fb3context fill:#b3b1c9


style fb2l1r1 fill:#f2f5b5
style fb2l1r2 fill:#f2f5b5
style fb2l2r1 fill:#f2f5b5
style fb3l1s1 fill:#f2f5b5
style fb3l1s2 fill:#f2f5b5
style fb3l2s1 fill:#f2f5b5
style fl1r1 fill:#f2f5b5
style fl1r2 fill:#f2f5b5
style fl2r1 fill:#f2f5b5
style fl1s1 fill:#f2f5b5
style fl1s2 fill:#f2f5b5
style fl2s1 fill:#f2f5b5