WF(工作流)模块介绍 - SAP入门必看 (转)

WF(工作流)模块介绍 - SAP入门必看 (转)
WF(工作流)模块介绍 - SAP入门必看 (转)

WF(工作流)模块介绍- SAP入门必看

Workflow,虽然有些过时的技术,但是还是有很多公司在使用,特别是一些比较大的企业,系统升级比较慢。也为自己知道的,做过的事情有一个总结,希望还能有点参考意义。1.从目的上来说,就是让整个业务更加流畅,更加透明,更加方便快捷。

2.既然有了workflow,就应该相应的有一个管理系统,以及一个开发环境,这些我们都能够在sap中找到。

T-code: SWDM'

3.在使用workflow之前,我们必须明白一件事情,那就是不管什么样的workflow,都会有一整套的业务原型。在定义workflow之前,应该找到相应的已经存在的模型(或许也可以自己开发,没有尝试过)。

4.不要误会workflow的功能,其实它是很强大的,虽然我们经常只使用它的一部分功能。包括,email的通知,transaction的集成,不同系统之间的数据交换(ALE/EDI)等等。Workflow的定义:

每个workflow都能在sap中找到业务流程;

Workflow由很多的步骤组成;

Workflow可以由事件触发;

Workflow的创建:

如果我们已经知道了业务如何执行,那么就可以创建自己的workflow了,于是我们会需要workflow builder.

T-code: SWDD

第二节:

SAP提供了大量的Workflow的模板可以供大家参考,如果不符合具体的业务流程,可以对该模板做增强。不过就像SAP标准程序一样,不能对其进行修改,当然,你可以把这个模板复制出来然后对其修改,具体就看你的需要了。

查看workflow 模板的方法:T-code FTC_DIS

Task type: WS

Workflow 助手:Business Workplace—SBWP

当Workflow执行到某一步需要特定的用户确认或者批准的时候,就会发出work item到该用户的workplace,以使该用户做出相应的操作。

Business Workplace可以和很多外部工具集成,例如lotus note,MS outlook等等,这样使workflow的通知方式更加灵活。

弄清楚Workflow的架构:

上面的图非常重要,这基本上描述了我们的开发方向,同时也对你理解SAP自带的Workflow 有很大的帮助,看明白到底是为什么而定义,以及如何去执行。

在Workflow中,我们经常会遇到关于Business Object的东西,我想在单独的文章中介绍它的开发以及使用。如果你不知道BO,那么和它紧密相关的BAPI你一定知道,在进一步了解BAPI的原理,你会发现其根本就在BO里面。

SAP 业务工作流是SAP R/3 提供的一个重要的业务工程工具。它被设计成跨应用模块的并支持集成事务。因此,它提高了现有的标准应用系统的功能。它特别适合于满足公司的特殊需要,自动

地处理和控制跨应用模块的业务。SAP 业务工作流集成和补充了标准R/3 系统尚未包括的业务。因此,SAP 业务工作流可以实现在SAP R/3 环境中的JIT 打印。如果我们能成功地把打印定义为整个工作流中的一个步骤(活动)(当然,在正确的时间,正确的的打印机完成正确的打印输出),开发JIT 打印和开发SAP 业务工作流是十分相似的。

工作流常用事务码

最常用事务码:

SWDM Business Workflow Explorer

SWDD Workflow Builder

SWO1 Business Object Builder

SWETPYV Display and maintain event type linkage

SBWP Business Workplace

SWI1 Selection report for work items

SWEL Display Event Trace

PPOMW Maintain organizational plan

PFTC_INS / _CHG / _DIS / _COP

Create / Change / Display /Copy Tasks

PFAC_INS / _CHG / _DIS

Create / Change / Display Roles

分析工具事务码:

SBWP Business Workplace ( Outbox )

SWI6 Workflows for Object

SWI14 Workflows for Object Type

SWEL Display event trace

SWI1 Selection report for work items

SWU7 Consistency check for workflow templates

SWU9 Display workflow trace

SWUD Diagnostic tools

SWU3 Customizing

Activiti工作流入门详解完整教学教程

Activiti入门教程详解完整教程 1.A ctiviti介绍 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。 Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss JBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。 1.1工作流引擎 ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。 1.2BPMN 业务流程建模与标注(Business Process Model and Notation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)

2.准备环境 2.1Activiti软件环境 1)JDK1.6或者更高版本 2)支持的数据库有:h2,mysql,oracle,mysql,db2等 3)支持Activiti运行的jar包,可以通过maven依赖引入 4)开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本2.2安装流程设计器(eclipse插件) 1)打开Help →Install New Software →Add 输入Name: Activiti Designer Location: https://www.360docs.net/doc/bf5287831.html,/designer/update/ 输入完成后,单击OK按钮等待下载完成后安装。 安装完成后在菜单选项中会出现Activiti的目录选项

jBPM开发入门指南(1)

