`
man1900
  • 浏览: 432875 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JOffice 1.2.3 流程发布过程 --基于Jbpm4.0的购车请款流程

    博客分类:
  • JBPM
阅读更多

最近很多同行问到JOffice如何扩展自己的流程,鉴于此,本人以下公司用一个购车请款的流程为例,说明JOffice中的流程发布。

一、    用Jbpm Eclipse plugin 定义好需要发布的流程,如下所示:

 

其定义的XML文件如下所示:

 

<?xml version="1.0" encoding="GBK"?>

<process key="buyCarFlow" name="购车流程" xmlns="http://jbpm.org/4.0/jpdl">
   <start g="196,22,48,48" name="开始">
      <transition g="-143,-11" name="to 输入购车预算金额" to="输入购车预算金额"/>
   </start>
   <task g="153,104,133,52" name="输入购车预算金额">
      <transition g="-92,-11" name="to 金额条件判断" to="金额条件判断"/>
   </task>
   <decision g="197,184,48,48" name="金额条件判断">
      <transition g="-83,-17" name="金额小于2000" to="副经理审批">
      	<condition expr="#{reqAmount&lt;2000}"/>
      </transition>
      <transition g="-28,-16" name="金额大于2000" to="总经理审批">
      	<condition expr="#{reqAmount&gt;2000}"/>
      </transition>
   </decision>
   <task g="10,271,98,52" name="副经理审批">
      <transition g="-47,-17" name="to 取消" to="取消"/>
      <transition g="-71,-17" name="to 财务审批" to="财务审批"/>
   </task>
   <task g="379,264,92,52" name="总经理审批">
      <transition g="-47,-17" name="to 取消" to="取消"/>
      <transition g="-71,-17" name="to 财务审批" to="财务审批"/>
   </task>
   <task g="172,365,92,52" name="财务审批">
      <transition g="-47,-17" name="to 取消" to="取消"/>
      <transition g="-47,-17" name="to 结束" to="结束"/>
   </task>
   <end-cancel g="195,272,48,48" name="取消"/>
   <end g="197,460,48,48" name="结束"/>
</process>
 

 

说明:
1.注意以下这部分的定义
<transition g="-83,-17" name="金额小于2000" to="副经理审批">
          <condition expr="#{reqAmount&lt;2000}"/>
      </transition>
      <transition g="-28,-16" name="金额大于2000" to="总经理审批">
          <condition expr="#{reqAmount&gt;2000}"/>
 </transition>

其使用了表达式来进行条件的跳转, reqAmount代表为流程表单中提交的数据字段名称,在后面我们会在表单中使用该字段名称。

 

二、    在JOffice中发布该流程
点击流程管理菜单中的流程管理,点击左流程左分类其中一项,再点“发布流程”按钮,如下所示:

 

把以上XML文件拷至该对话框。并且填写好流程名称为“购车请款”,注意,流程名称写好后,最好不要更改,否则后面的流程表单的路径也需要更改。再点击“保存”按钮,则成功发布了一个流程定义。

 

三、    分配各流程中的各任务节点的处理人员或角色

在流程管理列表中,点击“购车请款”流程行中的“ ”按钮,进入流程任务人员的设置界面,如下图所示:

 

 

双击“人员设置”面板中的用户列下的表格,会相应弹出该任务的人员选择对话框,如下图所示:

 

 

双击“人员设置”面板中的角色列,选择相应的角色:

 

说明:
在该设置中,人员的选择可以为发起人,即该任务会自动转给流程发起人来处理,另外还可以设置“上级”,即流程会流转至我的上级,若我的上级有多个人,即可以由其中一个锁定任务来执行。任务在执行过程中还可以转移由其他人来执行,如某人出差了,可以转至其他人来执行。

 

四、    定义好各任务的表单及表单字段映射

进入程序的WEB-INF/FlowForm/目录,为该流程定义好表单及表单的字段映射,
以流程的名称建立一个目录,如“购车请款”,如图所示。

 

并且以各个任务的名称定义表单,
如流程开始前填写的表单统一命名为“开始.vm”,其映射的字段文件为“开始-fields.xml”,若没有为开始或其他任务定义这两个对应的文件,其会默认使用“通用”目录下的表单及映射文件。

    在请款流程里,我们需要在“输入购车预算金额”任务里填写请款内容,所以我们在“购车请款”目录下建立了“输入购车预算金额.vm”文件及“输入购车预算金额-fields.xml”
以下为两个文件的对应代码:

[输入购车预算金额.vm]

 

[
	{
		fieldLabel:'预购车日期',
		xtype:'datefield',
		allowBlank:false,
		name:'reserveDate',
		format:'Y-m-d',
		value:'$dateTool.format("yyyy-MM-dd",$reserveDate)'
	},
	{
		fieldLabel:'预算金额(RBM)',
		xtype:'numberfield',
		allowBlank:false,
		name:'reqAmount',
		value:'${reqAmount}'
	},
	{
		fieldLabel:'购车描述',
		xtype:'fckeditor',
		height:300,
		name:'desc',
		value:'${desc}'
	}
]
 

[输入购车预算金额-fields.xml]

 

<?xml version="1.0" encoding="UTF-8"?>
<fields>
	<field name="reserveDate" label="预购车日期" type="datetime"/>
	<field name="reqAmount" label="预算金额(RBM)" type="decimal"/>
	<field name="desc" label="描述" type="text"/>
</fields>
 

用同样的方法,为其他流程配置其他任务对应的文件。

 

说明:以上过程在后面的版本直接通过程序界面来完成流程任务的表单配置,请看下一个版。

 

五、    启动流程

 

配置好以上的东西后,在流程管理中,点击“管理”列中最后一个按钮”新建流程“,即进入流程启动。如下图所示:

 

接着在“流程管理”目录下“我的待办事项”,可以看到刚才提交的购车请款事项:

 

 

点击管理列中的“ ”按钮,进入填写预算金额的任务表单,如下所示:

 

 

点击“转至:金额条件判断”,则流程进入下一个任务,如下所示:
进入我的申请流程中,可以看到该任务已经提交并转至“总经理审批”环节,(由于输入的金额>2000,所以流程会自动转至“总经理审批”)如下所示:

 

 

 

现在以李海2 用户登录,进入我的待办事项,如下所示:

 

 

 

提交至“账务审批”,即完成此次审批。


其他执行方式也相同,在此不介绍,往下执行的效果如下所示:

 

说明:

 


以上流程的定义目前还需要在eclipse工具中进行定义,后面的版本会提供一个在线的可视化设计的界面,同时也提供表单的在线设计。目前还是需要开发人员手工加入流程。

  • 大小: 74.9 KB
  • 大小: 133.5 KB
  • 大小: 81.5 KB
  • 大小: 97.3 KB
  • 大小: 78.9 KB
  • 大小: 107.2 KB
  • 大小: 35.4 KB
  • 大小: 69.3 KB
  • 大小: 11 KB
  • 大小: 114 KB
  • 大小: 49.5 KB
  • 大小: 132.6 KB
  • 大小: 56.4 KB
  • 大小: 124.6 KB
  • 大小: 118.5 KB
分享到:
评论
3 楼 joyofsky 2009-12-29  
真是不错,学习了!
2 楼 man1900 2009-12-17  
这个编译使用很简单,不需要什么ant或maven,直接把相应的源代码包及web包设置正确的开发路径则可,也可以直接把web目录当做一个应用程序发布则可。
1 楼 yswift 2009-12-10  
请楼主写篇文章介绍JOffice怎么用,我在下载到的源码包里找不到,ant,meavn相关的文件,如何编译运行?数据库怎么配置,等等。

相关推荐

    JOffice2中的JBPM4的任务回退实现

    在JOffice2中,JBPM4是一个强大的工作流引擎,用于管理和执行业务流程。本文将深入探讨如何在JOffice2中实现JBPM4任务的回退功能,这在处理复杂流程时尤其重要,允许用户纠正错误或根据需要调整流程方向。 任务回退...

    joffice技术框架介绍

    - **发布/编辑/在线设计流程**:管理流程的发布状态、编辑内容或在线设计。 - **查看定制流程**:查看已定制的业务流程。 - **自定义流程表单设计**:根据需求自定义表单界面。 - **人员设置** - **流程处理...

    JOffice V1.2 beta

    这个JOffice V1.2 beta版,也就是官方说开源的版本之一。 说实话,这个公司很讨厌,打着开源的幌子来宣传自己的产品,里面的 东西根本没有开源,还很恶心的包留了一部分代码,htcore.jar。 对于这样的开源,我表示...

    JOffice1.3使用手册.

    关于 JOffice1.3使用手册,方便快捷,大家来下载

    joffice文档

    // Chat.cpp : 定义应用程序的类行为。 // #include "stdafx.h" #include "Chat.h" #include "ChatDlg.h" #ifdef _DEBUG #define new DEBUG_NEW ... m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_...

    SVN 源码 地址

    - **JBPM**:流程管理引擎,其SVN地址为`http://jbpmside.googlecode.com/svn/trunk`。 - **JOffice**:一个用于读写Microsoft Office文件格式的Java库,SVN地址为`http://joffice.googlecode.com/svn/trunk`。 - **...

    joffice文档转pdf再转swf

    office文档转pdf后,再转swf,最终显示需要的一些工具及jar包,包括一个office转pdf转swf的java文件。因目前可上传的文件大小限制,OpenOffice安装文件未上传,工具目前最新版本为3.4.1,请另行下载

    权限实现实例(Ext+java)

    在JOffice中,权限管理采用了基于角色的管理策略,这使得系统能够高效地实现对用户访问权限的控制。这种策略与Spring Security 2框架相结合,允许开发者通过配置文件对整个系统的权限进行集中管理。Spring Security...

    java资料下载java资料下载java资料下载java资料下载

    首先,J.Office1.3.1是基于Java的一个办公软件,可能包含了处理文档、表格和演示文稿的功能。其1.3.1版本是一个修复版,优化了JavaScript性能并更新了ExtJS库,这表明它可能依赖于前端技术来提供用户界面。 安装...

    java打jar包方法

    虽然题目主要关注的是如何使用Java命令创建JAR文件,但提到了一个额外的SQL命令:`mysql-&gt;source F:/joffice131.sql`。这个命令用于MySQL数据库,它的作用是从指定的SQL脚本文件(这里是`F:/joffice131.sql`)读取并...

    SSH开发的办公自动化系统 OA

    SSH开发的办公自动化系统OA是一种基于Struts、Spring和Hibernate技术框架构建的企业级应用,它旨在提高工作效率,简化日常办公流程。SSH(Struts、Spring、Hibernate)是Java Web开发中常用的三大开源框架,它们各自...

    JOffVis:基于 Swing(Java)的工具,用于可视化 BIFF(二进制交换文件格式)文件

    JOffVis 一个基于 Java Swing 的工具,用于可视化 BIFF 文件,即 XLS、DOC 和 PPT。 当前版本仅支持可视化 xls 文件。先决条件:1) Java SDK 72) Maven 3要编译应用程序,请运行以下命令mvn 干净编译要启动应用程序...

    IReport3.6报表使用说明

    11. **上传至JOffice系统**: 完成设计后,将.jasper文件上传至报表管理系统,设定参数以便在系统中运行。 12. **参数设置和数据初始值**: 在报表参数设置中,指定参数的默认值或允许用户输入。这样,报表在运行时...

    java extjs 仿163邮箱源码

    ExtJS是一款基于JavaScript的富客户端框架,它用于构建复杂的、交互性强的Web应用程序。它提供了一套完整的组件库,包括表格、面板、窗口、表单等,使得开发者可以快速创建出类似于桌面应用的用户界面。在163邮箱的...

    JoPro:一个应用程序中的生产力和Office套件。-开源

    JoPro是一个生产力和办公套件,将文字处理器,电子表格设计器,演示设计器和svg查看器集成到一个应用程序中! 基于Netbeans平台。 图像和代码由Anthony Goubard设计。 最初称为Joffice。

    为Extjs加加速(javascript加速)

    在Joffice的实例中,ScriptMgr.load方法被用来异步加载所需的JS模块。当用户首次访问某个功能时,相关的JS文件会被加载并缓存起来。随后,如果用户再次访问同样的功能,则不会再重新加载这些JS文件,因为它们已经在...

Global site tag (gtag.js) - Google Analytics