摘 要: 随着计算机和互联网的发展,信息化办公已经普及,在流程较长或角色较多的业务流程系统中,催办功能就变的尤为重要。催办即当某一用户在截止日期前仍未完成某一工作时,系统自动发送消息提醒的功能。本文提出了多元化催办模型,描述了催办的算法,并给出了催办实现的三种方式:系统短消息、电子邮件和短信。
关键词: 多元化催办;系统短消息;电子邮件;短信
0 引言
在业务流程系统中,当业务流程较长或者涉及角色较多时,难免会因某一用户工作拖延,导致其他用户工作延期,催办就是为了解决这一问题而提出的。当某一用户在截止日期前仍未完成工作时,若系统可以自动发送消息提醒用户,使得任务及时完成,流程得以继续,那么工作效率将会得到很大的提升[1]。
本文建立了多元化催办模型,描述了催办算法,并给出了催办实现的三种方式。多元化催办的应用可有效提高工作效率,加速并保证业务流程的顺利流转。
1 多元化催办模型
1.1 多元化催办的定义
在业务流程中,为了能够根据活动的紧急程度发送不同形式的催办提醒,需要定义不同的催办类型。多元化催办中的多元化含义之一便是催办类型的多元化,即催办类型是可定制的。
在定义催办类型时,可以指定该催办类型的催办次数、每次催办提醒的时间间隔以及催办的方式。图1给出了催办类型的定义示例,共定义了三种催办类型。
本文采用XML来描述催办类型,XML文档简单、可读性高并且具有强大的数据描述能力。当催办模型发生变化时,通过修改XML文件,无需改动程序代码,即可实现。
1.2 催办模型
本文提出了一种融入了多元化催办的业务流程管理模型,增加了各活动之间紧急程度的描述。该模型中的符号部分参考了业务流程建模标记法。模型中的主要元素有事件、活动、网关以及连接流[2]。表1给出了模型元素的名称、符号表示等相关描述。
催办流部分关键模型元素的说明:
(1)网关:对于流程分散的情况,当活动抵达排他型网关时,将选择某一分支执行;当活动抵达并行网关时,将并行执行后续所有分支。对于流程聚合的情况,当任一活动抵达排他型网关时,即执行流出分支,仅当所有活动抵达并行网关时,才执行流出分支[3]。
(2)连接流:顺序流仅表示两个活动执行的先后顺序,而催办流表明了活动的紧急程度。
多元化催办的模型示例如图2所示,同样采用XML对模型进行描述。
2 催办算法
在业务流程中,某一活动的完成将触发两个事件:创建针对下一活动的新的催办、终止前一个活动的催办。
2.1 创建催办算法
当业务流程中的某一活动完成后,需要创建新的催办提醒,若后续活动未在规定的时间范围内完成,便可提醒其相关负责人。
业务流程中某个活动的所有后续分支情况共有5种类型:无分支、排他型聚合分支、并行聚合分支、排他型分散分支、并行分散分支,如图3所示。
活动的后续分支类型不同,其创建的相应催办也不同。在接下来的分析过程中,Activity1将简单记为A1,以此类推。
(1)无分支类型,后续活动只有一个,如图3中①所示,将产生StartActivity=A1,EndActivity=A2的一条催办。
(2)排他型聚合分支,后续活动有一个,如图3中②所示,将产生StartActivity=A1,EndActivity=A3的一条催办。
(3)并行聚合分支,后续活动只有一个,如图中类型③所示,将产生StartActivity=A1,EndActivity=A3的一条催办。
(4)排他型分散分支,后续有多个活动,这些活动中的某一个将在下一步执行,但由于所有的活动均有被执行的可能性,所以需要创建所有后续分支活动的催办。如图3中类型④所示,将产生StartActivity=A1,EndActivity=A2和StartActivity=A1,EndActivity=A3的两条催办。
(5)并行分散分支,后续有多个活动,由于所有的活动都将在下一步并行执行,所以需要创建所有后续分支活动的催办。如图3中类型⑤所示,将产生StartActivity=A1,EndActivity=A2和StartActivity=A1,EndActivity=A3的两条催办。
创建催办提醒的算法过程如图4所示。
2.2 终止催办算法
当业务流程中的某一活动完成后,除了创建新的催办提醒外,还需要终止前一个活动完成时针对该活动创建的催办提醒。
某个活动的先前分支情况同样是5种类型,如图5所示。
活动的先前分支类型不同,其需要终止的催办也不同。
(1)无分支类型,只终止一条催办。如图5中①所示,将终止StartActivity=A1,EndActivity=A2的一条催办。
(2)排他型聚合分支,终止所有分支中被执行的那个分支所产生的催办。如图5中②所示,将终止StartActivity=A1,EndActivity=A3或StartActivity=A2,EndActivity=A3中某一条催办。
(3)并行聚合分支,终止所有分支产生的催办。如图5中③所示,将终止StartActivity=A1,EndActivity=A3和StartActivity=A2,EndActivity=A3两条催办。
(4)排他型分散分支,前一个活动产生了多个催办,任何一个分支的活动完成都将终止所有的催办。如图5中④所示,将终止StartActivity=A1,EndActivity=A2和StartActivity=A1,EndActivity=A3两条催办。
(5)并行分散分支,只终止一条催办。如图5中⑤所示,将终止StartActivity=A1,EndActivity=A2的一条催办。
终止催办提醒的算法过程如图6所示。
3 多元化催办的实现
多元化催办中的多元化指的是催办类型的多元化以及催办方式的多元化。本文中主要介绍多元化催办的三种实现方式:系统短消息、电子邮件和短信。
3.1 关键技术
3.1.1 Windows服务
Windows服务是一种可长期运行在操作系统后台的应用程序,适合在服务器上使用,可以在操作系统启动时自动开始运行,它没有任何用户界面,也不会产生可视的输出[4]。Windows服务可以在没有用户登录的情况下运行,在后台进行某些操作[5]。
3.1.2 Timer定时器
Timer是.NET Framework下基于服务器的计时器(System.Timers.Timer),它能够指定在应用程序中引发Elapsed事件的周期性间隔,通过处理这个事件来提供常规处理,也就是在应用程序中生成定期事件[6]。
3.2 三种实现方式
3.2.1 系统短消息
系统短消息是用户在业务流程管理系统中看到的催办提醒,可通过将消息列表置于首页等方式方便地提醒用户待办事项。
系统短消息的实现比较简单,通过查询数据库催办表中当前用户的催办消息,将符合条件的信息显示于消息列表中即可。实现效果如图7所示。
3.2.2 电子邮件
以电子邮件的形式将催办提醒发送至用户邮箱,使得用户在不登录系统的情况下,通过邮件即可掌握任务进度情况。
本文中实现电子邮件形式的催办功能使用了Jmail组件,它是免费组件,从互联网上下载后只需注册jmail.dll文件即可被调用[7]。实现效果如图8所示。
3.2.3 短信
本文中采用网关短信实现短信方式的催办,通过第三方短信平台完成短信的发送功能。实现效果如图9所示。
网关短信通过调用运营商提供的短信服务接口实现,不需要硬件支持[8]。网关短信抵达率高,发送速度快,且方便监管。
3.3 多元化催办的实现过程
3.3.1 创建催办提醒
从催办消息的产生到最终用户收到催办提醒,多元化催办的创建过程如下:
(1)某一活动a1完成,需要创建针对下一活动a2的催办,即StartActivity=a1,EndActivity=a2的催办消息提醒,此时催办的状态为New。
(2)利用Windows服务和定时器Timer实现定时检查催办条目,若有条目的创建时间与当前系统时间的间隔超过了催办类型中定义的时间间隔,即在规定的时间范围内下一活动仍未完成,判断催办次数是否达到了催办类型中定义的次数,若次数已达到则把催办的状态直接置为RemindFailed,否则将催办的状态置为Reminded,并执行下一步操作。
(3)根据催办类型中定义的实现方式,以某种或多种方式发送催办消息提醒,并将催办次数记录增加一次,若已达到催办类型中定义的催办次数,则将催办的状态置为RemindCompleted。
(4)最终用户以某种既定的形式收到催办消息提醒,加快工作进度,达到催办目的。
图10所示为创建催办提醒过程。
3.3.2 终止催办提醒
多元化催办的终止过程如下:
(1)某一活动a2完成,需要终止上一活动a1完成时所创建的催办提醒。
(2)找到StartActivity=a1,EndActivity=a2的催办消息提醒,改变其状态:若活动a2完成时尚未进行过催办提醒,则将催办的状态置为FinishedBeforeRemind,否则将催办的状态置为FinishedAfterRemind。
4 总结
本文提出了一种多元化催办的模型,描述了催办的算法,并给出了催办实现的三种方式:系统短消息、电子邮件和短信。三种方式的有效结合,可以确保用户收到准确、及时、恰当的提醒。本文中采用XML来描述催办模型和催办类型的定义,在需求变化时,通过修改XML文件即可方便实现。
在接下来的工作中,将继续完善多元化催办模型及算法,增加新的催办方式,并研究可视化的建模工具。
参考文献
[1] 吴暴.基于Web的短信平台设计与实现[D].呼和浩特:内蒙古大学,2014.
[2] 赵静.规范化的BPMN设计方法与工具的研究[D].大连:大连海事大学,2011.
[3] 魏明,夏永霖,魏峻.BPMN到BPEL2.0的模型转换方法[J].计算机应用研究,2008,25(11):63-66.
[4] 杨玫,刘瑜,赵秀丽.基于.NET的Windows服务开发技术研究[J].信息技术,2014(9):205-208.
[5] 曹光忠.基于Windows服务的Web服务安全构件的设计[J].网络安全技术与应用,2009(5):21-23.
[6] 马建民,刘晓艳.校园网手机短信平台的设计和应用[J].南京广播电视大学学报,2012(2):92-94.
[7] 杨晓征,郭士焱.基于Jmail和139信箱的手机提醒功能[J].硅谷,2008(24):80-81.
[8] 张黎.基于短信的GSM网络自动监测和控制系统[D].无锡:江南大学,2009.