环境准备 1、安装JDK 所有 JAVA 开发第一个需要安装的,没什么好说的。记得把系统变量 JAVA_HOME 设上。 2、安装Ant Ant 是使用 jBPM 必须的一个工具。 jBPM 中的很多操作都要用到 Ant 。 安装方法: ( 1 )先下载:https://www.360docs.net/doc/bf5287831.html,/dist/ant/binaries/,选一个如: apache-ant-1.6.5-bin.zip 。 ( 2 )解压到 D:\ant (当然其他目录也可以)。 ( 3 )设置如下系统变量: ANT_HOME=d:\ant 。 ( 4 )把 %ANT_HOME%\bin 加入到系统变量 PATH 中。 3、安装Eclipse Eclipse 不是开发 jBPM 必须的工具,但它是对 jBPM 开发很有帮助的工具,特别是 jBPM 提供了一个 Eclipse 插件用来辅助开发 jBPM 。关于 Eclipse 的安装不赘述了,本文用的版本是: Eclipse3.2 安装jBPM jBPM 的下载地址:https://www.360docs.net/doc/bf5287831.html,/products/jbpm/downloads ●JBoss jBPM 是jBPM 的软件包 ●JBoss jBPM Starters Kit 是一个综合包,它包括了jBPM 软件包、开发插件、一个配置好了的基于JBoss 的jBPM 示例、一些数据库配置文件示例。 ●JBoss jBPM Process Designer Plugin 是辅助开发jBPM 的Eclipse 插件。 ●JBoss jBPM BPEL Extension jBPM 关于BPEL 的扩展包 本指南选择下载:JBoss jBPM Starters Kit 。下载后解压到D:\jbpm-starters-kit-3.1 ,目录下含有五个子目录: ●jbpm jBPM 的软件包 ●jbpm-bpel 只含有一个网页

jbpm和shark工作流引擎对比

jbpm和shark工作流引擎对比 Xpdl:xml process definition language? Bpel:Business Process execution language? Jpdl:JBoss Jpbm Process definition language.

三亠 -出 1 (shark '^ B f Q M ) “tpcrfwwr 一 WfPmcrw 寥w ^C C E 王亍s- l t l l c -p =8 fe. n 2 Q ? su E wurhlt 1: 纟 - ory "&□.At vnsMk - uriflg jiubkd ehbunKk F t h 4- B c pruccan ^y t l i w &s.g n a l l l ) ^d 」2=-l £.x n ??=e *§9 mzr W n^ecIH ?- 一 dcunptF: nrinm 4 二-ring priority 二- 3g S u s - =Hat proc? uatm: FnxcfsFtl =J4lllh_og u cum- sutci) r M ^J C I F E J ,&d ?rcwinwO umin ?Ej ?r i - Mlm 一as- M K C d n i ) 亍 m E p whi fpenu =一一 —Jtiap :Tun??lu^::u~c 一 g JH*【 c.s-y 』。.:乂 ring bvi-yfuunc: ■王 £ l k .3 ?"『ring -2 l -x 2n : s z i n ? 2l -=^l -5-^ -]C 3.=V\3&dscBtAud r 卫 mmF. 二? H 4U ? ^u d l ,u n - ^urw sWtc : ?3a w daU “ NmeV flocs d H n : A . l _ ? I g 工 i ?亍1 £ ? ? 2 ??f& V j.i I s v v p g .gnugEvcfltAJidh ^evnerc-JJCy: ctring *l 3c c s l - 5 -il r g d remircc ndmc : K 3

工作流与JBPM开发实例精解

1.工作流与JBPM 开发实例 前几天发了一篇文章,没几个人看也没人留言,看来我这功夫差的还是远啊,今天来一个实际点的吧。可能上回的废话太多。说说这个jbpm应该怎么来用。 首先当你想学一个框架的时候一定是你要有项目来用他了,OK,那么你项目当中的流程是什么你应该清楚吧,那么当你清楚了这些的时候我们就开始我们这个最简单的例子吧。 假如我们现在有这么一个例子,公司员工想报销点出差费,那么他要将他的申请提交给他的第一级领导——部门主管去审批,然后部门主管审批完了之后还要交给这个部门主管的上级公司老总进行审批。那么针对这个简单的流程,我们应该从哪里下手呢? 首先第一件事情就是写流程定义文件,那么这个文件我们用什么来写呢,他就是一个符合某个语法的xml文件,幸运的是jbpm给我们提供了一个集成的开发环境让我们来用。 首先去官网上下一个jbpm-jpdl-suite-3.2.GA包,解压后你会发现他里面有一个designer文件夹,那个里面就是我们写流程定义文件的开发环境,他是一个eclipse的插件,但是好像他给我们的那个eclipse版本有问题,建议大家从新下一个eclipse-SDK-3.2.1-win32.zip这个版本的eclipse,然后覆盖他给我们提供的那个。 准备工作做完了,那么我们就开始吧,首先我们打开解压目录下的designer 文件夹中的designer.bat文件,他弹出一个eclipse,然后我们就用这个东西来开发我们的流程定义文件了。 打开之后你就会看见一个他的小例子,不过我们不去用他,我们自己新建一个工程。右键-new-other-jBoss jbpm-process project。这个时候你会看见他弹出一个对话框,输入你的工程名字,然后点击next,这个时候你会发现他已经把jbpm加载进去了,记住要选中Generate simple ......。 工程建立完了,我们开始建立我们的流程定义文件。在工程里面你会发现src/main/jpdl这个source folder,然后你会看见他里面已经有了一个流程定义文件了,但是我们不去用他的,我们自己建立一个,右键src/main/jpdl,然后new-other-jBoss jbpm-process definition。这个时候他就会弹出一个对话框,起一个你要写的流程定义文件的名字输入进去,OK,可以了。这个时候你打开你建立的那个文件夹,里面就有processdefinition.xml文件,ok,打开他。 在右面的图里面你就可以看到一张什么都没有的白纸,我们看看这部分左面的那些东西,什么start啊,end啊,tasknode啊,fork啊,join啊。那我们来解释一下这是个什么东西呢,我们看看我们的需求,员工要写一个报销单,然

Activiti工作流入门详解完整教程

A c t i v i t i工作流入门详 解完整教程 Prepared on 24 November 2020

Activiti入门教程详解完整教程 1.Activiti介绍 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。 Activiti基于Apache许可的开源BPM平台,创始人TomBaeyens是JBossJBPM 的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。 1.1工作流引擎 ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。 1.2BPMN 业务流程建模与标注(BusinessProcessModelandNotation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(BusinessProcessDiagram) 2.准备环境 2.1Activiti软件环境 1)或者更高版本 2)支持的数据库有:h2,mysql,oracle,mysql,db2等 3)支持Activiti运行的jar包,可以通过maven依赖引入 4)开发环境为或者以上版本,myeclipse为版本 安装流程设计器(eclipse插件) 1)打开HelpInstallNewSoftwareAdd

输入Name:ActivitiDesigner designer/update/ 输入完成后,单击OK按钮等待下载完成后安装。 安装完成后在菜单选项中会出现Activiti的目录选项 设置eclipseactivit插件的画流程图选项 打开菜单Windows-->Preferences-->Activiti-->Save下流程图片的生成方式 勾选上Createprocessdefinitionimagewhensavingthediagram操作,勾选上这个操作后在画流程图后保存eclipse会自动生成对应的流程图片。 准备开发环境 Activiti依赖 在eclipse左边工作栏右键New选择创建MavenProject项目,创建一个名为ActivitiTest的项目 点击Finish完成。 右键项目选择Properties,选择ProjectFacets勾选上图中的选项,点击Apply,再点击OK 然后将项目转换成web项目,右键项目选择Properties,在ProjectFacets中做如下勾选,然后点击Appy应用和OK确定 然后右键项目Properties,选择DeploymentAssembly,将test相关目录Remove掉之保留main下面需要发布的内容,如下图 然后点击Appply和OK 然后在文件中添加以下依赖

jira自定义工作流操作手册

jira自定义工作流配置 在介绍jira自定义工作流配置之前先介绍一些概念性的知识: 1.工作流:是一个问题经过进过其生命周期的若干个步骤和阶段的变迁。工作流通常代 表实际的业务处理流程。 一个工作流是由步骤和变迁组成的,一个工作流的步骤标识着一个问题的一个阶段或者叫“状态”,变迁是工作流中两个步骤之间的连接。 2.当定义一个变迁的时候,可以选择性的指定一下选项: Conditions(条件)——用于控制哪些用户能够执行一个变迁。 Validators(校验)——在执行变迁之前,用于检查任何用户的输入是否合法。 Post Functions(后续操作)——在变迁完成之后,用于执行特定的动作,如:将问题分配给特定的用户,发送通知email,更行问题的某个字段。 Screen(显示给用户的界面)——这对于用户输入信息之后才能完成变迁的情况是有用的。 3.在jira中的默认工作流程图中,5个方框表示工作流的步骤/状态(open、in progress、 resolved、reopen、closed),箭头代表变迁(transitions)。这个从网上查一下。 4.在jira中可以用不同的方式来创建一个新的工作流: 页脚内容1

1)通过“Add New Workflow”来创建一个空白的工作流。用这个方法创建的工作流有 一个默认的步骤open,该步骤有一个进入的工作流变迁:“create”。 2)通过点击“copy”链接,拷贝已经存在的工作流(如果您准备新添加的工作流和已 经存在的工作流类似,则可以使用此方法)。用这种方法您的工作流将会包含所拷贝的工作 流的所有步骤和变迁。 1.创建工作流 Jira安装完成以后地址栏中输入:http://10.7.101.25:8080/secure/Dashboard.jspa进行平台配置。 在创建新的工作流时一般先将全部步骤定义好,再创建变迁将步骤连接起来,所以首先要自己定义一个工作流程图。 1.以jira管理员的账户登录系统。 2.在jira的导航菜单上点击“Administration”链接。 3.点击左侧导航菜单中的Global Settings—>Workflows,如下图: 页脚内容2

jBPM4.4详细讲解

jBPM4.4 一、什么是jBPM JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上。 java Business Process Management :工作流,工作流引擎 注:记得j小写,因为j代表java,与Log4j中j一样 工作流管理系统不止一中,如还有Intaliol BPMS …但JBoss jBPM灵活性且扩展性高。 jBPM项目于2002.3由Tom Baeyens 发起,2003.12发布1.0版本,2004年10.18发布 2.0,并在这天加入了JBOSS组织-→被RedHat公司 二、能干什么 提供工作流的实现,帮助更好的进行BPM 三、jBPM有什么,简介jBPM的Service API 各种服务 1:ProcessEngine:流程引擎。并不负责具体的业务,而是用于获取各种Service。 2:RepositoryService:流程资源服务的接口,如流程定义发布、查询、删除等。 3:ExecutionService:用于操作流程实例的服务,可以进行流程实例发布、查询、流程推进、设置流程变量等操作。 4:TaskService:用于操作人工任务的服务,可以进行任务创建、查询、获取、提交完成、保存、删除等操作。 5:HistoryService:用于操作流程历史的服务,提供对流程历史库(就是已经完成的流程实例)的操作。比如:历史流程实例,历史活动实例等。 6:IdentityService:用于操作用户、用户组以及成员关系的服务 7:ManagementService:流程管理控制服务的接口,只提供异步工作(Job)相关的执行和查询操作。 四、Myeclipse8.5 搭配开发环境 1.jbpm-4.4.zip 下载完 2.myeclipse→help→Myeclipse Configuration Center →add……. 3.找到\jbpm- 4.4\install\src\gpd\jbpm-gpd-site.zip 安装这个插件 4.记得不要联网安装,不要选source文件 5.安装完后window→JBoss jBPM→runtime Location→add 添加jbpm的路径 6.添加lib下所有jar包,如果你使用的是tomcat6.0则:要把 Juel-api.jar ,juel-impl.jar,juel-engine.jar 拷到tomcat lib 下并把原来的el-api.jar删掉 项目中就不要再导上面三个包 五、修改配置文件 1、将example中的下列配置文件拷贝到java项目的src目录下: jBPM.cfg.xml、jBPM.hibernate.cfg.xml、jBPM.mail.properties、 jBPM.mail.templates.xml、process_forms.css 2、在以上配置文件中的jBPM.hibernate.cfg.xml,实际上就是我们熟悉的 hibernate.cfg.xml,这里,要修改为连接我们的数据库。 oracle.jdbc.driver.OracleDriver

工作流系统功能介绍简化版

工作流系统功能介绍 目录 1概述 (2) 2流程系统设计总图 (4) 3建模工具 (4) 3.1组织机构管理 (5) 3.1.1主界面 (6) 3.1.2岗位管理界面 (7) 3.1.3部门管理界面 (8) 3.1.4员工管理界面 (9) 3.2权限管理 (10) 3.2.1主界面 (11) 3.2.2权限组管理界面 (12) 3.2.3权限设置界面 (14) 3.3流程管理 (14) 3.3.1流程管理主界面 (15) 3.3.2启动节点配置界面 (15) 3.3.3处理者配置界面 (19) 3.3.4流转条件配置界面 (19) 3.3.5控制节点配置界面 (20) 3.3.6子流程节点配置界面 (21) 3.4表单管理 (21) 3.4.1表单管理主界面 (22) 3.4.2选择用户控件界面 (23)

4工作流引擎 (23) 4.1基本功能 (23) 4.2任务节点类型 (25) 4.2.1启动节点 (25) 4.2.2结束节点 (26) 4.2.3交互节点 (26) 4.2.4子流程节点 (26) 4.2.5控制节点 (26) 4.2.6查看节点 (26) 5业务平台 (26) 5.1业务平台主界面 (27) 5.2例子:差旅费报销流程 (27) 5.3未认领任务 (29) 5.4已认领任务 (30) 5.5已完成任务 (30) 5.6查看流程图 (30) 6与门户sps系统的整合 (31) 7流程监控服务系统(即时消息和Email) (32) 1概述 随着计算机软件应用的普及,信息化系统发挥的作用也越来越大,企业信息化建设的不断深入,对系统功能和自动化程度要求越来越高。客户要求系统功能与实际的工作情景紧密结合,对每个业务环节的控制要求越来越精确。如何让我们的信息化系统更加贴近客户需求,满足客户不断变化的业务流程成了我们软件开发商不得不面对的问题。

jbpm数据库说明

jBPM,全称是Java Business Process Management,是一种基于J2EE 的轻量级 工作流管理系统。 一、介绍下大背景工作流的应用市场部分内容就不提了。首先提一下目前工作流域 的两种主流方向 1、workflow 。 代表osworkflow 等。 workflow 的特点为:其主要侧重于对流程的处理模型方面,也就是说它关注的重心是流程的处理 2、BPM商业逻辑流程模型 BPM的重心为商业逻辑流程模型的处理 其中以JBPM为代表 这是两者最大的区别,也就是切入点不同。不过对我们实际应用来说,选哪个区别都不是很大说到工作流就要提到WFM组织,这个组织是国际上一些厂商组成的一个工作流的组织,该组织给出了一个他们自己定义的工作流的定义,及XPDL语义。 该定义将工作流的定义包括为至少以下五部分内容: 1、工作流过程活动 2、转移信息 3、参与者声明 4、外部应用程序声明 5、相关数据 并给出了标准的语法来描述上述元数据 1:workflow process 2:activity 3:transition 4:application 5:date field 由于JBPM不符合上述语法定义,因此JBPM是不符合该WFM规范的不过上述每部分内容在JBPM都有自己的定义来描述 二、JBPM流程的一个基本的处理步骤 1、加载(发布)流程定义 2、启动流程 3、处理任务 4、记录流程的相关状态 1、加载(发布)流程定义 这个意思是,我们通过jbpm 的designer 插件,或者是用其他工具,制定出processDefinition (可以是String ,可以是包文件,也可以是流数据等),然后将其加载到应用中的过程。这个加载可以是写入内存中,或者是直接 写入数据库等 2、启动流程

JBPM工作流表结构的详解

注:红色的表为经常使用的表.这里不使用JBPM自己的权限角色定义. 整体说明: JBPM4_DEPLOYMENT 流程定义表 JBPM4_DEPLOYPROP 流程定义属性表 JBPM4_EXECUTION 流程实例表 JBPM4_HIST_ACTINST 流程活动(节点)实例表 JBPM4_HIST_DETAIL 流程历史详细表 JBPM4_HIST_PROCINST 流程实例历史表 JBPM4_HIST_TASK 流程任务实例历史表 JBPM4_HIST_VAR 流程变量(上下文)历史表 JBPM4_ID_GROUP 组表 JBPM4_ID_MEMBERSHIP 用户角色表 JBPM4_ID_USER 用户表 JBPM4_JOB 定时表 JBPM4_LOB 存储表 JBPM4_PARTICIPATION 参与者表 JBPM4_SWIMLANE 泳道表 JBPM4_TASK 任务表 JBPM4_VARIABLE 上下文表 红色的表为经常使用的表.这里不使用JBPM自己的权限角色定义. 发布一个流程deploy后 jbpm4_deployment新增一条记录 jbpm4_deployprop新增三条记录 jbpm4_lob 新增一条记录 开始一个流程startProcessInstanceByKey后 jbpm4_execution新增一条记录 jbpm4_hist_actinst 新增一条记录 jbpm4_hist_procinst新增一条记录 jbpm4_hist_task新增一条记录 jbpm4_task 新增一条记录 流程定义相关的布署信息就存储在(1)JBPM4_DEPLOYMENT、(2) JBPM4_DEPLOYPROP及(3)JBPM4_LOB中。上传一个包含png和jpdl.xml的zip包后,JBPM4_DEPLOYMENT多一条记录 JBPM4_DEPLOYPROP 多三条,

工作流Activit介绍与应用

工作流Activiti介绍与应用 工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。我的理解就是:将部分或者全部的工作流程、逻辑让计算机帮你来处理,实现自动化。 1Activiti简介 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。 1.1A ctiviti基础编程框架 Activiti的基础编程框架如下:

Activiti基于Spring,ibatis等开源中间件作为软件平台,在此之上构建了非常清晰的开发框架。上图列出了Activiti的核心组件。 1.ProcessEngine:流程引擎的抽象,对于开发者来说,它是我们使用Activiti的外观(fa?ade),通过它可以获得我们需要的一切服务。 2.XXService(TaskService,RuntimeService,RepositoryService...):Activiti按照流程的生命周期(定义,部署,运行)把不同阶段的服务封装在不同的Service中,用户可以非常清晰地使用特定阶段的接口。通过ProcessEngine能够获得这些Service 实例。 1.2A ctiviti重要服务类 ProcessEngine:流程引擎的抽象,通过它我们可以获得我们需要的一切服务。RepositoryService: Activiti中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据(例如BPMN2.0 XML文件,表单定义文件,流程定义图像文件等),这些文件都存储在Activiti内建的Repository中。RepositoryService提供了对repository 的存取服务。 TaskService:在Activiti业务流程定义中每一个执行节点都被称作一个Task,流程运行过程中,与每个任务节点相关的接口,比如complete, delete,delegate等等都是TaskService提供的。 IdentityService: Activiti中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的Task。IdentityService提供了对Activiti 系统中的用户和组的管理功能。FormService:Activiti中的流程和Task状态均可关联业务相关的数据。通过FormService可以存取启动和完成任务所需要的表单数据。RuntimeService:在Activiti中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。RuntimeService提供了启动流程、查询流程实例、设置获取流程实例变量等功能。此外它还提供了对流程部署,流程定义和流程实例的存取服务。. ManagementService: ManagementService提供了对Activiti流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于Activiti系统的日常维护。HistoryService: HistoryService用于获取正在运行或已经完成的流程实例的信息,与RuntimeService中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。 关于ProcessEngine和XXService的关系,可以看下面这张图:

