Java 休息服务任务
我在举一个例子 我使用Java 休息服务任务,java,activiti,camunda,Java,Activiti,Camunda,我在举一个例子 我使用 val configuration = new StandaloneProcessEngineConfiguration(); configuration.setProcessEngineName(processEngineName) 这是我的bpmn文件片段 <process id="approve-loan" name="Loan Approval" isExecutable="true"> <serviceTask id="process_tas
val configuration = new StandaloneProcessEngineConfiguration(); configuration.setProcessEngineName(processEngineName)
这是我的bpmn文件片段
<process id="approve-loan" name="Loan Approval" isExecutable="true">
<serviceTask id="process_task" activiti:class="com.noggin.bpm.loan.ProcessRequestDelegate" activiti:exclusive="true" name="compute
Task">
<extensionElements>
<activiti:connector>
<activiti:connectorId>http-connector</activiti:connectorId>
<activiti:inputOutput>
<activiti:inputParameter name="url">http://127.0.0.1:5004/Hello/sayhello</activiti:inputParameter>
<activiti:inputParameter name="method">POST</activiti:inputParameter>
<activiti:inputParameter name="headers">
<activiti:map>
<activiti:entry key="Accept">application/json</activiti:entry>
<activiti:entry key="Content-type">application/json</activiti:entry>
</activiti:map>
</activiti:inputParameter>
<activiti:inputParameter name="payload"><![CDATA[{"bundleId":"101","script":"def greet = {\n \"Hello World\"\n }\n greet()"}]]></activiti:inputParameter>
<activiti:outputParameter name="isActive">Result</activiti:outputParameter>
</activiti:inputOutput>
</activiti:connector>
</extensionElements>
成功地,我能够将有效负载发送到()
我的问题是如何从我启动实例的位置检索响应消息。因为响应将以Json消息的形式发送给流程发起人。我相信我昨天在Camunda论坛上看到了您的类似问题。 不管怎样,我相信问题和答案是一样的 让我确定我理解你的要求。 1.您正在使用JavaAPI启动实例 2.您的流程定义包括进行REST调用的单个服务任务。 3.JavaDelegate类用REST调用的响应填充“Result”流程变量。 4.您希望捕获响应 如果我已经捕捉到了您的需求,那么我认为问题在于您对BPMN引擎如何工作的理解 按照您所建模的流程,流程实例将启动,进行REST调用,填充响应变量,然后立即结束 由于您当前已对流程进行建模,因此无法在流程执行期间捕获响应 您的选择: 1.将您的模型更改为使用某种消息服务发送“结果”,或者添加一个等待状态,您可以在其中检索响应。 2.使用历史查询RESTAPI(或等效的JavaAPI)从完成的实例检索结果负载 它实际上取决于您的用例,以选择最合适的选项 干杯, 格雷格
val processEngine = ProcessEngines.getProcessEngine(processEngineName)
val runtime = processEngine.getRuntimeService
val processInstance = runtime.startProcessInstanceByKey(processInstanceKey)