Results 1 to 2 of 2

Thread: Flow level inheritance and flow definitions' validity

Threaded View

  1. #1

    Question 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 at 05:04 PM. Reason: typo

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •