Announcement Announcement Module
Collapse
No announcement yet.
Flow level inheritance and flow definitions' validity Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Flow level inheritance and flow definitions' validity

    Hello,

    I have a question about flow inheritance and flow XML definitions' validity.

    I have some abstract - reusable and not directly executable - flows: let's say AbstractFlow_A, AbstractFlow_B, AbstractFlow_C.

    Each abstract flow may contain many states.

    Then I have other abstract and shared flows containing common end states and global transitions: let's say AbstractCommonStatesFlow_1 and AbstractCommonStatesFlow_2.

    Now I need to compose some concrete flows - using flow level inheritance - like this:

    - AbstractFlow_A + AbstractCommonStatesFlow_1 = ConcreteFlow_A_CS1 (parent = "AbstractFlow_A, AbstractCommonStates_1")

    - AbstractFlow_B + AbstractCommonStatesFlow_1 = ConcreteFlow_B_CS1 (parent = "AbstractFlow_B, AbstractCommonStates_1")

    and

    - AbstractFlow_B + AbstractCommonStatesFlow_2 = ConcreteFlow_B_CS2 (parent = "AbstractFlow_B, AbstractCommonStates_2")

    - AbstractFlow_C + AbstractCommonStatesFlow_2 = ConcreteFlow_C_CS2 (parent = "AbstractFlow_C, AbstractCommonStates_2")

    These concrete flows are simply the result of a merge and DON'T define other own steps.

    These concrete flows are used as sub-flows in other "high-level" flows (the ones actually executed by users):

    - MainFlow_1, which uses ConcreteFlow_A_CS1 and ConcreteFlow_B_CS1 as sub-flows (notice that common end states - CS1 - are shared and this allows to jump backward and forward from any point of the main flow)

    - MainFlow_2, which uses ConcreteFlow_B_CS2, ConcreteFlow_C_CS2 as sub-flows (notice that common end states - CS2 - are shared and this allows to jump backward and forward from any point of the main flow)

    Everything works fine and flows are perfectly composed.

    *** BUT ***, even if my app works properly, STS says that ConcreteFlow_A_CS1, ConcreteFlow_B_CS1, ConcreteFlow_B_CS2, ConcreteFlow_C_CS2 contain an error because a "start state is missing"; I've found two ways to avoid this warning:

    1) adding an empty start-state attribute:

    HTML Code:
    <flow... parent="AbstractFlow_A, AbstractCommonStates_1" start-state=""><!--no own states--></flow>
    2) adding a start-state attribute containing the id of the parent flow's start-state

    HTML Code:
    <flow... parent="AbstractFlow_A, AbstractCommonStates_1" start-state="id-of-AbstractFlow_A-start-state"><!--no own states--></flow>
    Questions:

    - Can I use flow level inheritance to have a simple merge without other child flow's states?

    - If a simple merge is allowed, have I anyway to declare a start state in child flow?

    Thank you very much!

    Regards.

    Emilio
    Last edited by emilio.remogna; Feb 7th, 2013, 06:04 PM. Reason: typo

  • #2
    Please, can anybody answer this question? Or help me to find docs about? I've read the reference manual, but didn't find anything so specific.

    Thank you very much!

    Best regards.

    Emilio

    Comment

    Working...
    X