我在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
}
答案 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方法