工作流之历史管理服务

package com.imooc.activiti.coreapi;

import com.google.common.collect.Maps;
import org.activiti.bpmn.model.FormProperty;
import org.activiti.engine.*;
import org.activiti.engine.form.StartFormData;
import org.activiti.engine.form.TaskFormData;
import org.activiti.engine.history.HistoricActivityInstance;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.history.HistoricVariableInstance;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.DeploymentQuery;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.Execution;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.runtime.ProcessInstanceBuilder;
import org.activiti.engine.task.Attachment;
import org.activiti.engine.task.IdentityLink;
import org.activiti.engine.task.Task;
import org.activiti.engine.test.ActivitiRule;
import org.activiti.spring.integration.Activiti;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.logging.log4j.spi.LoggerRegistry;
import org.junit.Rule;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;

import java.util.List;
import java.util.Map;
/**
 * test
 **/
public class HistoryServiceTest {

    @Rule
    public ActivitiRule activitiRule = new ActivitiRule();

    @Test
    @org.activiti.engine.test.Deployment(resources = {"my-process.bpmn20.xml"})
    public void testHistory(){
        HistoryService historyService = activitiRule.getHistoryService();
        Map<String,Object> variables = Maps.newHashMap();
        variables.put("key0","value0");
        variables.put("key1","value1");
        variables.put("key2","value2");
        ProcessInstanceBuilder processInstanceBuilder = activitiRule.getRuntimeService().createProcessInstanceBuilder();
        Map<String,Object> transientVariables = Maps.newHashMap();
        transientVariables.put("tkey1","tvalue1");


        processInstanceBuilder.processDefinitionKey("my-process")
                .variable(variables)
                .transientVariable().start();

        activitiRule.getRuntimeService().setVariable(processInstance.getId(),"key1","value1");
        Task task = activitiRule.getTaskService().createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
        activitiRule.getTaskService().complete(task.getId(),variables);
        Map<String,String> properties = Maps.newHashMap();
        properties.put("fkey1","fvalue1");
        properties.put("key2","value2");

        activitiRule.getFormService().submitTaskFormData(task.getId(),properties);
        HistoricProcessInstance historicProcessInstances = historyService.createHistoricProcessInstanceQuery().list(0,100);

        for(HistoricProcessInstance historicProcessInstance:historicProcessInstances){
            LOGGER.info("historicProcessInstance={}",historicProcessInstance);
        }
        List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricProcessInstanceQuery().listPage(0,100);
        for(HistoricActivityInstance historicActivityInstance : historicActivityInstances){
            LOGGER.info("historicActivityInstance={}",historicActivityInstance);
        }
        List<HistoricTaskInstance> historicTaskInstances = historyService.createHistoricProcessInstanceQuery().listPage(0,100);
        for(HistoricActivityInstance historicActivityInstance: historicActivityInstances){
            LOGGER.info("historicTaskInstance={}",historicActivityInstance);
        }
        List<HistoricVariableInstance> historicVariableInstances = historyService.createHistoricTaskInstanceQuery().listPage(01,100);
        for(HistoricVariableInstance historicVariableInstance : historicVariableInstances){
            LOGGER.info("historicVariableInstance={}",historicVariableInstance);
        }
        List<HistoricDetail> historicDetails = historyService.createNativeHistoricDetailQuery().listPage(0,100);
        for(HistoricDetail historicDetail:historicDetails){
            LOGGER.info("historicDetail={}",historicDetail);
        }
        historyService.createProcessInstanceHistoryLogQuery(processInstances.getId())
                .includeActivities()
                .includeFormProperties()
                .includeComments()
                .includeTasks()
                .includeActivities()
                .includeVariableUpdates().singleResult();

        List<HistoricData> historicDatas = processInstanceHistoryLog.getHistoricData();
        for(HistoricData historicData:historicDatas){
            LOGGER.info("historicData={}",historicData);
        }
        historyService.deleteHistoricProcessInstance(processInstace.getId());
        historyService.createHistoricTaskInstanceQuery().processInstanceId(processInstance.getId()).singleResult();

        LOGGER.info("historicProcessInstance={}",historicProcessInstances);
        
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值