我必须在Alfresco中启动新的Activiti Workflow之前验证一些数据。此验证由HTTP GET方法调用。如果验证失败,我必须抛出异常并停止创建工作流。
是否可以在我的流程定义文件(.bpmn20.xml)中的startEvent上调用HTTP GET方法?我怎么能这样做?
答案 0 :(得分:5)
使业务流程的第一项任务成为服务任务:
<startEvent id="start" activiti:formKey="..."></startEvent>
<sequenceFlow id="flow1" sourceRef="start" targetRef="validate" />
<serviceTask id="validate" name="Validate" activiti:delegateExpression="${ValidateDelegate}" />
创建一个类ValidateDelegate
的Spring manged bean(类名称很重要),扩展org.alfresco.repo.workflow.activiti.BaseJavaDelegate
。覆盖execute方法并在那里实现验证。如果您觉得有必要,请抛出异常。