如何使用Remoting API访问Procress变量

时间:2015-02-25 21:31:43

标签: jbpm

我在JBPM Demo附带的工作台上运行了一个进程。我可以使用Map of Process Variables成功启动一个进程。在以下用户任务中,我需要检索要在GUI上显示的流程变量。我可以成功检索流程实例。在非远程处理API上,我将流程实例转换为其实际的RuleFlowProcessInstance类,并调用getVariable方法。当我使用Remoting API时,Process Instance的类型为JaxbProcessInstanceResponse,并且没有getVariable方法。在使用Remoting API时是否有其他方法可以查找流程变量?下面是我获取流程实例的代码。

url = new URL("http://127.0.0.1:8080/jbpm-console");
restFactory = new RemoteRestRuntimeEngineFactory(
    DEPLOYMENT_ID, url, JMS_USER, JMS_PASS);
engine = restFactory.newRuntimeEngine();
session = engine.getKieSession();
List<TaskSummary> list = taskService.getTasksAssignedAsPotentialOwner(
    user, LANGUAGE);
for(TaskSummary summary : list) {
    ProcessInstance pi = session.getProcessInstance(
        summary.getProcessInstanceId());
    JaxbProcessInstanceResponse resp = (JaxbProcessInstanceResponse)pi;
    //TODO: somehow lookup Process Variables
}

1 个答案:

答案 0 :(得分:1)

您必须使用AuditLogService接口。

AuditService audit = engine.getAuditLogService();

我认为出于您的目的使用 findVariableInstances(long processInstanceId,String variableId)方法会没问题。

从文档(http://docs.jboss.org/jbpm/v6.1/userguide/jBPMRemoteAPI.html#remote.java.api.jms),表17.12

中检查可用的AuditLogService方法