日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

工作流中ServiceTask的各种方法

發布時間:2025/3/16 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 工作流中ServiceTask的各种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在工作流中的activiti的serviceTask幾種方法:

?

模擬自動執行任務工作流的流程圖:

?

?

?

?

工作流配置:

serviceTaskExpression.bpmn20.xml

Xml代碼??
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • ??
  • <definitions?id="definitions"???
  • ??xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"??
  • ??xmlns:activiti="http://activiti.org/bpmn"??
  • ??targetNamespace="Examples">??
  • ????
  • ??<process?id="serviceTaskProcess">??
  • ??<startEvent?id="start"??/>??
  • ???<sequenceFlow?id="flow1"?sourceRef="start"?targetRef="serviceTask"?/>??
  • ?????
  • ???<!--?調用委托類的依賴注入功能?-->??
  • ????<serviceTask?id="serviceTask"?name="Java?service?invocation"????
  • ??????activiti:class="com.easyway.activiti.servicetask.ReverseStringsFieldInjected">???
  • ??????????<extensionElements>???
  • ????????????<activiti:field?name="text1">???
  • ??????????????<activiti:expression>Welcome?to?Beijing</activiti:expression>???
  • ????????????</activiti:field>???
  • ????????????<activiti:field?name="text2">???
  • ???????????????<activiti:expression>Hello?Mr.?Bai</activiti:expression>???
  • ????????????</activiti:field>???
  • ??????????</extensionElements>???
  • ????</serviceTask>??
  • ????
  • ????<sequenceFlow?id="flow2"?sourceRef="serviceTask"?targetRef="serviceTask1"?/>??
  • ??????
  • ????<!--?調用spring?bean中的相關的委托bean?-->??
  • ????<serviceTask?id="serviceTask1"?activiti:delegateExpression="${delegateExpressionBean}"?/>??
  • ??????
  • ??????
  • ??????
  • ?????<sequenceFlow?id="flow3"?sourceRef="serviceTask1"?targetRef="servicetask2"?/>??
  • ???????
  • ???????
  • ?????<!--?調用spring?bean中的方法?-->??
  • ????<serviceTask?id="servicetask2"????
  • ?????????????name="My?Java?Service?Task"????
  • ?????????????activiti:expression="#{sentenceGenerator.getSentence()}"?/>??
  • ???
  • ????<sequenceFlow?id="flow4"?sourceRef="servicetask2"?targetRef="servicetask3"?/>??
  • ??????
  • ??<!--?調用spring?bean中的相關的委托bean?-->??
  • ????<serviceTask?id="servicetask3"????
  • ?????????name="Java?service?invocation"????
  • ?????????activiti:class="com.easyway.activiti.servicetask.ToUppercase">???
  • ????????<extensionElements>???
  • ??????????<activiti:field?name="text"?stringValue="Hello?World"?/>???
  • ????????</extensionElements>??????????????
  • ????</serviceTask>???????
  • ??
  • ????<sequenceFlow?id="flow5"?sourceRef="servicetask3"?targetRef="endEvent"?/>??
  • ????<endEvent?id="endEvent"?/>??
  • ??</process>??
  • ??
  • </definitions>??
  • ?

    工作流的實現:

    Java代碼??
  • package?com.easyway.activiti.servicetask;??
  • ??
  • import?org.activiti.engine.delegate.DelegateExecution;??
  • ??
  • /**?
  • ?*?從配置文件注入多個屬性類型必須為Expression?
  • ?*?@author?longgangbai?
  • ?*??
  • ?*?2011-12-20??下午10:08:01?
  • ?*/??
  • public?class?ReverseStringsFieldInjected?implements?JavaDelegate?{???
  • ???????
  • ??????private?Expression?text1;???
  • ??????private?Expression?text2;???
  • ???????
  • ??????public?void?execute(DelegateExecution?execution)?{???
  • ????????String?value1?=?(String)?text1.getValue(execution);???
  • ????????execution.setVariable("var1",?new?StringBuffer(value1).reverse().toString());???
  • ???????
  • ????????String?value2?=?(String)?text2.getValue(execution);???
  • ????????execution.setVariable("var2",?new?StringBuffer(value2).reverse().toString());???
  • ??????}???
  • ????}??
  • ?

    ?

    Java代碼??
  • package?com.easyway.activiti.servicetask;??
  • ??
  • import?org.activiti.engine.delegate.DelegateExecution;??
  • ??
  • /**?
  • ?*??從配置文件注入一個字符串用于變為寫?
  • ?*?@author?longgangbai?
  • ?*??
  • ?*?2011-12-20??下午09:56:59?
  • ?*/??
  • public?class?ToUppercase?implements?JavaDelegate?{???
  • ??????private?Expression?text;???
  • ??????public?void?execute(DelegateExecution?execution)?throws?Exception?{???
  • ??????????String?value1?=?(String)?text.getValue(execution);???
  • ???????????execution.setVariable("input",?value1);???
  • ??????}???
  • ?????????
  • ????}??
  • ?

    ?

    servicetaskSpringTest-context.xml

    Xml代碼??
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • ??
  • <beans?xmlns="http://www.springframework.org/schema/beans"???
  • ???????xmlns:context="http://www.springframework.org/schema/context"??
  • ???????xmlns:tx="http://www.springframework.org/schema/tx"??
  • ???????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
  • ???????xsi:schemaLocation="http://www.springframework.org/schema/beans???http://www.springframework.org/schema/beans/spring-beans.xsd??
  • ???????????????????????????http://www.springframework.org/schema/context?http://www.springframework.org/schema/context/spring-context-2.5.xsd??
  • ???????????????????????????http://www.springframework.org/schema/tx??????http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">??
  • ??
  • ??<bean?id="sentenceGenerator"?class="com.easyway.activiti.servicetask.SentenceGenerator"?/>??
  • ????
  • ??<bean?id="delegateExpressionBean"?class="com.easyway.activiti.servicetask.DelegateExpressionBean">??
  • ????<property?name="sentenceGenerator"??ref="sentenceGenerator"?/>??
  • ??</bean>??
  • ????
  • ??<bean?id="sentenceToUpperCaseBean"?class="com.easyway.activiti.servicetask.SentenceToUpperCaseBean">??
  • ????<property?name="sentenceGenerator"?ref="sentenceGenerator"?/>??
  • ??</bean>??
  • ????
  • ??<bean?id="myExecutionListenerBean"?class="com.easyway.activiti.servicetask.ActivitiExecutionListenerBean"?/>??
  • ??<bean?id="myTaskListener"?class="com.easyway.activiti.servicetask.ActivitiTaskListener"?/>??
  • ????
  • ??<bean?id="myTaskListenerBean"?class="com.easyway.activiti.servicetask.ActivitiTaskListenerBean"?/>??
  • ??
  • ??<bean?id="dataSource"?class="org.springframework.jdbc.datasource.SimpleDriverDataSource">??
  • ????<property?name="driverClass"?value="org.h2.Driver"?/>??
  • ????<property?name="url"?value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000"?/>??
  • ????<property?name="username"?value="sa"?/>??
  • ????<property?name="password"?value=""?/>??
  • ??</bean>??
  • ??
  • ??<bean?id="transactionManager"?class="org.springframework.jdbc.datasource.DataSourceTransactionManager">??
  • ????<property?name="dataSource"?ref="dataSource"?/>??
  • ??</bean>??
  • ????
  • ??<bean?id="processEngineConfiguration"?class="org.activiti.spring.SpringProcessEngineConfiguration">??
  • ????<property?name="dataSource"?ref="dataSource"?/>??
  • ????<property?name="transactionManager"?ref="transactionManager"?/>??
  • ????<property?name="databaseSchemaUpdate"?value="create-drop"?/>??
  • ????<property?name="jobExecutorActivate"?value="false"?/>??
  • ??</bean>??
  • ????
  • ??<bean?id="processEngine"?class="org.activiti.spring.ProcessEngineFactoryBean">??
  • ????<property?name="processEngineConfiguration"?ref="processEngineConfiguration"?/>??
  • ??</bean>??
  • ????
  • ??<bean?id="repositoryService"?factory-bean="processEngine"?factory-method="getRepositoryService"?/>??
  • ??<bean?id="runtimeService"?factory-bean="processEngine"?factory-method="getRuntimeService"?/>??
  • ??<bean?id="taskService"?factory-bean="processEngine"?factory-method="getTaskService"?/>??
  • ??<bean?id="historyService"?factory-bean="processEngine"?factory-method="getHistoryService"?/>??
  • ??<bean?id="managementService"?factory-bean="processEngine"?factory-method="getManagementService"?/>??
  • ??
  • </beans>??
  • ?

    ?

    測試類:

    Java代碼??
  • package?com.easyway.activiti.servicetask;??
  • ??
  • import?org.activiti.engine.runtime.ProcessInstance;??
  • import?org.activiti.engine.test.Deployment;??
  • import?org.activiti.spring.impl.test.SpringActivitiTestCase;??
  • import?org.springframework.test.context.ContextConfiguration;??
  • ??
  • /**?
  • ?*?工作流中ServiceTask的各種方法?
  • ?*?1.通過activiti:class使用相關的javaDelegate的子類。?
  • ?*????<serviceTask?id="serviceTask"?name="Java?service?invocation"???
  • ??????activiti:class="com.easyway.activiti.servicetask.ReverseStringsFieldInjected">??
  • ??????????<extensionElements>??
  • ????????????<activiti:field?name="text1">??
  • ??????????????<activiti:expression>Welcome?to?Beijing</activiti:expression>??
  • ????????????</activiti:field>??
  • ????????????<activiti:field?name="text2">??
  • ???????????????<activiti:expression>Hello?Mr.?Bai</activiti:expression>??
  • ????????????</activiti:field>??
  • ??????????</extensionElements>??
  • ????</serviceTask>?
  • ????2.通過spring的使用委派表達式實現?
  • ??????<serviceTask?id="serviceTask1"?activiti:delegateExpression="${delegateExpressionBean}"?/>?
  • ????3.通過表達式將實現?
  • ????????<serviceTask?id="servicetask2"???
  • ?????????????name="My?Java?Service?Task"???
  • ?????????????activiti:expression="#{sentenceGenerator.getSentence()}"?/>?
  • ?????
  • ????4.通過activiti:class注入相關的屬性?
  • ????????<serviceTask?id="servicetask3"???
  • ?????????name="Java?service?invocation"???
  • ?????????activiti:class="com.easyway.activiti.servicetask.ToUppercase">??
  • ????????<extensionElements>??
  • ??????????<activiti:field?name="text"?stringValue="Hello?World"?/>??
  • ????????</extensionElements>?????????????
  • ????</serviceTask>?????
  • ?*?@author?longgangbai?
  • ?*??
  • ?*?2011-12-20??下午09:29:23?
  • ?*/??
  • @ContextConfiguration("classpath:servicetaskSpringTest-context.xml")??
  • public?class?ServiceTaskExpressionTest?extends?SpringActivitiTestCase?{??
  • ????
  • ??@Deployment(resources={"diagrams/serviceTaskExpression.bpmn20.xml"})??
  • ??public?void?testDelegateExpression()?{??
  • ????ProcessInstance?procInst?=?runtimeService.startProcessInstanceByKey("serviceTaskProcess");??
  • ????assertEquals(true,procInst.isEnded());??
  • ??}??
  • ??
  • }??
  • ?

    ? 原文地址:http://topmanopensource.iteye.com/blog/1319380

    • activiti-servicetask.rar?(51.7 KB)
    • 下載次數: 180

    總結

    以上是生活随笔為你收集整理的工作流中ServiceTask的各种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。