基于TFM2平台体系管理项目工作流模块开发.docx

上传人:b****4 文档编号:24746761 上传时间:2023-06-01 格式:DOCX 页数:44 大小:229.78KB
下载 相关 举报
基于TFM2平台体系管理项目工作流模块开发.docx_第1页
第1页 / 共44页
基于TFM2平台体系管理项目工作流模块开发.docx_第2页
第2页 / 共44页
基于TFM2平台体系管理项目工作流模块开发.docx_第3页
第3页 / 共44页
基于TFM2平台体系管理项目工作流模块开发.docx_第4页
第4页 / 共44页
基于TFM2平台体系管理项目工作流模块开发.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

基于TFM2平台体系管理项目工作流模块开发.docx

《基于TFM2平台体系管理项目工作流模块开发.docx》由会员分享,可在线阅读,更多相关《基于TFM2平台体系管理项目工作流模块开发.docx(44页珍藏版)》请在冰豆网上搜索。

基于TFM2平台体系管理项目工作流模块开发.docx

基于TFM2平台体系管理项目工作流模块开发

基于TFM2平台体系管理项目

工作流模块开发指南

 

东南融通集团

2010年05月

修订历史记录

日期

版本

说明

作者

2010-6-3

1.1

初稿

黄新艺

2010-10-20

增加默认执行器以及公用配置部分

黄新艺

2011-3-22

增加了针对体系开发人员的说明

刘罡

1文档概述

本文档作为TFM2平台下工作流模块开发指南。

其他未加描述的请参照intelliplatform关于工作流部分文档。

常用API包以及类

2模版设计规范

2.1模版开发规范

2.1.1模版命名规范

系统工作流模版的包都必须以“tx”作为包的根目录。

系统中有如下几个子包,

序号

包名称

意义

bizCode

1

filemanage

文件管理

10XX

例如:

体系文件审批流程-1010

2

position

岗位职责管理

20XX

3

businessflow

业务流程管理

30XX

4

sysmonitor

体系运行管理

40XX

5

targetperf

目标及指标管理

50XX

6

improve

体系持续改进

60XX

2.1.2流程节点命名规范

流程模版对流程节点的id命名除警示相关节点外无特殊要求。

对于警示相关模版需要发起警示的流程节点命名必须以Warn_作为节点的前缀。

比如支付申请审批警示“Warn_approve1”。

2.1.3全局流程变量

系统设置四个全局的公用流程变量,流程模版开发人员在配置边条件、分派策略可根据自己的需要使用。

序号

变量名称

意义

内容

1

_g_prov_code

省公司编码

2

_g_prov_fina_code

省企管办编码

3

_g_prov_hard_code

省公司机关编码

4

_g_system_type

系统类型

系统类型:

0商业1工业

2.1.4公用流程变量

com.longtop.tfm.iwf.VarConstants

序号

变量名称

意义

内容

1

approveflag

审批意见(审批标识)

2

bizId

业务主键

3

bizCode

业务类别编码

4

staffId

发起人编号

5

deptCode

发起人所在部门编号

6

corpCode

发起人所在机构编号

7

muniCorpCode

发起人所在市级公司编号

8

counCorpCode

发起人所在营销部/县公司编号

非营销部的部门则不传入

9

deptLevel

发起部门所属的部门级别

发起部门所属的部门级别

A、商业:

省公司1,市公司2,营销部3

B、工业:

省公司1,卷烟厂2

省公司机关下面的部门对应的是省公司,市公司本部下面的部门对应的是市公司,营销部以及以下的部门对应的是营销部,如果有国家级的可使用0

10

deptBizType

发起人所在部门的业务类别

如财务、办公室等的业务编码

1、工作流模版设计至少要配置公用流程变量

2.1.5流程节点FORM的配置

系统摈弃platform的流程实现方式,我项目中配置form不需要配置公用的form页面,只需要配置各自的业务实现界面。

比如:

1、platform配置方式

2、本项目的配置方式

2.1.6结束节点配置

工作流模版的结束节点如果没有自定义结束适配器,都必须配置结束适配器使用默认的流程适配器com.longtop.tfm.iwf.adapter.BaseDoneAdapter。

自定义的结束节点适配器必须继承BaseDoneAdapter,具体见结束节点适配器。

2.2适配器开发规范

适配器开发规范适用于复杂流程,需要单独配置业务适配器。

对于需要二次开发公用适配器,比如发起流程适配器、取消流程适配、结束流程适配器、收回流程适配器以及自定义审批节点适配器,需要继承各自的公用适配器,同时实现所需要的执行器(Executor)。

适配器的类名一定要以Adapter结尾,如com.longtop…..BaseInitAdapter.java。

2.2.1应用适配器开发:

系统根据不同的场景提供不同的应用适配器,对于特殊功能需求,不同的适配器器需要实现特定的接口:

一、自定义发起节点申报适配器需要实现以下接口:

1、com.longtop.tfm.iwf.adapter.BaseInitAdapter

2、com.longtop.tfm.iwf.adapter.BaseInitV2Adapter,提供读取保存业务对象IPProcessBizVO的功能

二、发起节点的取消流程适配器需要继承以下接口:

com.longtop.tfm.iwf.adapter.BaseCancelAdapter(启用默认)

三、审批节点同意适配器需要继承以下接口

com.longtop.tfm.iwf.adapter.BaseApproveAdapter

四、审批节点不同意适配器需要继承以下接口

com.longtop.tfm.iwf.adapter.BaseDisapproveAdapter

五、审批节点驳回适配器需要继承以下接口

com.longtop.tfm.iwf.adapter.BaseRejectAdapter

六、申请、审批节点的收回适配器需要继承以下接口

com.longtop.tfm.iwf.adapter.BaseRestractAdapter

2.2.2模版适配器

1、结束适配器

流程默认的结束节点必须配置实现指定接口的适配器:

com.longtop.tfm.iwf.adapter.BaseDoneAdapter

2、超时适配器

com.longtop.tfm.iwf.adapter.BaseOvertimeAdapter

2.3流程模块开发规范

3业务管理流程模块开发指南

业务管理模块的开发主要分为列表和编辑两种界面。

流程开发常用API如下:

3.1列表/查询

3.1.1Action类

业务管理的列表查询类(Action)应该继承自类

com.longtop.tfm.iwf.web.ProcessListAction.java

以com.longtop.tfm.emp.EmpScoreListAction为例

3.2流程发起场景

3.2.1Action类

流程发起场景的Action应该继承自类ProcessInitAction.java

以com.longtop.tfm.emp.EmpScoreApplyAction为例:

3.2.1.1初始化函数doInit

initProcessBizInfo初始化流程业务主键,该函数为防止在自定义列表页面或者其他非标准方式进入流程处理界面而取不到流程信息。

此初始化函数也适用于审批场景和混合场景。

3.2.1.2提交申请apply

开发人员如果确实需要业务动作与流程动作同一事务,可把executor.doFirst…动作挪到service中执行

Executor提供设置流程变量api(addCustomActionVariable),当然模版中也需要设置相应的流程变量。

Executor提供设置流程自定义适配器的api(addCustomBizAdaptorName)(只有取消的流程动作启用默认的自定义适配器BaseCancelAdapter),该自定义适配属于应用适配器由公用流程接口自动调用。

自定义的适配器流程变量(addCustomBizAdaptorVariable)与之配合使用。

Executor提供设置流程扩展字段值的api(addProcessBizExtObject),对应Ip_process_biz表中的扩展字段。

对于流程操作需要在跟业务操作做同一事务控制的话,需要把executor传入service中,并在service中执行流程动作。

3.2.1.3收回任务retract

3.2.1.4取消流程cancel

3.2.1.5扩展开发

3.2.1.5.1扩展流程是否允许收回

需求:

业务上需要判断流程是否允许收回

扩展重写方法:

booleanisAllowRetract(IInitContextcontext,TfmTaskVOtfmTaskVO,finalListtaskInfoList)

3.2.1.5.2扩展流程是否允许驳回

需求:

业务上需要判断流程是否允许驳回

扩展重写方法:

booleanisAllowReject(IInitContextcontext,TfmTaskVOtfmTaskVO,ITfmUserProfileuserProfile)

3.2.1.5.3扩展流程action初始化

需求:

在所有的流程信息初始化后,需要对控件或者业务对象做特殊处理

扩展重写方法:

VoiddoAfterTaskInit(IInitContextcontext,finalTfmTaskVOtfmTaskVO,ITfmUserProfileuserProfile)

该方法会在所有的流程动作完成后调用

3.2.2Form页面

以/tfm/emp/employeeScoreApply.jsp为例:

3.2.2.1任务Dataset

Datasetid="Dataset_TfmTask"datasetDefinition="DatasetDefinition_IWF.dsd"datasetRef="Dataset_TfmTask">……

A、重新设置datasetid

任务datasetid默认使用Dataset_TfmTask。

如果需要修改,需要做如下工作:

需要在对应的jsp页面head标签中重新设置以下代码

DEFAULT_TFMTASK_DATASET_ID=“指定的datasetId”;

需要再对应的Action类中实现方法

publicStringgetTaskVODatasetId(){

return“指定的datasetId”;

}

3.2.2.2Page控件

系统在流程处理页面提供三个默认的初始化后加载函数

Function

适用情况

功能

Flow_onAfterLoadPage

通用(支持申请与审批)

Flow_Apply_onAfterLoadPage

流程申请

Flow_Approve_onAfterLoadPage

流程审批

以上三个默认的初始化函数提供根据流程的状态、任务的状态以及业务扩展具体的需要来对流程相关的控件设置是否显示以及动作是否执行。

系统如果对初始化有特殊的需求,可自定义onAfterLoadPage函数。

3.2.2.3流程动作事件

流程操作的Command必须指定以下Id,系统根据以下的id自动注入控件的事件

Button_Id

Comand_Id

名称

Button_Apply

Command_Apply

流程申请

Button_Cancel

Command_Cancel

流程取消

Button_Retract

Command_Retract

流程收回

Button_Reject

Command_Reject

流程驳回

Button_Approve

Command_Approve

流程提交同意

Button_Disapprove

Command_Disapprove

流程提交不同意

3.2.2.3.1Command的配置

Command中不需要配置Command的onExecuteSuccess事件,框架根据Command_Id自动注入事件。

需要自定义扩展onExecuteSuccess事件,需要实现对应的JS方法Global_Command_[Apply]_onExecuteSuccess()

Commandid="Command_Apply"action="com.longtop.tfm.emp.web.EmpScoreApplyAction"method="apply">

DatasetInfoname="DatasetInfo1"dataset="Dataset_EmployeeScore"submitType="current"/>

DatasetInfoname="DatasetInfo2"dataset="Dataset_TfmTask"submitType="current"/>

Command>

3.2.2.3.2Button的配置

Button中不需要配置Button的onClick事件,框架根据Button_Id自动注入。

需要自定义扩展onClick事件,需要实现对应的JS方法Global_Button_[Apply]_onClick()

RecordNavigatorid="RecordNavigator_Bottom"style="min-width:

200px;height:

25px;">

RecordButtonid="Button_Apply"label="申请"icon="/images/button/add.gif"/>

……

3.2.2.4审批意见控件

1、审批列表

Locationid="Location_Opinion"/>

2、审批意见输入控件

GroupBox_ApproveMemo审批意见区域外框id

Approve_Memo_Label审批意见Labelid

Approve_Memo审批意见输入框id

3.3流程审批场景

3.3.1Action类

流程审批类(Action)应该继承自类

com.longtop.tfm.iwf.web.ProcessApproveAction.java

以com.longtop.tfm.emp.EmpScoreApproveAction为例

3.3.2Form页面

以/tfm/emp/employeeScoreApprove.jsp为例:

3.4混合场景

混合场景可实现支持同一个Action中申请和审批的功能。

3.4.1Action类

流程审批类(Action)应该继承自类

com.longtop.tfm.iwf.web.ProcessDefaultAction.java

以com.longtop.tfm.emp.EmpScoreDefaultAction为例

3.4.2Form页面

以/tfm/emp/employeeScoreDefault.jsp为例:

3.5执行器规范

流程执行器是项目引入的的流程执行的API,根据项目的特点提供三种执行器:

1、初始执行器(IInitExecutor)2、审批执行器(IApproveExecutor)3、默认执行器(IDefaultExecutor)。

执行器实现对任务对象的封装,开发人员可以根据自己的需要扩展实现执行器。

由于执行流程可能会占用比较多的系统资源可能会导致事务执行超时,建议流程动作(doXXX)在Action中执行。

对于事务控制要求比较严格的地方可在Service执行流程动作。

3.5.1初始执行器IInitExecutor

系统提供默认的初始节点执行器com.longtop.tfm.iwf.executor.InitExecutor。

提供流程申报场景执行器所需要的API。

3.5.2审批执行器IApproveExecutor

系统提供默认的审批节点执行器com.longtop.tfm.iwf.executor.ApproveExecutor。

提供流程审批场景执行器所需要的API。

3.5.3默认执行器IDefaultExecutor

系统提供默认的审批节点执行器com.longtop.tfm.iwf.executor.DefaultExecutor。

提供流程混合场景执行器所需要的API。

3.5.4默认执行器提供API

