当前位置: 首页 > news >正文

连云港建设局电力网站网络营销产品的特点

连云港建设局电力网站,网络营销产品的特点,重庆公司注册网站,党校网站项目建设的必要性3. Service服务 所有的Service都通过流程引擎获得。 3.1 RepositoryService 仓库服务是存储相关的服务,一般用来部署流程文件,获取流程文件(bpmn和图片),查询流程定义信息等操作,是引擎中的一个重要的服务。…

3. Service服务

在这里插入图片描述

所有的Service都通过流程引擎获得。

3.1 RepositoryService

仓库服务是存储相关的服务,一般用来部署流程文件,获取流程文件(bpmn和图片),查询流程定义信息等操作,是引擎中的一个重要的服务。部署流程定义操作的数据库表有:部署表(act_re_deployment)、流程定义表(act_re_procdef)和二进制表(act_ge_bytearray)

//获取仓库服务
RepositoryService repositoryService= processEngine.getRepositoryService();
//部署流程
Deployment deployment =repositoryService.createDeployment().name("请假流程").addClasspathResource("leave.bpmn").deploy(); // 完成部署
ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
// 根据流程定义的key来过滤
query.processDefinitionKey("leave2");
// 添加排序条件
query.orderByProcessDefinitionVersion().desc();
//分页查询,从哪开始,查询几条
query.listPage(0, 2);
// 查询的是所有的流程定义
List<ProcessDefinition> list = query.list();
for (ProcessDefinition pd : list) {System.out.println(pd.getId() + "-" + pd.getName() + "-" + pd.getVersion());
}
//根据id删除流程
repositoryService.deleteDeployment("1005");

部署文件实际是一个bpmn文件和一个png图片
在这里插入图片描述
部署bpmn的时候,系统自动生成了一个png图片,可以下载查看:

RepositoryService repositoryService = processEngine.getRepositoryService();
String deploymentId = "72501";//部署id
List<String> names = repositoryService.getDeploymentResourceNames(deploymentId);
for (String name : names) {System.out.println(name);// 获得两个流程定义文件对应的输入流InputStream in = repositoryService.getResourceAsStream(deploymentId, name);// 读取输入流写到指定的本地磁盘上FileCopyUtils.copy(in, new FileOutputStream("F:/" + name));in.close();
}

去F盘下可以看到两个文件:
在这里插入图片描述

自动生成的png图片中文会乱码,解决这个问题需要在processEngineConfiguration的bean中配置字体,如图:

<property name="activityFontName" value="宋体"/>
<property name="labelFontName" value="宋体"/>

在这里插入图片描述

如果不想生成png图片,可以配置如下属性:

<property name="createDiagramOnDeploy" value="false" />

还可以将png和bpnm添加到zip压缩包中,部署zip压缩包。

// 从类路径下读取leave.zip压缩文件,并把它包装成一个输入流
ZipInputStream zipInputStream = new ZipInputStream(this.getClass().getClassLoader().getResourceAsStream("leave.zip"));
Deployment deployment = repositoryService.createDeployment().addZipInputStream(zipInputStream).deploy(); // 完成部署

Activiti会把压缩包内的bpmn和png添加到数据库,即数据库里存的是解压后的两个文件而不是zip。

使用idea生成bpmn对应的png,需要把bpmn的文件后缀名改成xml

在这里插入图片描述

根据流程定义id获取文件流:

String processDefinitionId = "leave2:5:62504"; // 流程定义id
// 直接获得png图片的名称
// 根据流程定义id查询流程定义对象
ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
query.processDefinitionId(processDefinitionId);
ProcessDefinition processDefinition = query.singleResult();
// 根据流程定义对象获得png图片的名称,getResourceName()是获得bpmn
String pngName = processDefinition.getDiagramResourceName();
// 直接获得png图片对应的输入流
InputStream pngStream = repositoryService.getProcessDiagram(processDefinitionId);
// 读取输入流写到指定的本地磁盘上
FileCopyUtils.copy(pngStream, new FileOutputStream("F:/" + pngName));
pngStream.close();

3.2 RuntimeService

流程运行时的流程实例,流程定义,流程版本,流程节点等信息,使用运行时服务操作,是引擎中的一个重要的服务,启动流程实例操作的数据表有流程实例表(act_ru_execution)、任务表(act_ru_task)。

