待办推送解决方案
问题提出描述:
目前EPMS系统有很多综合类待办,只能在EPMS系统的工作台的综合类待办那里可以处理,但是实际情况是这些综合类待办一般是是移动各地市的老总使用,他们不可能天天登陆EPMS,但是他们一般都会登陆Portal,所以希望EPMS系统的综合类待办能够推送到移动的Portal上。
实现方案:
经过讨论,发现公司王臣项目组的统一组件平台有待办推送等功能。所以实现该功能将使用王臣的待办推送的服务。主要调用该服务的两个方法:
1, 发送待办
SendPortalToDo(string nodeGUID, string pwd, ToPortal pToDo, string dateSend, int setPriority, int sendPriority, string businessID)
参数名 |
参数类型 |
描述 |
nodeGUID |
string(字符串) |
调用节点的ID,用于区分不同调用者 |
pwd |
string(字符串) |
节点ID的密码,在权限目录树上注册时用户自定义的密码 |
sysid |
string(字符串) |
系统标识,由信息反馈表中获得 |
pToDo |
要发送的待办信息实体。点击“这里”查看ToPortal类的详细信息。 |
|
dateSend |
string(字符串) |
发送消息的时间(当为空时表示发送即时消息) |
setPriority |
int(整型) |
设置优先级。1 正常;2 系统设置凌驾于个人设置之上。默认为1 |
sendPriority |
int(整型) |
发送优先级。1 正常;2 高。 默认1 |
businessID |
string(字符串) |
业务标识 |
2, 删除待办
3,public Result RemoveMessages(string nodeGUID, string pwd, string [] businessIds, int msgType)
参数名 |
参数类型 |
描述 |
nodeGUID |
string(字符串) |
调用节点的ID,用于区分不同调用者 |
pwd |
string(字符串) |
节点ID的密码,在权限目录树上注册时用户自定义的密码 |
sysid |
string(字符串) |
系统标识,由信息反馈表中获得 |
businessIds |
string[](字符串数组) |
业务标识数组 |
msgType |
int(整型) |
发送的类型 8:Portal待办;16:Portal待阅 ;24:Portal待办和待阅。 |
问题解决方案一:
需要在EPMS的承载页面WorkFlowBasePage.aspx.cs 添加一些逻辑处理。在工作流提交的时候,执行待办推送的逻辑,同时删除本身待办。另外需要处理EPMS系统中所有系统自动发起流程的地方。同时需要处理一些特殊的情况,如:转发、变更处理人、委托、强制结束等。
问题解决方案二:
不管他工作流是如何流转的,我们在工作流基表(WF_Work_Items)添加标示字段标识那些是已经推送,那些已经完成等,通过Window系统自带的任务计划功能,定时的去轮训这些流程内容,后台去推送和删除待办。
这两种方案的优缺点如下:
第一种方案是实时的,马上能够在protal那里看到效果,缺点是修改地方太多,风险大。而且效率不高。
第二种方案是轮训,可能不能马上看到效果,但是修改地方小,风险小,而且批量的时候效率高。灵活性高,可以扩展性高,但是由于轮训去读取工作流表,可能会影响系统其他模块效率。
综合考虑这两种方案,决定选择第二种。