JSR352 решает следующий шаг на основе возвращаемого параметра из Decider

Я хотел бы реализовать Decider, который возвращает идентификатор следующего шага, который необходимо выполнить. (Этот вопрос связан с моим другим вопросом здесь, если вы хотите знать, почему я пытаюсь это сделать: Спецификация пакетного задания JEE с множеством необязательных шагов)

<decision id="decider1" ref="skipNextStepDecider">
    <properties>
        <property name="condition" value="isExecuteSteps"/>
    </properties>
    <next on="*" to="STEP_ID_RETURNED_BY_DECIDER"/>
    <end on="SKIP"/>
</decision>

Есть какой-либо способ сделать это? Я использую JSR352 с Websphere Liberty, если это уместно.

ОБНОВЛЕНИЕ

Моей целью было избежать следующего:

<decision id="decider1" ref="skipNextStepDecider">
    <properties>
        <property name="condition" value="isExecuteSteps"/>
    </properties>
    <next on="STEP1" to="step1"/>
    <next on="STEP2" to="step2"/>
    <next on="STEP3" to="step3"/>
    <end on="SKIP"/>
</decision>

person taranaki    schedule 06.12.2019    source источник


Ответы (1)


Для этого вам нужно заранее знать возможные целевые шаги...

JSL анализируется заранее (в основном), поэтому вы ничего не можете поместить в значение «to», которое разрешалось бы с результатом обработки шага/решателя.

Может быть интересная возможность обновления спецификации.

person DFollis    schedule 06.12.2019
comment
Я заранее знаю возможные целевые шаги. Как это мне поможет? (Я хочу избежать длинного списка следующих свойств) - person taranaki; 06.12.2019
comment
@DFollis просто указывает на последствия этого решения. Тот факт, что вы заранее знаете полный список шагов, делает это возможным решением. Это не делает его чище или элегантнее; вам придется включить длинный список следующих элементов. Если бы вы не знали целевых шагов, это было бы неудачно. - person Scott Kurz; 06.12.2019
comment
Причина, по которой это невозможно, связана с более широкой проблемой, в которой замена JSL обычно не допускает никаких значений, вычисляемых во время выполнения (это еще один момент, сделанный @DFollis). Мы открыли эту проблему в отношении спецификации JSR 352... мы еще не восстановили средство отслеживания проблем для проекта Jakarta Batch, но должны сделать это в качестве следующего шага в Джакарте. - person Scott Kurz; 06.12.2019
comment
Большое спасибо за разъяснения. - person taranaki; 10.12.2019