[英]Can i access the value of the timer event in camunda?
由於可以設置計時器事件的持續時間,因此可以通過Java代碼訪問它嗎? 還是作為camunda變量?
如果要訪問XML中定義的屬性,則可以使用BPMN Model API 。 例如:
String processDefinitionId = ...
String timerEventId = ...
BpmnModelInstance bpmnModel = repositoryService.getBpmnModelInstance(processDefinitionId);
CatchEvent timerEvent = bpmnModel.getModelElementById(timerEventId);
TimerEventDefinition timerEventDefinition =
(TimerEventDefinition) timerEvent.getEventDefinitions().iterator().next();
TimeDuration duration = timerEventDefinition.getTimeDuration();
String configuredDuration = duration.getTextContent();
如果要獲取計時器下一次在運行時觸發的實際時間,則必須查詢相應的作業:
String processDefinitionId = ...
String timerEventId = ...
String processInstanceId = ...
Job timerJob = managementService.createJobQuery()
.processDefinitionId(processDefinitionId)
.activityId(activityId)
.processInstanceId(processInstanceId)
.singleResult();
Date firingDate = timerJob.getDueDate();
請注意,如果您查詢的流程實例尚未到達timer事件,則timerJob
為null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.