NC外部统一流程管理平台方案
1.前言
NC是用友面向集团企业的世界级高端管理软件,目前NC基于8000家集团企业客户的实力,使其在同类产品市场占有率已经达到亚太第一,面向大型企业集团和成长中的集团企业的信息化需求,用友NC6的产品定位于大型企业管理与电子商务平台。他综合利用最新的互联网技术、云计算技术、移动应用技术等,通过构建大企业私有云来全面满足集团企业管理、全产业链管控和电子商务运营,为集团企业提供了一个全新的支持合规化应用需求和创新需求,以及个性化配置、集成、实施、运维、管理一体化的大型企业管理与电子商务平台,不断帮助集团企业创新管理模式,引领商业变革,实现长期发展目标。
该产品的特点总结为:多级集团管控、全产业链协同、动态企业建模、大企业云平台。
尽管NC在进行企业产业链协同上的管理存在比较不错的表现,但在其NC5、NC6产品在全产业链上的协同还存在一些不足,表现在:
- NC内部的流程进行外部数据交互需要二次开发
- 流程引擎必须用NC的内部流程引擎,非BPMN2的标准,存在一些描述流程业务的不足
- NC待办必须在NC系统内完成
- 移动端上的待办需要单独二次开发
- 中国式的流程支持比较困难(如退回、分发、跳转、催办、定时跳过、版本变更、表单权限控制等)
- 全集团的流程共享(多子公司)共用。
- 流程审批中的不同人员的计算(根据业务线条、表单计算线条等)
- 跨系统的业务数据审批变得比较困难
集团公司流程业务审批都存在以下问题,特别已经使用了NC业务系统的情况下:
NC的客户群都希望定义一套集团内的统一流程,从而真正上实现集团业务单据的管理在NC上管理及归档统计,而其审批过程即交由企业的统一流程审批平台上进行审批,真正实现业务管理、流程管理上的分离,从而大大提成企业的运作效率。
2.NC业务单据使用流程的场景
业务条线 | 具体场景 | |
人事行政 | 会议管理 | 会议室申请 |
调薪申请 | 员工调薪申请 | |
资金财务 | 费用报销 | 员工费用报销 |
资产购置 | 固定资产的采购 | |
合同管理 | 合同审批 | 合同签订的审批流程 |
合同修订 | 合同变更的审批流程 | |
付款管理 | 付款申请 | 合同付款流程 |
其他处理 | 政府保证金 | 政府保证金支付流程 |
以具体的某一类应用为例,其不同的应用场景如下所示:
业务系统 | 具体场景 | 流程模型 |
合同管理系统 | 付款申请流程 | 软装工程保修质保金 |
工程质保金支付审批流程 | ||
工程合同(建筑工程总包合同) | ||
专业分包合同(房产发包) | ||
勘察工程合同、软装工程承揽协议 | ||
建设工程委托监理合同 | ||
信报箱制作安装工程合同 | ||
营销合同(制作类) | ||
机电工程设计合同、消防设计合同、照明设计合同、供电设计合同、弱电设计合同等 | ||
公关类合同 | ||
报批报建类合同(含其他报建) | ||
机电类报建、检测合同 | ||
检测类合同 | ||
营销合同(销售代理、分销合同) |
3.BPM端的审批表单展示
NC存在各种业务单据,如:工程合同单据、费用申请合同。录入完成后,这些单据需要在集团内各部门相关负责人进行审批,可以PC端审批、手机端审批。一般来说,在NC或其他业务系统中进行单据录入时,会有比较多的数据,而不同业务的审批人员不需要过多关注一些无用的信息,而只需要关心其核心的业务信息即可。如成本工程师在审批工程合同时,就主要关心这个合同项的明细部分是否合符项目的需求及成本要求。其他信息不过多关注。
因此BPM端的表单信息与NC端的表单信息展示就会有不同的方式,目前我们提供的方案可以在NC上开发一个补丁,通过在NC上的表单展示模板,通过勾选需要在审批时需要展示的字段,形成录单启动流程时需要的JSON数据串,其推送到BPM端 ,BPM端根据配置的模板接收这些JSON数据,并且展示给对应的审批人员进行查看即可:
其展示的原理如下:
BPM接收的NC表单JSON格式如下:
表单的模板
表单的权限数据的配置
最终生成以下审批界面:
同样,在BPM平台上通过配置手机表单,可生成手机表单上的审批界面,其解析原理跟PC表单一样,用户只需要配置对应的手机模板即可,如下图所示:
【说明】
为了实现审批的更清楚处理,一般来说,把审批明细的关键信息以附件的形式
4.BPM与NC数据交互
我们目标是把NC作为业务单据的处理中心,把JSAAS作为BPM的流程审批中心,他们之间则通过Spring MVC Restful Web Service(JSON)实现数据交互。
注意:NC单据的很多数据及其档案类型(数据字典)数据比较多,一般是放在NC端。BPM端不需要进行业务数据存储,但在审批时,需要把关键的业务数据显示给审批人员,以支持其进行业务的决策。
接口开发
BPM提供的接口有:
- 接收NC的数据JSON并且启动业务流程实例
- 更新审批表单的JSON数据
- 作废流程实例的接口
BPM回调NC的接口有:
- 流程启动时回调NC接口锁定单据状态为提交态
- 流程驳回发起人时回调NC的接口把单据状态改为自由态
- 流程审批通过结束时调用NC的接口实现单据的状态改为通过。
如何在BPM中配置调用NC的接口,BPM中提供了不同的流程事件配置,可以调用外部的接口:
事件触发配置
BPM提供多种事件的脚本入口 :
- 流程启动事件
- 流程完成事件
- 流程取消事件
- 流程任务创建事件
- 流程任务完成事件
- 任务人员指派事件
通过不同的事件,我们可以在流程审批的过程中,可以调用外部或其他系统的事件,并且同时推送流程审批过程上的相关数据。
一般来说,我们都在这相应的位置上配置好相对的脚本库,以实现对应的外部功能调用,如:
BPM会提供一些常用的上下文变量环境,以实现在脚本环境中可以拿到所有的审批表单的数据,同时通过Http/JMS/MAIL/FTP/JDBC等多种协议手段实现数据推送。这里可以扩展更多的可视化配置,通过Groovy脚本实现强大的数据交互功能,但注意的是,这里有事务的处理问题,一般来说是流程会根据调用脚本抛出的异常进行回滚。
5.组织架构及单点登录
要实现单点登录,首先需要统一平台的用户账号,甚至其组织架构,JSAAS平台提供两种方案:
BPM的用户组织架构实现接口,如大部分企业其内部的启用均是来自集团内的统一用户中心进行用户读取(如从AD域读取)
用户组织架构通过BPM平台上来进行设置,总体上来说,平台内的组织架构分为三种实体类型,用户、用户组、关系。通过它来描述不同的用户组织架构。
组织架构管理
用户关系管理(如汇报)
通过这种灵活的配置关系,比较容易实现审批人员的配置。
6.统一审批门户
当实现了单点登录后,可以把集团内部的所有审批事项放置BPM中心来完成,这块就是流程统一审批了。可以把平台所有事项放置审批门户上,当用户登录时,马上可以看到自己的待办事项,从而进行审批即可。审批门户一般都是与企业内部的EIP一般是同一套东西,只是在上面增加一个审批入口而已,如:
7.审批附件
附件的上传及展示
在BPM审批过程中,一些NC单据审批需要依赖大量的线下纸质材料的扫描件,以辅助审批人员进行单据核审时,可以有效进行审核,这时就需要在审批过程中上传附件及展示附件。JSAAS的表单设计器中可提供附件的控件,用户只需要在需要上传附件的单据中插件该控件即可。支持Office文档、图片、PDF文件类型,在审批过程上,上传如下所示:
在审批展示时,其展示如下
附件的存储
关于审批附件的存储,需要根据平台的用户的审批量,从而决定是否采用单独的文件服务器来进行存储,对于一般的审批量,如每月的文件附件量小于1G的,可以与WEB服务器共用,对于量大的,可以使用单独的文件服务器。而NC中若需要使用查看NC单据的图片,方案有:
- NC应用作改造,把附件存放在统一的文件服务器上
- 提交业务表单时,把其附件的数据以文件路径及名称与业务数据一起传过来
- BPM直接获得路径即可以读取该附件
另一方案,NC不存附件,当查看审批及附件依据时,则通过BPM对应的审批单据来查看,其方案如下所示:
- BPM与NC附件是同一份,数据一致性好
- BPM不需要任二次开发,提供二次开发接口
- NC只需要维护审批表单ID
承接BPM项目及各种项目,更多了解,加QQ1361783.75