Получить идентификатор выполнения внутри CommandInterceptor - PullRequest
0 голосов
/ 26 июня 2019

Я реализую свой собственный intereceptor команды Activiti следующим образом:

public class ActivitiCommandInterceptor extends AbstractCommandInterceptor {
    private RuntimeService runtimeService;
    private CommandInterceptor delegate;

    public ActivitiSpringTxCommandInterceptor(RuntimeService runtimeService, CommandInterceptor delegate) {
        this.runtimeService = runtimeService;
        this.delegate=delegate;
    }

    @Override
    public <T> T execute(CommandConfig config, Command<T> command) {
        String myVariable = runtimeService.getVariable(<missingExecutionId>, "myVariableName");

        ...
    }
}

Внутри метода execute() мне нужно извлечь переменную из контекста выполнения, относящегося к этой команде.

Для этого мне нужно иметь executionId, но я не могу найти способ получить его.

Как я могу получить мою переменную от этого перехватчика?

Спасибо

1 Ответ

0 голосов
/ 04 июля 2019

Вы можете создать nativeExecutionQuery Это позволяет нам использовать SQL для выполнения операций непосредственно с БД.

В вашем случае просто найдите все идентификаторы выполнения, содержащие ваши переменные, и отфильтруйте их в соответствии с вашими потребностями.

...