Например, у меня есть рабочий процесс, который может начинаться немедленно или с задержкой (переменная startTime
).В Activiti, как проверить, установлена ли переменная?
Сразу после startEvent
У меня есть exclusiveGateway
, где я проверяю, должен ли поток продолжать или ждать до startTime
.
<exclusiveGateway id="startGateway" default="startSequenceFlow3"/>
<sequenceFlow id="startSequenceFlow1" sourceRef="startGateway" targetRef="startTimer">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${startTime != null}]]></conditionExpression>
</sequenceFlow>
Запуск рабочего процесса прохождения переменной startTime
работает отлично, но не проходит не startTime
бросает исключение:
Не удается разрешить идентификатор «начальное время»
Что бы лучшим способом проверьте, установлен ли startTime
, так как startTime != null
не работает? Я бы предпочел не передавать startTime
вообще (не startTime=null
).
код, который я использую в том числе переменной:
variables.put("startTime", startTime);
ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey, variables);
или без:
ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey, variables);
Вместо не устанавливая 'startTime' на всех, вы можете установить его на особое значение, например,' NONE', а затем проверить в процессе, если он установлен в 'NONE' решить, что делать. – Jesper