K2.net工作流引擎在智能设备上的应用
最近有很多客户和朋友希望能在智能设备(Mobile Devices)上进行协同办公,以充分发挥智能设备的最大功用。因为是协同,所以自然而然想到这样的应用其后台必须要有一个工作流引擎进行任务驱动,所以选择K2.net进行了一次尝试。为了便于识别,给这个东东起个名字,暂且叫做“移动办公套件”。
移动办公套件的一些考虑:
l 模块划分:
1. 客户端和服务器端:移动办公套件需要有客户端和服务器端,客户端即安装在智能设备中的应用,而服务器端是指客户端与其进行交互的应用;
2. 客户端:考虑到智能设备的运行速度和存储空间,在设计时尽可能将更多的计算放在服务器端执行,而智能设备主要以展示计算结果为主;
3. 服务器端:主要进行数据计算,并提供移动办公套件的系统管理功能;
l 平台及工具:
1. 工作流引擎:K2.net 2003 SP2a
2. 开发平台:Visual Studio 2005
3. 辅助工具:ActiveSync 4.1
4. 设备仿真器管理器:Device Manager 8.0
l 设计思路:
1. 客户端需要具备常规的办公功能,设置3个功能区域:任务管理,系统设定以及系统帮助;这3各功能区域已菜单方式进行组织,分别为:
u 任务
i. 新建:用户在此处可以发起被授权的流程和任务,如进行每日工作汇报、行动日程安排、费用报销、请假申请,等等;
ii. 待办:此处为当前登录用户的待办任务列表,用户可以执行这些待办事项;
iii. 进行中:显示当前登录用户发起的并且还未被审批完毕的流程;
iv. 已完成:显示当前登录用户发起的并且已经被审批完毕的流程;
u 工具
i. 选项:进行服务器连接等参数的配置;
ii. 代理:设定任务代理,即Out of Office功能;
u 帮助
i. 帮助:提供关于移动办公套件的帮助文档,指导用户如何使用该套件;
ii. 关于:关于移动办公套件的一些信息;
2. 考虑到在移动设备上部署应用不太方便,因此对于上面的功能模块,客户端尽可能采取C/S窗体+WebBrowser浏览器的方式进行设计,这样一来,如果未来需要更改界面只需更改服务器端的页面即可。经过权衡,除“选项”和“关于”是纯粹的C/S窗体外,其余窗体均设计为C/S窗体+WebBrowser浏览器;
3. 设计服务器端的Web页面时,使用Mobile WebForm;
4. 对于“新建”模块,需要显示当前登录用户被授权发起的流程,而K2.net 2003并没有提供这样现成功能,所以需要些代码;好在曾经在一个项目中设计过一个显示用户可以发起的流程的Web Part(如下图),把核心代码复制过来就Ok了;
5. 对于“进行中”和“已完成”,K2.net也缺少直接的API接口,所以无法直接获取需要的信息,因此只能直接读取数据库;
6. 还有一点是,K2.net 2003 无法查看进行中的或者已经完成的任务的Web界面,这是一个比较大的问题;所以在设计时,首先在服务器端设计了一个settings.aspx页面,让系统管理员对流程的发起页面和查看页面进行管理,如下图:
经过几天的设计,最终交付成果。现在看看效果吧!