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

2017网站建设费用1.申请网站空间

2017网站建设费用,1.申请网站空间,自建网站有哪些,哪个好用?什么是工作流#xff1f; 官方定义#xff1a;工作流是将一组任务组织起来以完成某个经营过程#xff1a;定义了任务的触发顺序和触发条件#xff0c;每个任务可以由一个或多个软件系统完成#xff0c;也可以由一个或一组人完成#xff0c;还可以由一个或多个人与软件系统…什么是工作流 官方定义工作流是将一组任务组织起来以完成某个经营过程定义了任务的触发顺序和触发条件每个任务可以由一个或多个软件系统完成也可以由一个或一组人完成还可以由一个或多个人与软件系统协作完。 我的理解工作流就是针对程序的业务流程进行自动化管理、执行的流。让业务的执行过程根据我们预定义好的规则不断地触发和执行。它最明显的体现就是在项目中的一些审批操作比如说员工请假、订单审核等等类似一种流的操作时业务在当前操作完成后自动的跳转进行下一操作 配置Activiti7建表 2010年5月份启动目前使用最广泛的工作流引擎。使用activiti可以将复杂的业务流程进行抽离业务流程按照预先定义好的规则执行。将业务流程交给activiti去管理使得当业务发生变更时不需要去大量得改动程序降低了维护成本。 activiti使用专门的建模语言BPMN进行定义BPMN就是一组定义好的符号语言使用这些符号来模拟整个复杂业务的执行流程 activiti的配置文件实际上也是利用spring来配置的xml文件其中主要配置的就是一个数据源以及注册引擎配置类Bean实例通过流程引擎配置类ProcefssEngineConfiguration我这里使用的是druid连接池然后将连接池引入到ProcefssEngineConfiguration中 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:txhttp://www.springframework.org/schema/txxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contex http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd!--数据源配置druid --bean iddataSource classcom.alibaba.druid.pool.DruidDataSourceproperty namedriverClassName valuecom.mysql.cj.jdbc.Driver /property nameurlvaluejdbc:mysql://localhost:3306/activiti?useSSLtrueamp;useUnicodetrueamp;characterEncodingUTF-8amp;serverTimezoneUTC /property nameusername valueroot /property namepassword value123456 //bean!--activiti单独运行的ProcessEngine配置对象(processEngineConfiguration),使用单独启动方式 默认情况下bean的idprocessEngineConfiguration -- !--默认创建时 该id名必须不可变 processEngineConfiguration--bean idprocessEngineConfigurationclassorg.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration!--代表数据源 --property namedataSource refdataSource/property!--代表是否生成表结构 --property namedatabaseSchemaUpdate valuetrue //bean /beans第一次使用activiti需要去生成如下25张数据表我们只需要通过获取ProcessEngine就可以自动创建 public void test01(){// 创建activiti表 后期有ProcessEngine帮助我们管理 // 默认创建方式ProcessEngine processEngine ProcessEngines.getDefaultProcessEngine();System.out.println(processEngine);// 自定义创建方式ProcessEngineConfiguration processEngineConfigurationFromResource ProcessEngineConfiguration .createProcessEngineConfigurationFromResource(自定义文件名,自定义bean名); } 自定义创建方式更加灵活。activiti的配置文件命名以及processEngineConfiguration的id命名都可以自定义 databaseSchemaUpdate是指activiti的表生成策略true标识如果数据库中已经存在则直接使用如果不存在则先创建再使用 activiti核心组件PageEngine activiti的核心就是ProcessEngine就是工作流引擎。那么通过ProcessEngine可以调用不同的service接口这些接口都封装了操作activiti生成表的方法可以对于activiti生成的25张数据表进行不同的操作如下 像repositoryService就是用于部署流程服务Runtime就是运行时服务每个Service都对应有自己的数据表。我们在调用每个服务实例的方法实际上都是在操作数据库中的activiti生成的表。 activiti流程体验 activiti的使用步骤 1、定义流程按照BPMN使用流程定义符号对整个流程进行抽象建模 2、部署流程将构建好的BPMN文件加载到数据库中生成表数据 3、启动流程使用Java程序操作数据库表内容 下面我们用员工的请假审批流程做演示 1、对流程进行抽象建模 每个步骤都有自己对应的操作以及对应的负责人。 2、流程任务部署 // 流程任务部署 Test public void deploymentTest(){// (1)创建流程引擎 加载配置文件 默认加载activiti.cfg.xml文件ProcessEngine engine ProcessEngines.getDefaultProcessEngine();// (2)获取repositoryServiceRepositoryService repositoryService engine.getRepositoryService();// (3)通过repositoryService创建部署流程Deployment deploy repositoryService.createDeployment()// (4) 添加资源文件.addClasspathResource(bpmn/test.bpmn20.xml).addClasspathResource(bpmn/diagram.png).name(员工请假审批流程)// (5)部署.deploy();// 查看当前流程的id、名称System.out.println(申请流程实例IDdeploy.getId());System.out.println(申请流程示例名称deploy.getName()); }下面启动一项任务流程实例即对应项目中有员工申请了请假操作时的流程 // 启动流程实例 Test public void testProcess(){// 1. 创建ProcessEngineProcessEngine engine ProcessEngines.getDefaultProcessEngine();// 2. 获取RunTimeService运行时服务RuntimeService service engine.getRuntimeService();// 3. 根据流程定义的id启动流程 我这里时testProcessInstance instance service.startProcessInstanceByKey(test);// 输出内容System.out.println(流程定义IDinstance.getProcessDefinitionId());System.out.println(流程实例IDinstance.getId());System.out.println(当前活动IDinstance.getActivityId()); }在项目开发中如果某一用户或者是员工想要请假那么就会为其启动一项任务流程。启动一项任务流程之后activiti就会在对应的运行服务表中做出一些记录。启动流程之后也就对应着我们的BPMN图走到了第二步经理审批 那么这个时候我们通过经理这个角色就可以查询到此时经理需要处理的任务流程如下查询个人待处理业务 // 查询个人待执行的任务 Test public void testGetPersonalTaskList(){ // 1. 获取引擎 ProcessEngine engine ProcessEngines.getDefaultProcessEngine(); // 2. 获取TaskService TaskService taskService engine.getTaskService(); // 3. 根据条件查询 以及任务负责人 查询任务 ListTask list taskService.createTaskQuery() .processDefinitionKey(forLeave) // 任务 .taskAssignee(zhangsan) // 负责人 .list(); for (Task task : list) { System.out.println(流程实例IDtask.getProcessInstanceId()); System.out.println(任务IDtask.getId()); System.out.println(任务负责人task.getAssignee()); System.out.println(任务名称task.getName()); } }上述程序只是查询到了某一角色的待完成任务部门主管审批下面是具体操作来使该角色完成任务同样是使用流程引擎获取TaskService Test public void complete(){// 获取流程引擎ProcessEngine engine ProcessEngines.getDefaultProcessEngine();// 获取任务TaskServiceTaskService taskService engine.getTaskService();// 根据任务id完成任务 将上述查询道道的待完成任务id传入taskService.complete(2504); }该角色任务完成后将会跳转至下一步骤部门经理审批。可以通过act_ru_task查看该表就是对应某一项任务的执行状态每一步的负责人通过之后就会跳转至下一项。同样的也可以通过act_hi_taskinst该表来查看某一项任务的执行进度在对应的数据后会有该步骤的开始时间如果已完成则会有完成结束时间 那么在实际项目中我们可以首先通过获取某个角色的待完成任务放在页面上该角色如果审批通过那么可以将它点击通过的任务id作为形参传入上述complete方法中以此完成该角色审批任务 下面执行部门经理审批完成所有步骤 // 继续完成部门经理审批 Test public void completeTask(){// 获取流程引擎ProcessEngine engine ProcessEngines.getDefaultProcessEngine();// 获取任务TaskServiceTaskService taskService engine.getTaskService();// 查询部门经理lisi待完成得请假审批任务 并获取该任务对象Task task taskService.createTaskQuery().processDefinitionKey(forLeave).taskAssignee(lisi) // 获取单个任务 如果有多个任务则要用list();.singleResult();// 让李四完成任务 根据任务id完成任务 将上述查询到的待完成任务id传入taskService.complete(task.getId()); }processDefinitionKey当中得key也就是参数就是需要查询得任务流程的id就是构建BPMN点击空白界面时出现的id。完成所有任务后再次查看act_ru_task运行任务表会发现刚刚执行任务流程已经被删除这是因为任务已经结束。 我们可以查看act_hi_actinst历史任务实例表会发现该表中拥有本次任务流程的全部步骤以及详细信息 可以看到各个步骤开始及完成的时间以及负责人等详细信息 zip方式批量部署流程任务 // zip批量部署任务 Test public void deployPrecessZip(){// 获取流程引擎ProcessEngine engine ProcessEngines.getDefaultProcessEngine();// 获取部署repositoryServiceRepositoryService service engine.getRepositoryService();// 批量部署流程// 先读取文件InputStream inputStream this.getClass().getClassLoader().getResourceAsStream(bpmn/bpmn.zip);// 将文件转换为zip流ZipInputStream zipInputStream new ZipInputStream(inputStream);// 将zip流形式的文件交给service去读Deployment deploy service.createDeployment().addZipInputStream(zipInputStream).deploy();System.out.println(部署的任务流程名称deploy.getName());System.out.println(部署的任务流程IDdeploy.getId()); }
http://www.hkea.cn/news/14439832/

