Jbpm 如何使用远程处理API访问Procress变量

Jbpm 如何使用远程处理API访问Procress变量,jbpm,Jbpm,我在JBPM演示附带的工作台上运行了一个流程。我可以使用流程变量映射成功启动流程。在下面的用户任务中,我需要检索要在GUI上显示的流程变量。我可以成功地检索流程实例。在非远程API上,我将流程实例强制转换为其实际的RuleFlowProcessInstance类,并调用getVariable方法。当我使用Remoting API时,流程实例的类型是JaxbProcessInstanceResponse,没有getVariable方法。在使用远程处理API时,是否有其他方法查找流程变量?下面是我获

我在JBPM演示附带的工作台上运行了一个流程。我可以使用流程变量映射成功启动流程。在下面的用户任务中,我需要检索要在GUI上显示的流程变量。我可以成功地检索流程实例。在非远程API上,我将流程实例强制转换为其实际的RuleFlowProcessInstance类,并调用getVariable方法。当我使用Remoting API时,流程实例的类型是JaxbProcessInstanceResponse,没有getVariable方法。在使用远程处理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
}
url=新url(“http://127.0.0.1:8080/jbpm-"控制台";;
restFactory=新的RemoteRestruntMeengineFactory(
部署ID、url、JMS用户、JMS通行证);
engine=restFactory.newRuntimeEngine();
session=engine.getKieSession();
List List=tasksservice.gettasksassignedaspotentilowner(
用户、语言);
用于(任务摘要:列表){
ProcessInstance pi=session.getProcessInstance(
getProcessInstanceId());
JAXBProcessInstanceResp=(JaxbProcessInstanceResponse)pi;
//TODO:以某种方式查找流程变量
}

您必须使用AuditLogService接口

AuditService audit = engine.getAuditLogService();
我认为出于您的目的,使用findVariableInstances(LongProcessInstanceId,String variableId)方法是可以的


检查文档()中的可用AuditLogService方法,表17.12

您提到的方法按照描述工作;但是,流程变量是Java对象,没有字符串。是否有其他方法将Java对象作为值而不是字符串返回?如果没有,我想我可以重写toString方法来编写JSON表示或其他可序列化的形式。