RuntimeService runtimeService = processEngine.getRuntimeService();
//key是act_re_procdef中的KEY_,即bpmn文件的id
runtimeService.startProcessInstanceByKey("leave2");
//或者根据流程定义id启动,id是act_re_procdef中的ID_,推荐使用
runtimeService.startProcessInstanceById("leave2:5:62504");
//一个KEY_对应多个ID_,即一个流程定义可以产生多个流程实例。
//查询流程,操作的是流程实例表(act_ru_execution)
ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery();
List<ProcessInstance> list = query.list();

删除一个流程实例

String processInstanceId = "1001"; // 流程实例id
String deleteReason = "不请假了"; // 删除原因,任君写
runtimeService.deleteProcessInstance(processInstanceId, deleteReason);

3.3 TaskService

对任务进行查询、接收、办理、完成等操作。查询任务操作的数据表是任务表(act_ru_task)。

TaskService taskService = processEngine.getTaskService();
//创建查询对象,指定查询人,进行查询
List<Task> taskList =taskService.createTaskQuery().taskAssignee("ZhangSan").list();//提交任务到下一个代理人
taskService.complete(task.getId());
listPage(offset,pageSize)用于分页查询

3.4 IdentityService

流程运行过程中的一些用户信息,组信息等操作使用认证服务,但是认证服务一般只作为辅助,每一个系统都有一个比较完整的人员系统,创建用户和用户组等操作。一般不使用自带的认证。

//添加用户组
IdentityService identityService = processEngine.getIdentityService();
Group groupEntity = identityService.newGroup("1001");
groupEntity.setName("超级管理员");
groupEntity.setType("administrator");
identityService.saveGroup(groupEntity);//保存用户组
//删除用户组
identityService.deleteGroup("1");//添加用户
User user = identityService.newUser("10001");
user.setEmail("admin@sina.com");
user.setFirstName("zhang");
user.setLastName("san");
user.setPassword("admin");
identityService.saveUser(user);//保存用户
identityService.deleteUser("10001");//删除用户

3.5 HistoryService

流程运行时和运行完成之后的一些历史信息,包括历史任务,历史节点等

HistoryService historyService = processEngine.getHistoryService();
//查询历史运行信息
HistoricProcessInstance historicProcessInstance =historyService.createHistoricProcessInstanceQuery().processInstanceId("40001").singleResult();
System.out.println("开始时间:" + historicProcessInstance.getStartTime());
System.out.println("结束时间:" + historicProcessInstance.getEndTime());

3.6 FormService

可选服务,任务表单管理 后续讲解

3.7 ManagementService

Management Service 提供了对 Activiti 流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于
Activiti 系统的日常维护。

ManagementService managementService = processEngine.getManagementService();
String taskTable = managementService.getTableName(Task.class);
System.out.println(taskTable);
http://www.wooajung.com/news/21777.html

相关文章:

  • 免费最好网站建设昆明网站seo优化
  • 一个做网站的团队需要哪些网站关键词优化排名软件系统
  • 网站做锚点p站关键词排名
  • 大连模板网站制作哪家好seo关键词优化排名公司
  • 做网站是怎么赢利的商品标题优化
  • 做暧暧视频大波妹网站在百度做广告多少钱
  • b2c交易模式的网站有哪些百度平台客服电话
  • 苏州做网站哪家好北京网络seo
  • 北京个人注册公司流程和费用天津seo诊断技术
  • 北京网站设计外包公司价格最全bt搜索引擎入口
  • 青浦门户网站友情链接举例
  • 学生网站做兼职运用搜索引擎营销的案例
  • 网站开发需要的语言网站alexa排名查询
  • 租电信服务器开网站百度引流推广
  • 重庆建网站谷歌推广费用
  • 好用的网站系统会计培训班一般多少钱
  • 白菜网站建设网站没有友情链接
  • 做网站页面的视频sem投放
  • php网站程序安装徐州seo排名收费
  • 企业做网站400电话作用免费培训seo网站
  • 招远网站开发seo是什么缩写
  • 电子商务网站建设的目的意义网页设计与制作软件
  • 用web制作网站优化大师绿色版
  • 武汉网站建设的公司哪家好制作网站平台
  • 动漫网站网页设计代码2023第二波疫情已经到来
  • 新手做啥网站好绍兴百度seo排名
  • 影响力网站建设如何提高自己的营销能力
  • 网上做兼职真实大网站今日国内重大新闻事件
  • 做党建需要关注网站做关键词推广
  • 别人的做网站深圳网站建设公司官网