用以与不同目标工作流系统进行匹配的方法

文档序号:6472199阅读:189来源:国知局
专利名称:用以与不同目标工作流系统进行匹配的方法
技术领域
本发明涉及的是一种工作流匹配方法,特别涉及的是用以与不同类型的现有目标
工作流系统进行匹配的方法,用于屏蔽因工作流系统差异对于工作流客户端应用的影响。
背景技术
工作流管理是一个被业界广泛应用并迅速发展的技术,它的主要特点是使计算机 上的业务处理流程自动化,使相应的人以及各种应用工具相互之间协调,以完成某项工作。 工作流管理可以在各种办公环境(如行政管理、保险业、银行业以及司法等)以及工业和制 造等领域得到广泛应用,其目的是为了让合适的人或软件在恰当的时间执行正确的工作, 它被誉为信息系统的后勤。 工作流技术经常和业务过程重组(Business Process Re-engineering,BPR)紧密 相连。BPR所关心的是对组织机构内部的核心业务过程进行评价、分析、建模、定义以及操作 上的实现。工作流技术提供了把业务过程逻辑从具体的IT工具的操作中分离出来的方法, 并且还可以在以后把改变的过程逻辑规则添加进去。 工作流管理将计算机科学的各种技术、原则和方法集成在一起,他是一个非常有 活力的研究领域。目前,世界上已有许多研究工作流管理的公司和组织,并且已推出许多商 品化的产品(目标工作流系统),如ActionWorkflow System (Action Technologies公司 出品),FlowMark(IBM公司),WorkFlo BusinessSystem(FileNet公司),0mniDesk(Sigma Imaging System公 司),Staffware (Staffware公 司),Regatla (Fujitsu公 司), FlowPath (Bull' s Image Works), TeamFlow (ICL) , ViewStar (ViewStar公司),Quality at Work (Quality DecisionManegement)等。 但目前工作流管理发展的状况非常类似于七十年代初,关系数据模型和E-R模型 出现以前的数据库管理系统,大家各持己见,没有一个统一的标准,所开发的产品互相之间 大部分也不兼容,使得很多用户不愿使用商品化的工作流管理产品。 为了使工作流的概念和接口标准化,工作流管理组织W预C制定了工作流管理系 统组织结构的参考模型,请参阅图l所示,并陆续给出了大部分接口标准。但是这些标准仅 仅是停留在技术层次,而且重点放在语法而不是语义上,而在概念层次上,则至今仍没有统 一的意见。例如,在接口 1的规范中,就没有关于状态及基本构造块(如AND/OR)的正式描 述,这样就给使用带来了极大的不便。 鉴于上述缺陷,本发明创作者经过长期的研究和实践终于获得了本创作。

发明内容
本发明的目的在于,提供一种用以与不同目标工作流系统进行匹配的方法,用以 克服上述缺陷。 为实现上述目的本发明采用的技术方案在于,提供一种用以与不同目标工作流系 统进行匹配的方法,其包括
将目标工作流系统的调用接口分别与相应的实现类相对应; 设置接口类,其与外部的调用命令相对应; 将外界的调用命令通过对应的接口类传递对应的实现类; 所述的接口类保存实现类的引用,通过所述的实现类引用对应的目标工作流系统
的调用接口实现匹配和控制。 其中,所述的接口类包括工作流引擎类、工作流模版类和工作流实例类。 较佳的,所述的工作流引擎类对工作流总体控制,用以定义、查询工作流的模版信
息,创建新的工作流实例、执行各项查询。 较佳的,所述的工作流模版类代表一个定义好的工作流程,用以查询模版定义中 的每一环节信息,流程顺序,分支条件信息和时限信息。 对于工作流模版类而言,针对每个模版的环节信息还设置有工作流模版环节子 类,其作为工作流模版的类成员,所述的工作流模版环节子类通过系列get/set方法取存
环节属性信息,具体的实现则交给后台的实现类去完成。 其中,所述的工作流实例类代表已经创建的工作单,用以查询,当前任务任何环节 的信息,流程顺序、分支条件信息,办理人员、实际时间、时限信息;从而对工作流实现控制。
对于工作流实例类而言,针对每个工作流实例中的每一环节的信息还设置有工作 流活动子类,其作为工作流实例类的类成员,所述的工作流活动子类具有get/set方法取 存环节属性信息,以及提供大量方法对当前活动、当前任务进行控制。 与现有技术比较本发明的有益效果在于,克服了由于底层目标工作流系统的变更 导致的业务层改动,保证在目标工作流系统被替换的情况下,客户端可以在不作任何修改 的情况下正常运行,从而增加了人机界面的通用性。


图1为工作流管理组织W预C制定了工作流管理系统组织结构的参考模型; 图2为本发明用以与不同目标工作流系统进行匹配的方法的流程图; 图3为本发明用以与不同目标工作流系统进行匹配的方法对应的物理结构框具体实施例方式
以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。
本实施例是以应用于电力、自来水行业营销系统为例,我们根据W预C参考模型标 准,使用面向对象技术,定义一组相互联系的接口类,应用系统客户端利用这组标准的接口 类图对目标工作流系统功能进行调用完成工作流程控制相关的服务。 当作为系统支持平台的目标工作流系统被替换时,应用系统客户端仍通过相同的
接口类进行工作流服务调用。这样"标准接口接口类"就好比一个通用的"电脑主板",更换
目标工作流系统就好比更换CPU,只要"一插即用"。这就是本发明的基本思路。 关于这些接口类是针对具体标准工作流系统的实现,我们采用Bridge "桥"模式
封装到一系列独立的实现类中,这些实现类根据实际"目标工作流系统"的不同情况,通过
接口变换、嫁接等方式完成目标"工作流接口类"要求的功能。 请参阅图2所示,其为本发明用以与不同目标工作流系统进行匹配的方法的流程图;所述的本发明用以与不同目标工作流系统进行匹配的方法包括的步骤为 步骤a :将目标工作流系统的调用接口分别与相应的实现类相对应; 步骤b :设置接口类,其与外部的调用命令相对应; 步骤C :将外界的调用命令通过对应的接口类传递对应的实现类; 步骤d:所述的接口类保存实现类的引用,通过所述的实现类引用对应的目标工
作流系统的调用接口实现匹配和控制。 所述的接口类我们可以采用JAVA语言进行编写,其包括工作流引擎类 WfEngine、工作流模版类WfTemplate和工作流实例类WfTask。 其中,所述的工作流引擎类WfEngine是对工作流系统的总体控制,其可以定义、 查询工作流模版信息,创建新的工作流实例,执行各类查询(过程是创建condition类,然 后指定查询条件,接着调用引擎类的不同查询方法最后对查询结果(工作流实例的对象序 列)进行处理。 所述的工作流模版类WfTemplate代表一个已经定义好的工作流程(模版),时限 信息,还可以直接发起新流程(其是通过后台实现的,调用工作流引擎类WfEngine,并将此 类作为参数传入);为了描述工作流模版类WfTemplate中的每个环节的信息,还引入工作 流模版环节子类WfTache,其作为工作流模版类WfTemplate的类成员(实例变量)。工作 流模版环节子类WfTache主要通过系列get/set方法取存环节属性信息,如环节代码、经办 岗位、时限等信息,具体的实现则交给后台的实现类去完成。 所述的工作流实例类WfTask代表已经创建一个的工作单,也就是工作流模版的 实例化。其可以查询当前任务任何环节(活动)的信息、流程顺序、分支条件信息、办理 人员、实际时间以及时限信息,同时通过所述的工作流实例类WfTask可对工作流实现如 下控制废除一个工作流killTask()、领取工作单acc印tTask()、直接跳转(向下传递) goNext ()、选择跳转jumpTo ()以及归档goNext ()等等。 为了工作流实例类WfTask(任务)中的每个环节(活动)的信息,引入工作流实 例环节子类WfActivity,其作为工作流实例类WfTask的类成员(实例变量)。所述的工作 流实例环节子类Wf Activity主要不但有get/set方法取存环节属性信息,如环节代码、经 办岗位以及时限等信息,而且提供大量方法对当前活动、当前任务进行控制(具体的实现 还是由后台的实现类完成的)。 为了屏蔽不同目标工作流系统的差异,还引入了实例状态类WfTaskState、环节状 态类WfActivityState、工作流变量类WfVar等定义类。 为实现通用化的基于工作流系统的查询,本发明还设计了查询条件类 WfQueryCond、查询条件项类WfQueryCondltem、查询主题类WfQueryCondSub ject等类。
请参阅图3所示,其为本发明用以与不同目标工作流系统进行匹配的方法对应的 软件结构框图;其包括人机接口程序3,其用于和相应的界面程序相对应;目标工作流系 统l,其通常其可以是现有的成熟产品,并符合工作流管理联盟给出的工作流定义,具有工 作流调用接口 11 ;还包括最重要的结构是用以与不同目标工作流系统进行匹配结构2,其 包括接口类21和实现类22,其中所述的接口类21和所述的实现类22之间相联系,所述 的实现类22和所述的工作流调度接口 11相结合,对于不同的目标工作流系统1而言仅仅 是对所述的实现类22做相应的改变,并不影响接口类21和人机接口程序3,从而客户端代
5码调用目标工作流系统1服务时具有统一性。保证在客户端不作改变的情况下服务端的目 标工作流系统1可以进行改变。 正如上面所描述的,对于本发明的用以与不同目标工作流系统进行匹配的方法中 接口类和实现类是非常重要的,对于此我们仍以JAVA语言为例来描述上述相应类和子类 的实现,但是其仅是解释,并不是限定作用。 所述标准接口中的工作流引擎类WfEngine具体定义如下
public class WfEngine {public static WfEngine getlnstance ();〃得到工作流引擎的唯一实例,
这是 创建这个类的实例的唯一办法 public WfTemplate getTemplate (String operatorld, String
templateld); 〃读取某个工作流模版 public WfTask newTask(String operatorld, String templateld)//根据
模板初始 化一个全新的工作流任务 public WfTask loadTask(String operatorld, String templateld, String
teskld) // 加载一个已经存在的工作流 public int killTask(String operatorld, String templateld, String
taskld) public int killTask(String operatorld,WfTask task);〃工作流任务作
废 public int deleteTask(String operatorld, String templateld, String
taskld) public int deleteTask(String operatorld, WfTask tesk)〃从数据库彻
底删除一 个工作流任务(只在业务层后台调用) public List getOperatorsForPost (String post) 〃某个岗位的操作员列表 public List getOperatorsForD印t (String d印t)〃某个部门的操作员列表 public List getToDoList (String operatorld,WfQueryCond condition)//
获得当 前操作员待办活动列表,就是说当前任务的当前环节所要求的岗位、部门或指定
人员,与当前操作员匹配。 public List getT0D0ListAl 1 (String operatorld, WfQueryCond
condition)//获 得满足特定条件的所有活动列表,指定操作员必须有查询权限。 public List getSpecialToDoList (String operatorld, String
specialTacheld)
6
public List getSpecialToDoList (String operatorld, String
specialTacheId, WfQfuery Cond condition) 〃返回 〃 位于特定环节的活动"的集合,用于批量处 理, 比如"派工" public List getTasks (WfQueryCond condition) 〃工作任务信息查询 public List getLateActivities (WfQueryCond condition) 〃查询存在超时 的活动 的工作任务,用于查询和考核 public List getLateActivitiesDoing(WfQueryCond condition)//查询办 理中的 环节超时的活动清单,用于任务督办 public List getLateActivitiesNotify(WfQueryCond condition)〃查询艮卩 将超时 的活动清单,用于超时警示 所述标准接口类中的工作流模版类WfTemplate具体定义如下 public class WfTemplate { public List getTaches()〃得到本模板的环节对象(列表) public WfTache loadTache (String tacheld) 〃加载指定的环节,得到环
节对象 public List getSysVars()〃本模板的工作流变量(系统级)列表 public List getlnstanceVars()〃本模板的工作流变量(实例级)列表 public Date getCreateDate () 〃创建时间 public String getCreate0perator()〃仓键人 public String getName () 〃模板名称 public String getTemplateld() public String getVersion () 〃版本( 一个模板ID可对应多个版本,对 某些工 作流系统可能无用) private WfTemplatelmp imp ; } 所述的工作流模版环节子类WfTache具体定义如下 public class WfTache {WfTache (String t卿lateID, String tacheID) public String getTemplateld()〃获取所在流程模版的ID public void setTemplateld(String templateID) public List getNextTache()〃当前环节的后续环节(对象)列表 public List getPrevTache () 〃当前环节的前序环节(对象)列表 public List getJumpableDestTaches()〃当前环节可以跳转到的环节(对
7象) 列表 public boolean isLast ()//是否最后环节 public String getN謙()〃环节名 public void setName(String name) public String getRecvD印t ()//处理部门 public void setRecvD印t (String recvdept) public String getRecvPerson()//特定人员 public void setRecvPerson(String recvPerson) public String getRecvPost ()//处理岗位 public void setRecvPost(String recvPost) public String getTacheId() public void setTacheld(String tacheld) public long getTimeLimit () 〃处理时限 public void setTimeLimit (int timeLimit) private WfTachelmp imp; } 所述标准接口类中的工作流实例类WfTask具体定义如下 public class WfTask {public int acceptTask(String operatorld, WfActivity activity) public int acceptTask (String operatorld, String activityld)//令页取工作
流任务(防止 同岗位的其他人员再处理这个任务) public int goNext (String operatorld, String activityld)//直接向下传 递 public int jumpTo(String operatorld,String activityldsrc, String activitylddes) throws WfExc印tion〃选择瑕鹏传递 public WfActivity loadActivity (String activityld) throws
WfExc印tion//根据 给定的Activityld得到一个Activity实例 public List getAllActivities (WfActivityState state) 〃读取用户指定 的工作流 的所有节点,只是为了呈现用,不考虑数据陈旧和缓冲. public List getCurrentActivities () 〃获取当前的活动对象。由于可能存 在多个 当前环节,因此返回list public List getLateActivities(String operatorld, WfActivityState
state) 〃任务 超时的活动列表
public WfActivity getAcc印tedActivity () 〃操作员已经领取的活动(必 定是 当前活动) public boolean isAcc印ted(String activitild)〃该任务的指定活云力是
否已经被 领取 public boolean isAcc印ted()〃该任务的当前活动是否已经领取 public int setVar(Object varValue)〃设置工作流变量的值 public String getCreator () 〃当前任务的创建者,注意不是当前环节的
处理 人员 public void setCreator(String operatorld) public Date getRegDate () 〃登记日期 public void setRegDate(Date regDate) public Date getFinishDate () 〃完成日期 public void setFinishDate(Date finishDate) public WfTaskState getState () 〃当前状态(任务总体的,不是当前活动 的) public void setState(WfTaskState state) public String getTaskId() public String getT卿lateld()〃此任务对应的模板的Id int kill ()〃结束一个工作流或者说工作单作废 int delete ()〃删除一条工作流。} 所述的工作流活动(代表工作流实例的在各环节的办理内容)子类WfActivity
各公有方法具体定义如下 public class WfActivity { public WfTache getTache()〃返回此节点对应的的Tache对象 public WfTask getTask() 〃对应的Task对象 public List getNextActvity ()〃本活动的后继活动( public List getPrevActvity ()〃本活云力的前序活云力 public boolean isLast () 〃当前活动是否是流程的最后环节 public boolean isCurrent()〃当前活动是否当前环节 public boolean isDone () 〃当前活动是否已经完成 public boolean isLate () 〃当前活动是否已经超时 public boolean isAcc印ted ()//是当前环节,而且已纟5令页用该工作单 public int assignWork(int nextTacheId, String operld)//派工特殊业
务_指定下一 环节操作员Id public int getPassNo()〃办理次数,就是说,这个环节办理过几次了
public boolean isPassbyAllowed()〃是否同意本环节完成 public WfActivityState getActivityState () 〃当前活动的状态 public String getFromPerson()〃上一环节的处理人员Id public Date getReachDate () 〃到达时间(可能没有接受,也可能是接受
时间, 和工作流实现相关) public void setReachDate(Date reachDate) public Date getAcc印tDate () 〃接受时间 public void setAcc印tDate (Date acc印tDate) public Date getCommitDate () 〃当前活动的提交时间(办理完成后,向下 传 递的时间) public void setCommitDate(Date date) public String getRecvD印t () 〃模板规定的处理部门 public void setRecvD印t (String recvd印t) public String getRecvPerson () 〃模板规定的处理人员(此时会忽略指定 的部 门和岗位) public String getRecvPost () 〃模板规定的处理岗位 public String getTaskId() public String getActivityld() public void setActivityld(String activityld) public String getTacheld()〃环节Id( public void setTacheld(String tacheld) public String getTemplateld() public int getTimeLimit () 〃规定处理时限 public String getDealMsg()〃本环节办理意见 public void setDealMsg(String msg)} 另外上述标准接口类中还包含有相应的辅助类,如工作流状态封装类
Wf TaskState 、活动状态类Wf Act i vi tyState 、工作流变量类Wf Var 、工作流查询条件类 WfQueryCond和查询条件单项封装类WfQueryCondltem等,其中, 所述的工作流状态封装类Wf TaskState具体定义如下 public interface WfTaskState {public static finalint RUNNING = 1 ; public static final int STOPPED = 2 ; public static finalint KILLED = 3 ;〃两个工作流状态是否相等,相 等返回 true不相等,返回false。 boolean equals (WfTaskState state);〃工作流状态是否等于规定的某
100195:
0196:
0197:
0198]
0199:
0200]
0201: false。
0202]
个状态, 0203] 0204] 0205] 0206: 0207: 0208] 0209: 0210] 0211: 0212]
0225] 0226] 0227] 0228]
题信息
态,相等返回true不相等,返回false。 boolean equals(int state) WfActivityState各公有方法具体定义如下
public interface WfActivityState { public static finalint DOING = 1 ; public static final int DONE = 2 ;
int getState();〃两个活动状态是否相等,相等返回true不相等,返回
boolean equals (WfActivityState state);〃该状态是否等于规定的某
相等返回true不相等,返回false。 boolean equals(int state) 所述的工作流变量类WfVar具体定义如下 public class WfVar { public String getName()
public void setName(String name) public String getValue() public void setValue(String value) public boolean isSys Var ()〃是否系统级别变量} 所述的工作流查询条件封装类WfQueryCondltem的具体定义如下publicclass WfQueryCondltem
{ publicstaticfinalint REL_EQ = 1 ;
publicstaticfinalintREL—NE = 2 ;publicstaticfinalintREL—LT = 3 ;publicstaticfinalintREL—GT = 4 ;publicstaticfinalintREL—LE = 5 ;publicstaticfinalintREL—GE = 6 ;publicstaticfinalintREL_LIKE = 9 ;publicstaticfinalintLOGIC—AND = 1 ;publicstaticfinalintL0GIC_0R = 2 ;publicstaticfinalintL0GIC—X0R = 3 ;publicstaticfinalint LOGIC—NONE = 0
public WfQueryCondltem(int logic,String lb,String subj,int rel, Object val, String rb)〃构造函数
public static String[] getAllSubjects () 〃得到所有查询主题 public static WfQueryCondSub ject [] getAllSub j Info ()//获取所有主
的列表
publicstatic boolean isSubject (String string)//判断给定字符串
是不是一-个查询主题publicstatic int getSubjectDataType (String key)〃查询给定主题
的数据类型publicString getSubject()〃条件代码可以是某些代码标识的信息,
可以是状态publicint getRelation()〃关系算符publicObject getValue () 〃运算符右值publicString getLeftBracket () 〃左括号publicString getRightBracket () 〃右括号publicint getlxigical () //逻辑关系public void setValue(0bj ect value)
public void setLeftBracket (String leftBracket)
public void setLogical(int logical)
public void setRelation(int relation)
public void setRightBracket(String rightBracket)
public void setSubject (String subject)
public int getLogical()〃根据流程可以办理的人员
public static final String SUBJ_0PRTR_CAND0 = 〃 cur0perator〃 ;〃工作流状态public static final String SUBJ—TASK—STATE = 〃 taskState〃 ;〃工作单public static final String SUBJ—TASK—ID =〃 taskld〃 ;〃登记日期
public static final String SUBJ_DATE_REG =〃 regDate〃 ;〃结束日期public static final String SUBJ_DATE_FINISH =〃 finishDate〃 ;〃模板IDpublic static final String SUBJ_TEMPLATE_ID = 〃 t卿lateld〃 ;〃模板名称public static final String SUBJ_TEMPLATE_NAME = 〃 t卿lateName〃 ;
〃环节状态 ——〃 OP十pub 1ic static final String SUBJ_ACTIVITY_STATE
— act
ivitybtate ; 〃活动ID号 public static final String SUBJ—ACTIVITY—ID =〃 activityld" ;//
12环节编号
称 理时


员〃


public static final String SUBJ_TACHE_ID public static final String SUBJ_TACHE_NAME
public static final String SUBJ_TME_1JMIT
tacheld";〃环节名 'tacheName" ;//办
'timeLimit" ;//岗
public static final String SUBJ_P0ST = 〃 postCode〃 ;〃部门 public static final String SUBJ_DEPT = 〃 d印artment〃 ;〃指定的人
这个暂时不支持,数据库结构中没有
protected staticfinal String SUBJ_0PRTR_SH0ULD =〃 shouldOperator" 〃/
标准环节代码
public static final String SUBJ_STD_TACHE =〃 stdTacheCode〃

public static final String SUBJ_0PRTR_DEAL = 〃 dealPerson" public static final String SUBJ_TME_REACH = 〃 timeReach" public static final String SUBJ_TME_DEAL = 〃 timeDeal〃 ; public static final String SUBJ_TME_C0MMIT = 〃 timeCommit'
〃办
〃到 〃办 提交
理人

达时间
理时间
时间
前环



} 所述的查询条件类WfQueryCond代表查询条件的组合(真正用于查询的联合条
件),其具体定义如下 public class WfQueryCond {〃此条件对象,限定只访问当前环节正在处理的工作环节 public boolean isIncludeDoingOnly()〃设置"是否限定只访问当前环节
正在 处理的工作环节"tparam isIncludeDoingOnly public void setlncludeDoingOnly(boolean isIncludeDoingOnly)//条件列 表,返
节办理次数
public static final String SUBJ—PASS—N0 = 〃 passNo〃 ;〃超时天数 public static final String SUBJ_DELAY =〃 delayDays〃 ;
13
回引用(对此引用可读可写),类型必须是WfQueryCondltem *@return条件列表 public List getltems()) 在具体实现过程中可以使用桥模式来实现,例如对WfTask类的goNext ()方法,是 这样实现的 public class WfTask {〃1在构造函数中,动态生成实现类的实例(根据系统初始化配置) WfTask(String operatorld, String templateld, String taskld) { imp = Wf ImplFactory. getlnstance (). newTasklmp (this, operatorld, t卿lateld, taskld); this. setTemplateld(templateld); this. setTaskld(taskld) ;}〃2真正的调用传递给实现类 public int goNext(String operatorld, String activityld)throws
WfExc印tion, WfExc印tion {return imp. goNext (operatorld, activityld) ;} 〃接口类保存实现类的弓l 用,由于实现类有标准接口,因此在更换实现类实例时,由具体的实现类去完 成任务 private WfTasklmp imp ;} 我们再看看实现类的情况,首先定义虚父类WfTasklmp标准接口 ,用于和和标准 的接口类相呼应,把实现的差异部分封装在一系列方法中




public abstract class WfTasklmp
public abstract int acc印tTask (String operatorld, String
public abstract int goNext(String operatorld,String activityld);
针对具体的工作流系统我们设计的实现类来实现以上接口 public class FSWfTasklmp extends WfTasklmp
{public FSWfTasklmp (WfTask taskObj, String operatorld, String templateld)
..... public int goNext(String operatorld,String activityld) { 〃真正的实现代码在这里,对不同的目标工作流系统,这里当然是不同的 WfActivity activity ; try { activity =........ 现在例如使用系统内嵌式默认工作流系统,我们只要为这个目标工作流系统制作 对应的实现类即可(这个工作实际上对很多目标工作流系统已经完成。而且这个改动,只 是限制在用以与不同目标工作流系统进行匹配范围编码,不会影响调用接口类的任何程
14序) } } } 现在,如果目标工作流系统改为IBM的Message-Q工作流系统,则对应实现类 public class IB丽fTaskImp extends WfTasklmp {____ public int goNext(String operatorld,String activityld) { 〃同样的接口 ,但要针对IBM这一 目标工作流系统实现一遍。这里只要
调 用IBM目标工作流系统的API完成相应控制就可以了 。 } } 以上所述仅为本发明的较佳实施例,对本发明而言仅仅是说明性的,而非限制性 的。本专业技术人员理解,在本发明权利要求所限定的精神和范围内可对其进行许多改变, 修改,甚至等效,但都将落入本发明的保护范围内。
权利要求
一种用以与不同目标工作流系统进行匹配的方法,其特征在于,其包括将目标工作流系统的调用接口分别与相应的实现类相对应;设置接口类,其与外部的调用命令相对应;将外界的调用命令通过对应的接口类传递对应的实现类;所述的接口类保存实现类的引用,通过所述的实现类引用对应的目标工作流系统的调用接口实现匹配和控制。
2. 根据权利要求l所述的用以与不同目标工作流系统进行匹配的方法,其特征在于, 所述的接口类包括工作流引擎类、工作流模版类和工作流实例类。
3. 根据权利要求2所述的用以与不同目标工作流系统进行匹配的方法,其特征在于, 所述的工作流引擎类对工作流总体控制,用以定义、查询工作流的模版信息,创建新的工作 流实例、执行各项查询和控制。
4. 根据权利要求2所述的用以与不同目标工作流系统进行匹配的方法,其特征在于, 所述的工作流模版类代表一个定义好的工作流程,用以查询模版定义中的每一环节信息, 流程顺序,分支条件信息和时限信息,具体的实现则交给后台的实现类去完成。
5. 根据权利要求4所述的用以与不同目标工作流系统进行匹配的方法,其特征在于, 针对每个模版的环节信息还设置有工作流模版环节子类,其作为工作流模版的类成员,所 述的工作流模版环节子类通过系列get/set方法取存环节属性信息,具体的实现则交给后 台的实现类去完成。
6. 根据权利要求2所述的用以与不同目标工作流系统进行匹配的方法,其特征在于, 所述的工作流实例类代表已经创建的工作单,可以获得当前任务任何环节的信息,流程顺 序、分支条件信息,办理人员、实际时间、超时信息;从而实现对工作流的查询与控制。
7. 根据权利要求6所述的用以与不同目标工作流系统进行匹配的方法,其特征在于, 针对每个工作流实例中的每一环节的信息还设置有工作流实例活动子类,其作为工作流实 例类的类成员,所述的工作流实例活动子类具有get/set方法取存环节属性信息,以及提 供大量方法对当前活动、当前任务进行控制。
全文摘要
本发明为一种用以与不同目标工作流系统进行匹配的方法,其包括将目标工作流系统的调用接口分别与相应的实现类相对应;设置接口类,其与外部的调用命令相对应;将外界的调用命令通过对应的接口类传递对应的实现类;所述的接口类保存实现类的引用,通过所述的实现类引用对应的目标工作流系统的调用接口实现匹配和控制。
文档编号G06Q10/00GK101770610SQ200810247408
公开日2010年7月7日 申请日期2008年12月31日 优先权日2008年12月31日
发明者丁金刚, 傅新奇, 姜维权, 孟宪成, 左子凯, 张林先, 王春杰, 童伟进 申请人:北京华电方胜软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1