《U8API和U8EAI整合文档.docx》由会员分享,可在线阅读,更多相关《U8API和U8EAI整合文档.docx(16页珍藏版)》请在优知文库上搜索。
1、U8API与U8EAI整合袁昌龙版本号:V810.0时间:2010-08-16版权所有:用友软件股份目录1 概述32 需求方案32.1 业务需求32.2 解决方案4现状分析42.2.2总体方案43 详细设计53.1 具体方案53.2 XML数据模板5传入数据5返回数据8批量操作93.3 U8API整合9转换为U8EAI模板9实现USAPIService适配器103.4 合同管理APl114 附录和参考111概述为适应U8allinone策略,实现U8产品线的业务整合,需要向U8CRM产品提供更全面更丰富的U8接口服务。然而在目前的情况下,现有的U8EAI还不足以支持复杂的业务功能,如单据的审核
2、或弃审,并且并非所有的单据或档案在EAl中都具有“增删改查”的功能,如销售报价单就不具有任何的导入导出功能,而CRM却需要。纵观U8的另一个有力的二次开发产品U8API和插件,从功能上和U8EAI形成一定的互补关系,即U8EAI中所缺乏的功能基本上都可在U8API中找到,但U8API却缺乏一个和U8EAI一样的易用性比较高的统一调用入口。因此,为了实现U8和CRM的全面整合,并保留已有的统一接口调用方式,完成U8API与U8EAI的具体整合工作。2需求方案满足现有U8EAI做不到的业务单据操作,如销售报价单增删改,以及业务操作,如审核、弃审,将现有U8API的功能整合进U8EAI,将两者糅合在
3、一起,形成功能互补,为企业应用集成和二次开发提供更强大的支持。2.1 业务需求.销售订单U8EAI中销售订单仅有新增和查询的导入导出功能,新增销售订单接口需提供修改、删除、审核、弃审四个功能。接口包括: 新增/修改 删除 查询 审核/弃审版本:872、8902 .销售报价单U8EAI不具有销售报价单的任何导入导出功能。新增销售报价单需提供增加、修改、删除、查询四个功能。接口包括: 新增/修改 删除 查询版本:872、8903 .合同工作台U8EAI不具有“合同工作台”的任何导入导出功能。需提供“合同工作台”的新增、修改、删除、查询四个功能。接口包括: 新增/修改 删除 查询版本:872、890
4、2.2解决方案2. 2.1现状分析第一,以上是只是CRM提出的“现时的”具体业务需求,而这仅仅是一个开端。因为,在实际的使用过程中,会随着企业业务需求的不断变更,又会需要提供新的服务接口或需要提供新的业务字段,以满足企业业务的变化。也就是说,需要提供的接口服务是动态的,而非静态的,不会一成不变。第二,需要特别指出的是,U8EAI本身所提供的业务操作是不全面的,例如,缺乏两个个非常基础和常用的业务功能一一审核和弃审,且不谈U8EAT对所有现有的单据或档案接口支持“增删改查”服务,就是对U8本身所支持的功能也是不完备的。在与第三方系统(非U8)进行整合的时候,该需求尤为突出和棘手,因为需求常常紧迫
5、需要很快完成,但是在短时间下无法很快从零开发完成一个从未有过的业务功能,同时完成这样的功能需要经过大量严格而全面的测试,而这样的测试又不是简单的UI测试,其难度和成本可想而知,所以常常无法解决而招致放弃。第三,在较为复杂的业务需求下,第三方系统一次请求的服务并非一个单纯简单的“原子粒度”的单据或档案“增删改查”服务,它可能需要一种较为复杂的业务流程,涉及一个较大范围的事务操作,需要多种单据或档案协同完成一件事,例如U8零售和分销系统上传零售日报先后流经U8销售、库存和财务系统需要相应单据一起才能最终完成零售日报的上传。而目前U8EAI是不支持这样一种“复合粒度”的业务操作的,简而言之,U8EA
6、I难以方便快捷的支持应用扩展。从以上三点可以看出,U8EAI本身存在如下的“缺陷”:静态、封闭、不完备、不易扩展。但是,U8EAI本身的设计理念:所有服务定义一个统一的入口,该接口如此简单却又完备,却是非常值得肯定的,无论本地还是远程调用都是一件相当容易的事情。2. 2.2总体方案U8API是U872正式推出的一套U8功能服务调用标准API,以作为U8客户化应用开发或外部系统集成的基本资源。在功能上,与U8EAI呈现交集状态,某些单据或档案并没有在U8EAI中所提供,而是纳入到标准U8API中。因此,常常出现的情况是,在U8EAI中没有提供的功能,建议客户转由使用U8API实现,客户不得不从原
7、先熟悉的U8EAI去重写学习U8API,因而常常询问使用方法,并且耗费可观的开发时间,还得维护一套新的代码。由于U8API是从封装原生的业务组件功能而来,故而对业务组件所提供的功能“天生”就是完备的。并且,很容易添加还没有开发的业务功能(只需要注册新的业务模块,找到业务组件,指定新的API服务即可),以及对现有标准APl的自定义扩展(只需要注册自定义API服务即可,在自定义API服务中可以复合已有的标准API并指定事务类型即可)。从上可知,U8API和U8EAI具有功能互补的特性,在现实环境下,只有这两者互相弥补、共同协作,才能又快又好的实现客户不断变更的业务需求,并提高二次开发的效率。因此,
8、为了给伙伴、客开和行开,以及各类二次开发提供强大的后台支持,特提出U8API和U8EAI整合为一体的解决方案。这也是目前为止的一个最优解决方案,短期上是为了满足CRM业务需要,长期上,是为了整个U8的二次开发体系,使之更加完善。3详细设计2.1 具体方案解决方案:采用适配器(Adapter)模式将U8API进行封装并融入到U8EAI,对外由U8EAT提供统一的服务入口。首先,按照现有EAl格式设计一个通用的APl导入XML数据模板(Template)。然后,封装U8API调用,编写一个适配器组件(AdaPterCOmPOnent),并实现如下接口:PublicFunctionTransact(
9、ByVa)sXmlAsString,ByRefoLoginAsObject)AsVariant,其中第一个参数即是表头和表体数据,第二个参数即是登录Login对象。通过该接口,U8EAI可以在运行时调用U8API服务。2.2 XML数据模板客户通过参照XML模板,填入相应的APl参数值,即可实现通过U8EAI统一调用接口调用U8API服务。设计XML数据模板是一个关键的问题,因为需要使之“通用”,能够通过一个XML结构囊括所有APl调用以及批量调用,并且“易用”,在使用的时候能够尽可能的简单方便,不要过于复杂,能够不需客户知晓的就不让用户知晓,尽量隐藏内部技术细节,同时还要足够“灵活”,同样的
10、数据支持多种传递方式,支持多种传入APl参数的方式,并能易于扩展数据传递方式。3. 2.1传入数据U8API调用有通用的调用步骤,传入的数据主要分为三个部分:1)API地址API地址是指API在U8API系统中的唯一标识,也叫API的URI,通过该URI在调用过程中动态查找相应的物理APL2)环境上下文环境上下文指在调用U8API时需要初始化的调用环境,包括Login事务、特殊的业务参数等。环境上下文被初始化后,相关的环境参数会被业务APl使用。3)参数赋值API参数分两种类型:BO参数和普通参数。普通参数是指一般类型的参数,包括基本类型参数(StringInteger等)、知名对象参数(ConnectionDOMDocument等)。apiParamsBO参数即单据表头或表体类型的参数。对BO参数,支持两种方式传入,一种传BO对象,另一种传DoM对象。-!CDATAz:xowxmlns:Z-nIRowsetScheniai