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

建网站策划方案a市最牛的网站

建网站策划方案,a市最牛的网站,写一个app需要多少钱,wordpress自定义页面链接地址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.yayakq.cn/news/921386/

相关文章:

  • 电子商务网站的设计工具下载中心免费下载
  • 网站建设免费代理华为公司的企业设计
  • 都匀经济开发区建设局网站wordpress充值功能
  • 网站首页模板制作广西建筑模板
  • 考研门户网站的建设上海什么公司最有名
  • 润商网站建设服务花卉网站建设项目策划书
  • 重庆网站seo方法西安做网站企业
  • 网站网站制作公司哪家好网站footer怎么做
  • 垂直门户网站怎么做制作图片下载什么软件
  • 在哪些网站可以发布推广信息ai软件下载
  • 如何建微信微网站网站免费获取验证码怎么做
  • 4网站建设厦门企业网站建设补贴
  • flash做ppt的模板下载网站有哪些新手站长做装修网站
  • 响应式酒店网站模板网站数据丢失怎么办
  • 2015年做那个网站致富传奇手游官网
  • 手机网站内容设计方案网站建设国内排行
  • 网站开发的语言有什么软件包头人脸检测系统
  • 企业展示型网站php太太猫代理网址
  • 有哪些可以接单做任务的网站wordpress 正在发送请求
  • 个人建网站步骤铁岭房地产网站建设
  • 商务网站开发实训体会广州网站(建设信科网络)
  • 自己做下载网站西安注册公司在哪个网站系统
  • 福建省建设安全监督站的网站订单拆单在电商网站建设
  • 网站做的比较好的公司吗机械网站开发方案
  • c 网站开发调试婚礼案例网站
  • 如何给自己的公司建网站网站模板 金融
  • 网站备案是备什么鸿兴网站建设公司
  • 建站之星凡客网站开发项目有哪些
  • 茶叶价格网站建设江门网站设计
  • 注册公司去哪里注册东莞关键词排名优化