Activiti5基于jBPM4的开源工作流系统10分钟入门指南

https://www.360docs.net/doc/bf5287831.html, 觉得activiti设计得简单而强大,尝试翻译一下他的10分钟入门指南: 10分钟入门指南 通过一个(非常简单的)业务流程,介绍一些基本的Activiti工作流感念和API接口。 使用案例 这个用例叫干脆(straightfoward):有一个公司,暂且叫它BPMCorp。在BPMCorp内部,会计部门每个月都要写一份财务报告给公司的股东。但在发送给所有股东之前必须经过上级部门的批准。下面涉及的所有文件及代码片段均可以通过Activiti分发的examples范例包中找到,请查看包 https://www.360docs.net/doc/bf5287831.html,ertask的内容。 流程图 如上所述的业务流程可以使用Activiti的可视化流程编辑器 Activiti Modeler查看及编辑。使用BPMN2.0的标准符号则如下图所示: 这里没有什么特殊的东西,图中看到的是一个none start event(左边的圆圈),其次是两个user tasks:"撰写财务报告"和”批准财务报告",以 none end event (右边边框加粗型的圆圈)结束。XML表示 上述业务流程的XML表示形式如下所示(FinancialReportProcess.bpmn20.xml). 流程中包含一些主要的元素(通过点击链接可以查看更详细的BPMN 2.0 元素的说明): ?none start event 让我们认识到要开始一个流程。 ?user tasks声明一个基于用户操作的流程任务. 注意第一个任务是分派用户组accountancy的, 而第二个任务是分派到用户组management的. 查看分派用户任务章节可以得到更多怎样分派任务到用户或组的信息。

jBPM 4.4 入门指南

1.工作流与工作流管理系统 1.1. 工作流(Work Flow) 工作流就是工作流程的计算机模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。通俗的说,流程就是多个人在一起合作完成某件事情的步骤,把步骤变成计算机能理解的方式就是工作流。 公司内采用纸张表单,手工传递的方式,一级一级审批签字,工作效率低下,对于统计报表功能则不能实现。而采用工作流软件,使用者只需在电脑上填写有关表单,会按照定义好的流程自动往下跑,下一级审批者将会收到相关资料,并可以根据需要修改、跟踪、管理、查询、统计、打印等,大大提高了效率,实现了知识管理,提升了公司的核心竞争力。 作为一个成熟稳定的工作流产品,不仅提供日常办公和关键业务流程智能化管理,而且能根据公司的特殊实际要求轻松方便地随时定制各种流程,并可实现不同角色不同的跟踪、查询、统计、打印等强大功能 1.2.工作流管理系统(Workflow Management System) 工作流管理系统(WfMS)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。工作流管理系统是定义、创建、执行工作流的系统,应能提供以下三个方面的功能支持: 1.定义工作流:包括具体的活动、规则等 2.运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度 3.运行交互功能:指在工作流运行中,WfMS与用户(活动的参与者)及外部应用程 序工具交互的功能。 一、定义工作流 二、执行工作流

jBPM