相关文章:

  • 网站网页设计怎么报价哪些网站可以做邀请函
  • 天津专业的做网站与运营的公司网站建设的简历范文
  • 发帖百度秒收录网站分享wordpress 图片编辑
  • 淘宝客怎么自己做网站及APP山西人工智能建站系统软件
  • 哪些产品可以做单页网站长沙竞价网站建设价格
  • 企业网站制作费用国内永久免费的crm
  • 个人的网站如何做外贸网站
  • 中国制造网服务种类衡阳seo排名
  • 做色网站建站计划书
  • 在线网站建设收费湖北省建设工程造价管理站网站
  • 打开网站代码怎么写国内网站建设排名
  • 有了ddns怎么建设网站网站空间 域名
  • 乐清建站公司企业建站公司是干嘛的
  • 聊城做网站公司聊城博达网站注册手机号安全吗
  • 企业在建设银行网站怎么发工资专业做旅游网站
  • 青岛做网站服务商wordpress 后台编辑
  • 深圳如何优化网站巨腾外贸网站建设
  • 各种网站的区别无锡效果图制作
  • 电商网站建设解决方案企业宣传文案模板
  • 兰州网站推大理建设局网站
  • 深圳做app网站的公司名称app营销的特点与优势
  • 如何做网站百度排名优化网站卖了对方做违法吗
  • 济南多语言网站建设在线做3d交互的网站
  • 杭州 网站建设公司双语对照网站
  • 鑫迪一键建站系统建设网站的安全性
  • 上海建设资质审批网站国际网站 建设
  • 专业建设专题网站时代强个人网站
  • 广西seo网站推广mvc5网站开发实战详解
  • c 做网站开发网络营销app有哪些
  • 外流网站建设微信网站服务器要求