执行器提供,发起流程、审批(同意\不同意)流程、取消流程、收回流程和驳回(驳回上一个节点、驳回到第一个节点)流程等流程动作。

同时也提供设置、添加流程适配器、适配器变量、流程变量以及流程扩展字段。

void

doCancelProcess(FlowBizObject flowBizObject)

     取消流程

 void

doFirstNodeCommitTask(FlowBizObject flowBizObject)

       在第一个节点发起流程

1、判断该流程是否已经发起,如果未发起则发起自动提交的任务

如果流程已经发起则提交流程

 void

doApproveTask(FlowBizObject flowBizObject)

          提交同意审批

1、如果审批意见为空默认为同意

 void

doDisapproveTask(FlowBizObject flowBizObject)

          提交不同意审批

1、如果审批意见为空默认为不同意

 void

doRejectTask(FlowBizObject flowBizObject)

          执行提交驳回

默认驳回API,驳回到第一个节点

1、如果审批意见为空默认为驳回

 void

doRejectToLastTask(FlowBizObject flowBizObject)

          执行驳回

驳回API,驳回到上一个结点

 void

doRetractTask(FlowBizObject flowBizObject)

          收回任务

 void

addCustomActionVariable(java.lang.String key,java.lang.Object value)

          新增流程事件的字定义流程变量

 void

addCustomBizAdaptorVariable(java.lang.String key,java.lang.Object value)

         添加一个自定义适配器流程变量

 void

addProcessBizExtObject(java.lang.String key,java.lang.Object value)

     增加流程业务的扩展字段

 TfmTaskVO

getTaskVO()

     获取当前执行器处理的任务对象

 boolean

isProcessNull()

     当前流程是否是未创建

 void

removeProcessBizExtObject(java.lang.String key)

     删除流程业务的扩展字段

 void

setCustomBizAdapterName(java.lang.String bizAdapterName)

     设置适配器名称

4工作流实施开发规范原则

工作流实施开发规则意在指导系统实施、开发人员在实施过程对工作流相关维护行为。

1、不要随意升级流程模版

2、不能直接在生产机上修改流程模版,修改流程模版必须在测试机上全面测试通过后把正确的流程模版手工导入到生产机上

3、对已经生效的流程模版的重大变更,涉及到映射表单重大变更的,为了确保流程历史业务数据的展现完整性和正确性,必须重新开发表单页面

5工作流开发要点

5.1模板设计时

流程模板设计时必须要指南中的10个流程变量,业务所需变量根据需要再添加;

结束结点必须要设置com.longtop.tfm.iwf.adapter.BaseDoneAdapter;

人工结点必须要有目标页面;

如果用到边条件,则条件要完备(例如一个有两个条边出的结点,一个条件用到flag=0,另一个一定要设置flag=1);

5.2后台类开发时

按DEMO所示各层ACTION继承相关类;

service中bizcode对应部署时业务编码;

5.3前台页面

涉及流程处理的页面(例如:

申请、审批)中必须要有Dataset_TfmTask;

5.4流程部署

要在流程管理中注册流程模板所对应的业务编码;

6问题以及解决方法

6.1在流程列表页面怎么显示流程图

系统提供通过JS函数直接显示动态流程图

1、JSP文件引入js文件

<%@tagliburi="prefix="c"%>

urlvalue='/scripts/tfm/global/tfmIwf.js'/>"/>

urlvalue='/scripts/tfm/global/tfmIwfEx.js'/>"/>

2、函数调用,其中mpid为流程id

functionRecordButton_ShowFlow_onClick(){

//获取Dataset的当前记录

record=$J("Dataset_RuleApproveTask").getCurrentRecord();

if(record!

=null){

varmpid=record.getValue("mpid");//mpid为流程的poid

showFlowPicWithProcessId(mpid);

return;

}

}

7附件

7.1ProcessListAction提供的API

com.longtop.tfm.iwf.ProcessListActionaction

1、getTaskUrl(IActionContextcontext)

获取当前人的任务路径供form页面调用

2、generateTaskUrl(IActionContextcontext,StringbizCode,StringbizId)

生成bizname和taskpath

7.2ProcessInitAction提供的API

com.longtop.tfm.iwf.ProcessInitAction

1、getInitExecutor(IProcessActionaction,IActionContextcontext)

函数获取一个初始节点执行器,对于需要重新实现初始节点执行器的必须重写本借口。

7.3ProcessApproveAction提供的API

com.longtop.tfm.iwf.ProcessApproveAction

1、getApproveExecutor(IProcessActionacti

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1