jBPM-jPDL学习笔记—框架设计简介(一) 概述: jBPM(JBoss Business Process Management业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。 jPDL是构建于jBPM框架上的流程语言之一。在jPDL中提供了任务(tasks)、待处理状态(wait states)、计时器(timers)、自动处理(automated actions)…等术语,并通过图型化的流程定义,很直观地描述业务流程。 jPDL可以部署于Java语言的任何应用环境下,JavaSE Application(Swing/SWT)、JavaEE Application(Application Server) jPDL分发包组成 目前jPDL的最新版本是3.2.2,您可以在以下地址: https://www.360docs.net/doc/bf5287831.html,/jbossjbpm/jpdl_downloads/ 获得官方下载包。下载包分为两种,一种是标准包(jbpm-jpdl-3.2.2.zip)只有20M左右;一种是套件包(jbpm-jpdl-suite-3.2.2.zip)将近80M。两者最大的区别是套装包自带一个已经配置好的jboss服务,下载解压缩后,可直接运行。 jPDL的核心程序包(jbpm-jpdl.jar) 它是一个典型的jar文件,它涵盖对流程定义和运行时流程实例上下文环境的操作API。在最简化的业务流程样例中,jPDL将流程定义存储与XML格式的定义文件中,在运行时载入内存,在内存里记录完整的业务实例和执行过程的环境变量,并完成全部操作。显然,在实际应用中,流程信息必须被持久化的存储于数据库中。jPDL使用了Hibernate作为其对象持久化的API。 Graphical Process Designer插件(jbpm-jpdl-designer-3.1.2.zip) 它是一个基于Eclipse的图型编辑插件。使用它可以对业务流程进行可视化的定制,而无须手动编辑XML文件。该插件还提供了流程定义上传功能,可以将新定义的流程发布到在线运行的jPDL系统上。

工作流引擎功能介绍

工作流引擎功能介绍 一、功能介绍 1、获取流程定义: 查询并返回所有流程定义或系统当前用户有权限发起的流程定义。 2、未提交流程保存: 未发起流程的保存。 3、未提交流程查询: 查询并返回系统当前用户未发起的流程。 4、未提交流程删除: 删除未发起流程。 5、发起流程: 流程发起。 6、提交: 该功能实现流程实例创建、任务分配以及流程其它任务节点审核通过时创建下级节点活动实例和任务分配。 7、获取可退回节点: 该功能查询出流程已创建实例的节点,供执行退回用户选择退回节点。 8、接收: 接收功能把工作项初始状态更改为“open.running”(初始状态为“open.not_running.not_started”),并且记录接收时间。如果当前节点为抢任务,则还会删除其他参与者的任务。 9、放回: 与接收功能互逆,恢复接收功能产生的影响。 10、退回: 该功能负责将当前节点的活动实例状态改为退回,删除其它参与者的任务,创建所选节点的活动实例和任务。调用不同接口,可以实现退回上一节点或是选择退回节点退回。 11、待办业务: 获得需处理工作项。

12、获取待办任务数: 待处理工作项数量。 13、获取未提交流程数: 未提交流程数量。 14、已办业务: 已处理的工作项。 15、我发起的流程: 查询系统当前用户发起的流程。 16、历史流程查询: 查询系统当前用户参与的并且已结束的流程。 17、流程轨迹: 获取流程审核流转记录。 18、委托: 使用委托功能,用户可以给自己的业务指定代理人,由代理人负责处理。19、收回: 与委托功能互逆,取消业务代理人。 20、追回: 收回已经审核通过或者是退回的工作项。 21、执行期限: 用户可以给工作项设定执行期限,若在指定期限内完成工作流引擎不会发送提醒消息;若超出执行期限,则发送消息(消息发送方式见14、消息提醒功能),提醒工作项参与人员及时处理。执行期限可以设定绝对时间或相对时间。绝对时间是指用户指定具体的年月日时分,例如2012/02/17/10/10。相对时间是指用户指定一个时间段,如1天2时2分10秒。工作流引擎会从工作项接收的日期起计算时间,若计算出的时间超出了用户指定的相对时间,则发出提醒消息。 22、消息提醒: 通过消息提醒功能,用户可以接收到工作流引擎发送的代办业务超时提醒或申请已通过提醒。工作流引擎提供邮件或手机短信两种提醒方式,可以选则其中任意一种或者同时选择两种方式发送提醒消息。 23、流程定义部署:

jbpm工作流入门教程

jbpm工作流入门教程 1.jBPM的简单介绍 jBPM是JBOSS下的一个开源java工作流项目,该项目提供eclipse插件,基于Hibernate实现数据持久化存储。 参考 https://www.360docs.net/doc/bf5287831.html,/products/jbpm 2.jBPM和myeclipse的冲突 当eclipse安装了myeclipse和jBPM时候,可能有冲突,具体表现在jBPM 的流程设计器不能在eclipse中使用。 3.Hibernate连接mysql数据库的一般参数 下面的配置参数,根据需要可以修改: jbpmtest是mysql中的schema的名字; GBK是字符集,可以根据需要修改; username=root,mysql数据库的用户名是root; password=mysql,mysql数据库的用户密码是mysql; hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.url=jdbc:mysql://localhost/jbpmtest?useUnicode=true&characterEncoding= GBK

https://www.360docs.net/doc/bf5287831.html,ername=root hibernate.connection.password=mysql hibernate.show_sql=true hibernate.c3p0.min_size=1 hibernate.c3p0.max_size=3 4.Hibernate连接Oracle数据库的一般参数 hibernate.dialect=org.hibernate.dialect.Oracle9Dialect hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver hibernate.connection.url=jdbc:oracle:thin:@localhost:1521:orcl https://www.360docs.net/doc/bf5287831.html,ername =jbpm hibernate.connection.password=jbpm 5.为jBPM创建数据库表等内容 5.1.为mysql创建数据库以及数据内容 JbpmSessionFactory.buildJbpmSessionFactory().getJbpmSchema().dropSchema(); JbpmSessionFactory.buildJbpmSessionFactory().getJbpmSchema().createSchema(); 这2个语针对mysq有效. 5.2.为oralce创建数据库以及数据内容 JbpmSessionFactory.buildJbpmSessionFactory().getJbpmSchema().dropSchema();

JIRA工作流介绍

"工作流"是一个问题经过其生命周期的若干阶段和阶段的变迁. 问题的工作流典型的代表了业务处理和开发的周作流,同时对相应的概念进行解释. 如果你已经定义了一个工作流, 请参见 激活工作流 一节来进行使用. 所有的JIRA 版本都带有一个 默认的工作流 . JIRA 企业版和专业版允许 通过JIRA 工作流编辑器对工作流进行定特定项目或项目问题类型相关的多个工作流. JIRA 专业版仅支持一个活动的工作流. 即在JIRA 专业版中用户可以统中的所有问题 只能使用其中的一个工作流. 工作流由 步骤 和 变迁组成. 一个工作流的步骤 代表了在工作流中针对一个问题的一个阶段. 在某一时刻一个问题只能 存在于一个在步骤步骤叫做初始步骤. 同时一个问题被创建并被放置 到该步骤中. 每个工作流步骤有一个"链接" 状态 . 当一个新为该步骤已经被"链接"的状态. 每个工作流步骤可以具有 变迁 ,从而使一个问题从一个步骤移动到另外一个步骤. 为了使一个问题能够从一变迁将这两个步骤联系起来. 一个变迁是在两个步骤之间的 单方向链接 . 这表明如果一个问题需要在两个步迁. 对一个问题现有的工作流步骤已经在问题的 View Issue 页面列出: 用户可以通过点击其中一个链接来执行一个工作流的过度(使问题通过一个工作流). 创建一个新的工作流,可以在 View Workflows 页面中通过如下步骤来实现: 1.Login as a user with global administrator access. 2.Bring up the administration page by clicking either on the "Administration" link on the top Administration box on the dashboard: 3.如果左边的Global Settings 的子菜单没有打开, 请点击并从列表中选择Workflows . JIRA 工作流 步骤和变迁 创建工作流

JBPM源码浅析

JBPM源码浅析 关键字: jbpm workflow 工作流 离职啦,工作交接中,记录一下。 就如同了解Servlet规范、Servlet容器设计和实现一样,学会一种workflow 的建模、引擎设计和实现也是必备的。工作流这东西是业务系统的一个核心模块,现在的大多数企业业务系统大多数是业务驱动的,如新闻行业采编发、制造业的采供销、金融保险的审批等,协同OA就不用说了。BPM、ESB、SOA现在很火啊! 下面的总结肯定欠成熟,70%合理就不错啦,看到这篇blog的朋友,一定要批判接受哦。 当前我指的JBPM是3.2版本,因为从JBPM2.0到3.0,其API从package到class 都完全重新设计了,以及其背后的建模思想和架构。在2.0版本里,是按照Spring+Hibernate那种Transaction Script方式组织的,OO的概念比较弱,里面是大量的interface、impl、service。而3.0版本,完全按Domain Model方式组织,Hibernate透明持久化,它是我见到的O/R Mapping最优雅的应用。 在当前的3.2版本里,其整体架构可以这么去理解:领域对象,如ProcessDefinition、ProcessInstance、Node、Token、Transition等,都是Rich Model,里面的方法主要是处理业务,以及建立领域对象之间的关联,持久化则完全放在XXXSession中,如TaskMgmtSession,GraphSession等,也可以认为这些XXXSession是DAO,负责处理持久化。另外, org.jbpm.persistence.db.DbPersistenceService这些类相当于最底层的数据库Helper类。总之,JBPM的技术架构非常清晰易懂,也是非常典型的Domain Driven Design,在这种架构中,分层的概念被弱化了。 上面是从架构的角度看待JBPM设计,其引擎设计和实现,则隐藏在架构下。了解其引擎设计思想,我的建议是,先仔细读读JBPM的User Guide第四章Graph Oriented Programming,专门探讨流程建模的理论,里面附带了一个微型的JBPM 实现,几乎包括流程建模的绝大部分,如顺序流、并行、分支等: https://www.360docs.net/doc/bf5287831.html,/jbpm/gop/jbpm.gop.zip,我建议研读JBPM源码前,先把这个理解透,JBPM的流程引擎核心代码和它非常相似,包括类名,只是扩展了一些。 我用代码统计工具统计了一下,JBPM源码总共4w多行,除去注释和空行,约2万6千行。需要我们hack的核心、比较难、代码多的类约40个(共400多),反正它花了我整四天的时间,现在基本都弄清楚了。我主要是通过一个请假流程的部署、创建、任务执行来动态debug、静态查看的。JBPM源码中最难读懂的那部分是引擎调度,也就是org.jbpm.graph相关的几个包,最重要的是GraphElement和其子类Transition等、Node及其子类Fork等、ExecuteContext 和Token。而引擎调度这部分, JBPM附带了一个微型JBPM实现,我在前面介绍

相关文档
最新文档