Поддерживает ли Ooz ie узел принятия решений для вызова узла fork-join или узла единого действия? - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь создать рабочий процесс, в котором, основываясь на переменной, либо выполняется полное форк-соединение, либо выполняется только одно действие. Я получаю сообщение об ошибке, в котором говорится, что для соединения с парой нет форка. Это поддерживается? Вот что я делаю:

<start to="path_decision"/>

<decision name="path_decision">
    <switch>
        <case to="fork-join-path">${some_var eq "foo"}</case>
        <default to="node1"/>
    <switch/>
<decision>

<fork name="fork-join-path>
    <path start="node1"/>
    <path start="node2"/>
</fork>

<action name="node1">
    <ok to="path_end_decision"/>
</action>

<action name="node2">
    <ok to="path_end_decision"/>
</action>

<decision name="path_end_decision">
    <switch>
        <case to="join_end>${some_var eq "foo"}</case>
        <default to="normal_end"/>
    </switch>
</decision>

<join name="join_end to="normal_end">

<action name="normal_end">
...clean up
</action>

1 Ответ

0 голосов
/ 19 марта 2020

В вашем примере следующий путь выглядит корректно:

start -> path_decision -> fork-join-path -> node1 -> path_end_decision -> normal_end

На этом пути у вас есть fork, но у вас нет join, что не хорошо. Валидатор Ojoz ie найдет это и выдаст ошибку. Он не распознает, что вы добавили одно и то же условие к path_decision и path_end_decision.

Я бы использовал node1 и node2 для пути вилки. В этом случае вам не нужен узел path_end_decision, просто go до join_end непосредственно из node1 и node2. Для пути без присоединения я бы go к новому node3 с path_decision и к normal_end оттуда.

У вас также пропал " на join_end, но я надеюсь, что это только опечатка.

...