- 浏览: 142415 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
huqing2010:
不能直提供war包呀
Spring Security demo -
jqs1124:
pl/sql调试存储过程 -
zhouxianglh:
太全了!
常用bash shell 脚本 -
fcoffee:
1. myeclipse != eclipse2. *.lin ...
Eclipse 插件管理 -
hgalois:
巴错如果再加点path的修改linux下java开发环境配置就 ...
常用Linux命令
===========工作流程=======================================================================================
<?xml version="1.0" encoding="UTF-8"?>
<process-definition
xmlns="" name="exceptionReporter">
<start-state name="開始">
<transition name="to_report" to="呈報考勤異常">
<action name="start_report" class="com.ccc.handler.StartReprotExceptionActionHandler"></action>
</transition>
</start-state>
<task-node name="課級主管審核">
<task name="submit_exception">
<assignment class="com.ccc.handler.AttendanceExceptionCheckAssignmentHandler"></assignment>
</task>
<transition name="to_confirm" to="高階主管審核">
<assignment class="com.ccc.handler.AttendanceExceptionCheckAssignmentHandler"></assignment>
</transition>
<transition name="to_reapply" to="呈報考勤異常">
</transition>
</task-node>
<task-node name="高階主管審核">
<task name="to_summit">
<assignment class="com.ccc.handler.AttendanceExceptionCheckAssignmentHandler"></assignment>
</task>
<transition name="to_finish" to="結束">
<!-- 結束任務 -->
</transition>
<transition name="to_recofirm" to="課級主管審核">
<!-- 退給課級主管 -->
<assignment class="com.ccc.handler.AttendanceExceptionCheckAssignmentHandler"></assignment>
</transition>
</task-node>
<end-state name="結束"></end-state>
<task-node name="呈報考勤異常">
<task name="report_exception">
<assignment actor-id="#{initiator}"></assignment>
</task>
<transition name="to_apply" to="課級主管審核"></transition>
</task-node>
</process-definition>
==================================發起流程================================================================
public JbpmContext doJbpmAction(final String employeeId, final String empNo,
final String empName,final String formId)
throws Exception {
return (JbpmContext)jbpmTemplate.execute(new JbpmCallback() {
@SuppressWarnings("unchecked")
public Object doInJbpm(JbpmContext jbpmContext) throws JbpmException {
try {
//取得考勤異常提報的流程定義
ProcessDefinition process = processDefinitionManager.getLastestProcessDefinition("exceptionReporter");
ProcessInstance processinstance = new ProcessInstance(process);
//流程發起者
processinstance.getContextInstance().setVariable("initiator",employeeId);
//開啟流程
jbpmContext.save(processinstance);
//同時完成下個個流程 ,對該任務進行指派
processinstance.signal("to_report");
jbpmTemplate.getHibernateTemplate().flush();
//記錄該任務相關信息
List<TaskInstance> taskInstances = (List<TaskInstance>)jbpmContext.getTaskList(employeeId);
//
//查找該提報人所在的課級組織信息
CommOrganizationInfo org1 =baseManager.findOrganizationInfoByEmployeeIdAndOrgLevel(Long.valueOf(employeeId),HrConstant.COMM_ORGANIZATION_LEVEL_CLASS);
//查找該員工課級主管信息
List<CommEmployeeInfo> list = organizationManager.getParentCommOrganizationInfoMasterByOrganizationId(org1.getOrganizationId());
if(taskInstances!=null){
try{
for (TaskInstance ti : taskInstances) {
if(ti.getName().equals("report_exception")){
ContextInstance ci = ti.getContextInstance();
//表單id
ci.setVariable("requestId",formId);
ci.setVariable("empName",empName);
ci.setVariable("employeeId",employeeId);
ci.setVariable("empNo", empNo);
ci.setVariable("managerList", list);
ti.end();
jbpmContext.save(ti);
}
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}catch(JbpmException e1){
e1.printStackTrace();
throw e1;
}catch(Exception e2){
e2.printStackTrace();
}finally{
jbpmTemplate.getHibernateTemplate().flush();
}
return jbpmContext;
}
});
}
===================================第一步審核==========================================================================
public boolean submitExceptionHanele(final String empNo, final String taskId,
final String operatorFlag, final long employeeId,final CommEmployeeInfo commitEmp) throws Exception {
return (Boolean) jbpmTemplate.execute(new JbpmCallback() {
public Boolean doInJbpm(JbpmContext jbpmContext)
throws JbpmException {
try{
TaskInstance ti = jbpmContext.getTaskInstance(Long.parseLong(taskId));
if (operatorFlag.equals("pass")) {
try{
//查找該審核人所在的處級組織信息
CommOrganizationInfo org1 =baseManager.findOrganizationInfoByEmployeeIdAndOrgLevel(Long.valueOf(employeeId),HrConstant.COMM_ORGANIZATION_LEVEL_SECTION);
//查找該員工高階主管信息
List<CommEmployeeInfo> list = organizationManager.getParentCommOrganizationInfoMasterByOrganizationId(org1.getOrganizationId());
ContextInstance ci = ti.getContextInstance();
//表單id
ci.setVariable("formId", ti.getVariable("requestId"));
//審核人工號
ci.setVariable("empNo", empNo);
ci.setVariable("empName", ti.getVariable("empName"));
ci.setVariable("employeeId", employeeId);
ci.setVariable("managerList", list);
ti.end("to_confirm");
jbpmContext.save(ti);
}catch(Exception e1)
{
e1.printStackTrace();
}
jbpmTemplate.getHibernateTemplate().flush();
} else {
//執行退回動作
//ContextInstance ci = ti.getContextInstance();
//ci.setVariable("formId", ti.getVariable("requestId"));
//ci.setVariable("empNo", empNo);
//ci.setVariable("empName", ti.getVariable("empName"));
//ci.setVariable("employeeId", employeeId);
//ArrayList<CommEmployeeInfo> alist =new ArrayList<CommEmployeeInfo>();
//alist.add(commitEmp);
//ci.setVariable("initiator", String.valueOf(commitEmp.getEmployeeId()));
//jbpmTemplate.getHibernateTemplate().flush();
ti.end("to_reapply");
jbpmTemplate.getHibernateTemplate().flush();
jbpmContext.save(ti);
}
}catch(Exception e2)
{
e2.printStackTrace();
}
return true;
}
});
}
===================================第二步審核=======================================================================
public boolean confirmExceptionHanele(final String empNo,final String taskId,
final String operatorFlag, final long employeeId) throws Exception {
return (Boolean) jbpmTemplate.execute(new JbpmCallback() {
public Boolean doInJbpm(JbpmContext jbpmContext)
throws JbpmException {
try{
TaskInstance ti = jbpmContext.getTaskInstance(Long.parseLong(taskId));
if (operatorFlag.equals("pass")) {
try{
ContextInstance ci = ti.getContextInstance();
//表單id
ci.setVariable("formId", ti.getVariable("requestId"));
//審核人工號
ci.setVariable("empNo", empNo);
ci.setVariable("empName", ti.getVariable("empName"));
ci.setVariable("employeeId", employeeId);
ti.end("to_finish");
jbpmContext.save(ti);
}catch(Exception e1)
{
e1.printStackTrace();
}
jbpmTemplate.getHibernateTemplate().flush();
} else {
//重新給課級主管指派任務
//查找該異常人所在高階主管____課級主管
//CommOrganizationInfo org1 =baseManager.findOrganizationInfoByEmployeeIdAndOrgLevel(Long.valueOf(employeeId),HrConstant.COMM_ORGANIZATION_LEVEL_CLASS);
//查找該員工課級主管信息
//List<CommEmployeeInfo> list = organizationManager.getParentCommOrganizationInfoMasterByOrganizationId(org1.getOrganizationId());
try{
// ContextInstance ci = ti.getContextInstance();
// //表單id
// ci.setVariable("formId", ti.getVariable("requestId"));
// //審核人工號
// ci.setVariable("empNo", empNo);
// ci.setVariable("empName", ti.getVariable("empName"));
// ci.setVariable("employeeId", employeeId);
// ci.setVariable("managerList", list);
ti.end("to_recofirm");
jbpmContext.save(ti);
jbpmTemplate.getHibernateTemplate().flush();
}catch(Exception e1)
{
e1.printStackTrace();
}
jbpmTemplate.getHibernateTemplate().flush();
}
}catch(Exception e2)
{
e2.printStackTrace();
}
return true;
}
});
}
=============================================任務指派1=============================================================
package com.ccc.handler;
import java.util.Date;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.graph.exe.ExecutionContext;
import com.ccc.module.jbpm.handlers.MESActionHandlerManager;
public class StartReprotExceptionActionHandler extends MESActionHandlerManager{
private transient final Log logger = LogFactory.getLog(StartReprotExceptionActionHandler.class);
private static final long serialVersionUID = -7703930993012075081L;
/**
* 流程開始
* @author F1632506
* @date May 8, 2009 9:42:41 AM
* @param param1
* @see com.ccc.module.jbpm.empenter.action[#method([execute])]
* @throws exceptionType
* 如果...將拋出exceptionType異常.
* @return returnType 返回類型描述
*/
public void execute(ExecutionContext executionContext) throws Exception {
ContextInstance ci = executionContext.getContextInstance();
String user = (String)ci.getVariable("initiator");
logger.info(new Date()+user+"發起考勤異常提報流程..");
}
}
==========
package com.ccc.handler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.taskmgmt.def.AssignmentHandler;
import org.jbpm.taskmgmt.exe.Assignable;
import org.springmodules.workflow.jbpm31.JbpmTemplate;
import com.ccc.module.jbpm.empenter.assignment.NewEmpAssignmentHandler;
public class AttendanceExceptionAssignmentHandler implements AssignmentHandler
{
@SuppressWarnings("unused")
private JbpmTemplate jbpmTemplate;
@SuppressWarnings("unused")
private String actor;
private transient final Log logger = LogFactory.getLog(NewEmpAssignmentHandler.class);
private static final long serialVersionUID = 8742291098601946988L;
/**
* 把所以當日考勤信息的提報任務指派給發起人
* <p>
*
* @author Daniel
* @date Jun 10, 2009 3:34:19 PM
* @param assignable
* type public void assign(Assignable
* @param executionContext
* type ExecutionContext
* <ul>
* <li>jbpm中定義的Assignable
* <li>jbpm中定義的ExecutionContext
* </ul>
* @throws exceptionType
* 如果...將拋出exceptionType異常.
* @return void
*/
public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception {
ContextInstance ci = executionContext.getContextInstance();
String user = (String)ci.getVariable("initiator");
assignable.setActorId(user);
}
public void setActor(String actor) {
this.actor = actor;
}
public void setJbpmTemplate(JbpmTemplate jbpmTemplate) {
this.jbpmTemplate = jbpmTemplate;
}
}
==========================================任務指派2=======================================================
package com.ccc.handler;
import java.util.List;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.taskmgmt.exe.Assignable;
import com.ccc.model.user.CommEmployeeInfo;
import com.ccc.module.jbpm.handlers.MESAssignmentHandlerManager;
public class AttendanceExceptionCheckAssignmentHandler extends MESAssignmentHandlerManager
{
private static final long serialVersionUID = 8067830912869790490L;;
@SuppressWarnings("unchecked")
public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception {
String temp[]=null;
//取得上下文實例
ContextInstance context = executionContext.getContextInstance();
//獲取相應的部分主管
List<CommEmployeeInfo> list = (List<CommEmployeeInfo>)context.getVariable("managerList");
if(list!=null && list.size()>0)
{
int i=0;
temp=new String[list.size()];
for(CommEmployeeInfo employee:list)
{
temp[i++]=employee.getEmployeeId().toString();
}
}
try{
assignable.setPooledActors(temp);
}catch(Exception e)
{
e.printStackTrace();
}
}
}
===========================================end============================================================
发表评论
-
ServletContextListener使用详解
2014-02-09 17:38 826在 Servlet API 中有一个 ... -
时间
2013-10-29 23:10 0public static boolean isDate(O ... -
google项目托管得不到svn的提交密码的解决方案
2011-03-18 23:35 1344第一要有个google账号然后从https://code. ... -
使用jquery ajax解决跨域调用的问题
2010-12-03 11:14 1115client: function get_svn_status ... -
jquery
2010-08-17 23:37 827flexselect: a jQuery plugin, v ... -
flexselect相应onchange事件
2010-08-17 21:27 1928jquery.flexselect.js /* ... -
svn 备份脚本
2010-05-12 18:03 962@echo off rem 设置SVN可执行文件所在的目录s ... -
存储过程使用游标-实例
2009-11-22 14:53 1158/**房产税抽取*创建时间 ... -
随后笔记3
2009-08-22 11:46 92417. WeakReference 弱引用 ... -
随手笔记2--中间件
2009-08-22 11:45 74816.中間件 满足大量应 ... -
bbs_guestbook
2009-08-08 17:14 2263Ext.onReady(function(){ Ex ... -
commliberaryforspring2.5part2
2009-07-11 12:55 0these all are for Spring2.5.(pa ... -
分頁功能實現
2009-06-10 14:57 8951.客戶端 jquery顯示數據的表格ID:infotabl ... -
將JAVA數據類型轉換Json對象是日期類的處理
2009-06-05 13:34 12381.implement interface /** * 轉換 ... -
java 写的 Sliding tiles小游戏
2009-05-17 19:07 769花了整整半天时间帮朋友写了个小游戏,自己一次没玩成功过。。。 ... -
jquery instruction
2009-05-16 10:04 765jquery instruction -
Spring2.5-->datasource configer
2009-05-16 09:51 1006hibernate.cache.provider_class= ... -
spring2.5 web.xml
2009-05-16 09:47 2107<?xml version="1.0" ... -
c3p0+log4j+jdom
2009-05-16 09:46 879liberary for c3p0 , log4j ,jdom ... -
P6spy属性文件
2009-04-29 23:42 1689问题与解决 如果在你的应用程序启动后,却在 spy.log ...
相关推荐
根据给定的文件信息,我们可以总结出以下关于“Spring-Jbpm-JSF-Example”的关键IT知识点: ### 1. **项目概述** 标题与描述提到的“Spring-Jbpm-JSF-Example.pdf”是一个示例项目,展示了如何将Spring框架、Jbpm...
2017年jBPM 正式发布了全新的 7版本。jBPM 是一个完全开源的业务流程管理(BPM)和案例管理解决方案。它支持流程和案例的完整生命周期,从编写工具到执行一直到监控和管理。 在核心引擎之上,提供了许多功能和工具来...
jbpm学习笔记主要涵盖了jbpm(Java Business Process Management)的多个方面,包括Signavio的使用和配置、jBPM数据库的安装、Graphical ...同时,通过阅读和分析example项目,可以更好地理解和应用jBPM的实际操作。
把JBoss安装到${jbpm.home}/jboss-5.0.0... 从${jbpm.home}/install/src/demo/example.identities.sql,读取用户和组。 安装eclipse到${jbpm.home}/eclipse 启动eclipse 安装jBPM web控制台 安装Signavio web建模器
ProcessInstance processInstance = ksession.startProcess("com.example.myProcess"); // 处理任务 TaskService taskService = ksession.getTaskService(); List<TaskSummary> tasks = taskService....
### jbpm4.2开发知识点概述 #### 一、jbpm简介 - **定义与特点**:jbpm(Java Business Process Model)是一个开源的工作流引擎,用于自动化业务流程的执行。它提供了一种灵活的方式来定义复杂的业务流程,并通过...
- `ant load.example.identities`:加载示例用户和用户组数据到MySQL数据库。 - `ant install.signavio.into.tomcat`:将Signavio模型设计器安装到Tomcat。 - `ant install.eclipse`:解压`JBPM_HOME\install\...
根据提供的文件信息,我们可以深入探讨jbpm jpdl帮助文档中的关键知识点。该文档主要围绕jBPM(一款开源的工作流引擎)以及其图形化过程设计语言jpdl进行介绍。接下来,我们将按照文档的大纲顺序来解析各个部分所...
jbpm5example jBPM5示例项目当前,这些项目集中在JBoss BRMS 5.3.0上。 我可能会为其他版本添加一些分支(例如jBPM 5.3.0)BRMS 5.3.0存储库设置由于JBoss BRMS 5.3.0库不在公共存储库中托管,因此请按照以下步骤将...
http://www.mastertheboss.com/jbpm5/jbpm-5-tutorial-first-example 一般不会的问题,从官方找就行,但上面说的也不详细,结果搞了一天也没通,后来把条件直接换成 true就行了,也不用什么return money>1000了。 ...
- 运行 `ant load.example.identities` 命令来加载示例用户和用户组数据到 MySQL 数据库。 - **测试**: - 启动 Tomcat 服务器。 - 在浏览器中访问 `http://localhost:8080/jbpm-console`,如果页面正常显示,则...
其中,doc 目录包含了用户指南和开发指南,Example 目录提供了 JBPM 自带的示例,Install 目录是安装目录,lib 目录包含了 JBPM 所有依赖包,Migration 目录用于 JBPM3 到 jbpm4.3 的回退升级,Src 目录包含了 JBPM...
在【jbpm5example-master】这个压缩包中,可能包含了以下类型的示例: 1. **基本流程示例**:这些示例展示了如何创建简单的开始事件到结束事件的流程,以及如何在流程中添加任务、网关等元素。 2. **用户任务示例*...
修改配置文件的数据库连接部分就可以直接运行,由于文件过大,没有上传jar包,需要自己加入。将juel.jar 替换tomcat下的D:\Application\...浏览器输入:http://localhost:8080/Spring3Jbpm/example/login/login.html
jBPM Services REST项目该项目的目的是展示如何轻松地将jBPM服务api(带有ejb实现)用于在Java EE应用程序中嵌入jBPM。去做说明必要的组件(持久性单元,用户组回调机制) 我们是否需要此项目中的自定义回调或仅需要...
- `ant load.example.identities` - `ant start.tomcat` 这些命令会完成JBPM的部署,启动数据库服务,创建JBPM所需的数据库架构,安装示例项目,并启动Tomcat服务器。 最后,验证JBPM的安装: 1. **访问控制台*...