Предварительное условие для процесса Camunda в приложении REST - PullRequest
0 голосов
/ 11 ноября 2018

В некоторых случаях при моделировании процесса с помощью камунды может возникнуть предварительное условие, которое должно быть выполнено. Если предварительное условие не выполняется, экземпляр процесса должен быть остановлен, возвращая событие ошибки.

Теперь проблема в том, что после запуска экземпляра процесса вы не можете вернуть сопоставленный код ошибки как исключение клиенту, который отправляет запрос, поскольку ошибка может быть вызвана только слушателем.

public void createEntity(SomeEntity e) {
    repository.save(e);
    // start a workflow with camunda
    startWorkflow(e);

    /* 
     * If the precondition fails, it would be nice to throw an 
     * exception here, indicating 400 (Bad Request)
     */
}

Если это невозможно, простым решением было бы исключить эту часть из рабочего процесса и запускать ее только в случае успешного выполнения предварительного условия. Но тогда вы не можете смоделировать процесс complete с помощью камунды, только его часть. Возвращение 204 (без содержимого) и извлечение результата экземпляра процесса во втором запросе также кажется мне неправильным.

Итак, можете ли вы дождаться завершения экземпляра процесса или хотя бы вернуть отображенный код ошибки клиенту в запросе?

...