吴征
【摘 要】本文以某军工企业对于合同管理突破长期以来传统手工管理,转向规范化、制度化、信息化的新的探索为范本,详细论述了合同管理系统的设计思路,及如何应用SOA应用开发平台EOS Studio完成合同管理系统开发的详细过程。
【关键词】EOS;SOA;合同管理
0 引言
随着企业的逐步发展壮大,业务领域的不断拓展,人们对于反应企业经营活动重要载体——合同逐步重视起来,合同管理也就逐渐成为企业管理的一个重要组成领域和研究的集中点。运用信息技术手段,利用现代企业的先进管理思想为企业提供决策、计划、控制与经营绩效评估的全方位、系统化的合同管理平台也就成为企业所日益迫切的需求。某军工企业长期以来一直以传统的手工方式对公司的海量合同进行管理,管理效率低下流程难以监控等诸多问题严重的制约了企业的运营管理,以快速方式开发一套适应企业日常合同起草、流程审批、履行监控等要求的合同管理系统就显得尤为必要和迫切了。
1 EOS概述
1.1 EOS Platform概述
EOS Platform是SOA应用平台,基于JavaEE、Eclipse等开放的技术和平台,采用SOA架构和标准规范,支持在线业务配置化开发,并把平台化扩展技术、构件技术、可视化技术、图形化技术与SCA、SDO等SOA标准技术结合起来,为构造SOA应用提供从设计、开发、调试和部署,到运行、维护、管控和治理的全生命周期支持。
1.2 EOS编程模式
EOS采用的编程模式是:流程+数据+人机交互。
其中流程包括:工作流、页面流、逻辑流。页面流用于描述用户界面元素流转关系的图形化流程,管理页面和页面间的跳转关系,以及页面和页面间共享的数据。逻辑流用于完成后端业务功能,采用图形化的方式将小粒度的运算构件组装成一段业务逻辑。工作流用于完成包含人工和自动的业务活动流程的构件,通过BPS for EOS开发环境来开发的流程管理的图形化描述。
不同类型的流程从逻辑设计上把业务逻辑、业务服务及业务流程松耦合分离开来,按照SCA规范封装、组合,达到业务应用的流程化。
数据包括持久化实体和非持久化尸体,并采用SDO标准来描述这些数据的格式,SDO作为一种数据编程架构和API,它统一了不同数据源类型的数据编程,让开发人员可以从不同的数据源以统一的方式访问和操作数据。
人机交互采用富客户端控件及具体页面来实现。
2 合同管理系统需求分析
在信息化的应用逐渐深入到从设计到生产及企业运营的方方面面,合同管理信息化需求的声音也日显强烈,为进一步规范公司合同管理,防范和控制合同法律风险,完善合同管理制度体系,建立一套从起草到生效,从履约到归档的全生命周期的完整的合同管理系统,实现合同信息化管理,达到对合同的实时监控预警,有效防范和控制合同法律风险,真正实现全过程的、系统性的、动态性的闭环合同管理,满足合同管理事前、事中、事后风险防控需求。
合同的全生命周期管理分为以下几个阶段:合同起草、合同审批、合同执行、文档管理和合同统计。
1)合同起草
提供合同范本库,起草人选择对应的合同范本,填写合同要素,完成合同文本的拟写。合同范本只允许起草人填空,不允许修改固定条款和格式。
2)合同审批
合同文本拟写完成,在企业内部依照相关规定及流程,提交相应的审批流程,流转经业务主管、财务价格审核、法律事务等相关部门,履行必须的审批手续,完成合同审批。
3)合同执行
合同审批结束双方盖章,合同正式生效,进入履约阶段,此阶段合同双方需要按合同约定完成各阶段的合同交付及付款,直到全部完成合同约定内容。其中包括:正常履约和中途发生合同变更、解除或终止等情况,如果发生变更需要以更新后条款对合同进行相同程序的管理。
4)文档管理
合同履行完毕,对合同进行归档,对于已归档的合同需要一个完善的合同文档台帐管理,记录合同相关信息,并且可以查看原始及变更合同、查看审批单等内容。
5)统计分析
对于企业签订的合同按阶段、类别、金额等可以进行统计分析,给企业管理者提供统揽全局,分析决策的参考。
3 合同管理系统的设计与实现
3.1 功能设计
根据以上的需求分析,合同管理系统划分为:合同相对方管理、合同范本管理、合同起草管理、合同审批流程管理、合同履行与风险监控管理、合同台帐管理、合同变更解除终止管理和合同统计分析管理几大功能模块。
1)合同相对方管理
在合同管理系统中建立合同相对方资信管理模块,其中包括相对方的基本信息、信用等级、合作领域、履约评价的管理,通过对合作单位资信的有效管理,在源头上规避合同法律风险的产生。此模块内容为合同起草的必要条件,所有拟写合同的相对方必须从已经登记在册的具有相应资质的相对方中选取,否则无法拟写合同。
2)合同范本管理
以合同范本管理标准化为基础,建立完整的合同范本库管理模块,提供合同范本管理平台。该模块中,将企业常用合同文本以word文档形式固化并上传,减少手工填写部分,同时固化合同固定条款和格式使拟写者不可随意修改固定文本,在简化合同拟写的内容同时约束拟写者的随意性使之标准化,以减少审核人员的工作难度及强度。整个系统中使用的合同均由此功能模块提供范本完成拟写。
3)合同起草管理
合同起草管理模块为合同文本的在线拟写平台。流程是由拟稿人填写必要的合同基本信息,再选择范本进行在线合同拟写,拟写的合同存放于草稿箱,可随时进行编辑修改,直到定稿后提交流程审批。
4)合同审批流程管理
根据公司的业务及合同类型不同,定制了四种类型的流程:审价流程、不审价流程、培训流程及课题流程。合同拟写完成,由拟稿人选择相应的审批流程,根据不同的类型流转于不同业务部门进行审批及提交审批意见,全部完成后提交流程结束,系统自动生成公司统一的合同编号,填写价格审核部门最终审定的合同金额,自动计算依照合同类型和最终核准价格的印花税并记录到合同信息中。同时可以在流程管理的流程历史中随时跟踪合同审批状态及查看当前审批人和审核意见,并在流程结束时,提供合同及审批单打印功能以供相关部门存档。
5)合同履行与风险监控管理
合同管理系统通过合同信息,自动生成合同履约任务,对于合同履行情况进行监督,对于超期履约情况系统生成不同级别的履约报警,为合同履约负责人提供实时的合同风险预警,有效控制因合同履行引发的法律风险。合同履行由合同拟稿人按合同不同阶段的交付及付款情况维护履行信息,到期未履行的亮灯提示。
6)合同台帐管理
合同履行完毕进行合同归档,归档后可以在合同台帐管理中查看和导出合同的全部信息,并且可以查看合同文本(包括原始文件及变更文件)和合同审批单。其中合同信息包括:合同编号、合同名称、经办人、所在部门、对方当事人名称、合同金额、印花税、合同类型、合同签订时间、合同收付款情况、是否存在变更终止解除、等信息、合同交付情况、合同付款情况、合同是否全部履行完毕等信息,并且可以按照不同查询条件查看合同并导出查询结果。
7)合同变更解除终止管理
该模块为合同变更解除终止提供专门管理,首先,列出已生效进入履行阶段的合同,用户可从中选择对其发起变更、解除、终止的申请并拟写相应协议,完成合同补充协议的拟写后提交审批流程,通过审批,合同以变更后的新条款进行履约,在台帐信息中关联原合同。
8)合同统计分析管理
合同管理系统提供针对合同数量、金额、类别、履行情况的内容,对实效、工作量、质量,基于公司维度、部门维度、个人维度的统计分析功能,并进行图形化展示。
时效类统计:范本及非范本类合同审批时间、月审批时间最长的10个合同、各承办部门平均处理时间、各审批部门平均处理时间等;工作类统计:按所属部门统计合同数量及合同金额,未履行、部分履行和全部履行的合同数量及金额,按合同类型统计合同数量及金额,变更、解除、终止合同的数量、金额及占比等;质量类统计:合同倒签数量、合同审批退回数量及占比、承办部分废除数量及占比等。
3.2 系统实现
合同管理系统应用EOS Studio开发环境,Tomcat应用服务器,Oracle数据库进行开发。具体由以下步骤实现:
1)创建项目
作为一个应用系统运行的功能模块放在同一个项目中进行开发。项目开始是要创建一个合同管理系统的空EOS项目,然后再进行构件包设计。
2)构件包设计
构件包设计主要是针对整个系统的子模块进行划分。在系统设计视图中,将一个系统划分成若干构件包,并且可以设计构件包间的依赖关系。这里分别对应以上功能模块设置构建包,并创建一个公共构件包用于放置通用服务构件,供复用。
3)数据建模
数据模型是构建一个业务系统的基础,在进行具体的构件设计前,需要首先设计系统的数据模型。首先在oracle中完成数据库表的创建,然后导入到EOS系统中生成数据实体。在数据建模的视图中,可以设置实体间的关联关系、设置实体和数据库表的映射关系、将一个查询SQL语句映射成一个数据实体、根据数据库的Schema生成数据实体。
4)页面流开发
页面流由一系列页面、从这些页面发出的用户请求、以及系统为响应用户请求而执行的逻辑处理所构成。它不仅描述了页面之间的流转关系,同时也定义了从一个页面可能发出的用户请求,以及对这些请求的响应行为。在页面流设计中,对每项功能定义一个页面流,从功能菜单为入口进入页面,在页面触发一系列动作及响应。
5)页面开发
可通过JSP源代码编辑开发,或使用EOS提供的页面控件、组合控件、控件向导以及JavascriptAPI,快速生成jsp页面。
6)业务逻辑开发
逻辑构件开发:一个逻辑构件相当于一个Java类,逻辑构件是由多个逻辑流组成的,一个逻辑流相当于一个Java类里面的方法。逻辑流开发是利用EOS提供的基础构件库及用户自己开发的运算逻辑和Spring构件,通过图形化的构件组装来实现应用的后台处理逻辑。使用逻辑构件和逻辑流可以用可视化的类似流程的方式开发。这里在页面流里需要使用逻辑构件实现的页面提交后的功能都在逻辑构建里进行开发。
7)业务流程开发
业务流程是用于完成包含人工和自动的业务活动流程的构件,它是通过 BPS for EOS 开发环境来开发的流程管理的图形化描述。BPS负责对业务流程整个生命周期的管理,包括业务流程的定义、测试验证、部署、运行、监控、管理、业务化定制调整。合同管理系统中所有的审批流程都在BPS中定义和开发,通过运用开始活动、人工活动、自动活动、路由活动、子流程、连线、结束活动等图元绘制整个业务流程图,在每一个流程活动中设置对应的流程活动页面流及流程参与者。
8)部署调试
EOS的部署调试提供了开发期的开发资源部署和调试功能。通过部署功能将整个项目、构件包和所需的开发资源文件部署到服务器上,并通过在逻辑流、页面流和代码中设置断点的方式调试跟踪每一个业务功能的执行过程,借助调试功能完成业务逻辑和页面流的单元测试,保证逻辑运行和页面流转的正确性。
9)功能打包
系统开发完毕后,通过EOS提供的导出部署包和导出EAR的功能将开发的构件包导出,供上线实施时使用。对于已上线的系统,可以将修改和增加的内容导出生成补丁包,在EOSGovernor中对系统打补丁或进行升级。
10)部署实施
通过EOS Governor进行服务器、应用系统的配置管理,部署应用和构件包,完成系统的上线实施。
在实际开发过程中,其中的步骤不一定是严格按顺序进行的,很多情况下是交互进行的。在开发模式上,EOS支持自顶向下、自底向上、迭代开发等开发模式,开发和实施人员可以根据项目的实际情况灵活执行这几个步骤,完成应用系统的开发和实施。
4 结论
EOS面向构件的开发方式和丰富的基础构件库及其强大的工作流开发平台大大简化了系统的开发工作,使得复杂合同管理功能及流程得以快速实现。合同管理系统的开发实施,实现了合同完善的全生命周期管理,规范了合同管理的业务流程,增强了合同业务处理过程的透明度,节约了管理成本,提升了管理水平,实现了由传统管理阶段向信息管理与决策分析阶段的转变。
【参考文献】
[1]Primeton EOS?誖Platform.产品白皮书.
[2]刘琳.合同全生命周期的信息化管理鹏泰的设计与实现[J].北京邮电大学,2012.
[责任编辑:田吉捷]