




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、U8EAI企业应用集成培训企业应用集成培训U8U8平台开发部平台开发部2008年年10月月2525日日背景介绍背景介绍U8EAIU8EAI产品简介产品简介U8EAIU8EAI产品应用领域产品应用领域U8EAIU8EAI产品特性产品特性U8EAIU8EAI产品基本结构产品基本结构U8EAIU8EAI数据交换接口规范数据交换接口规范U8EAIU8EAI应用集成开发基本流程应用集成开发基本流程最佳实践最佳实践挑战挑战 当今全球化时代,企业面临着新的挑战:社会化大生产的分工越来越细,企业的生产方式由大而全的自主式生产转变为专业化协作生产。企业面临越来越激烈的外部竞争环境带来的挑战以及内部管理和运营成本
2、上升带来的压力。应对策略应对策略企业迫切需要与供应商、合作伙伴、客户建立更紧密的协作关系,以共同应对风险和挑战,实现互惠共赢。 企业迫切需要能整合优化内部资源和业务流程,降低运营成本,提高运营效率和客户服务水平。对对IT系统的要求系统的要求打通 “信息孤岛”,实现企业内部各系统之间互连互通、信息共享融合和业务整合,以提高企业运营效率,降低成本。 背景介绍背景介绍 打通企业之间的“信息壁垒”,实现企业与供应商、伙伴、客户之间的信息交换和自动化业务协同,降低交易成本。 背景介绍背景介绍企业应用集成的关键问题企业应用集成的关键问题IT系统的开放性和扩展能力系统的开放性和扩展能力 为应对全球化带来的挑
3、战,企业需要有效整合内外资源,这要求企业的IT系统要具备足够的开放性和扩展能力,这种开放性和扩展能力首先体现在IT系统要具备能与外部系统进行信息交流的丰富的对外接口。标准和规范的遵循标准和规范的遵循 企业IT系统之间的集成除了相互的开放性以外,最重要的一点是要遵循一致的技术标准和规范,即必须说一种“语言”,才能进行有效“交谈”。当前比较流行的XML、SOAP/WebService、SOA等技术,就是为了解决系统之间的数据通讯和信息交换问题而出现的业界公认标准。信息之间差异的弥合信息之间差异的弥合 企业应用集成最重要的行为是信息的交换,由于没有统一的商业标准,系统之间的信息数据在结构上往往存在差
4、异,甚至在对相同信息的描述上也可能存在语义上的差异,比如:对于同样的原材料A,在供应商系统中记录的编码是001,而在制造商系统中记录的编码是002。企业应用集成必须要解决这样的信息差异问题。 背景介绍背景介绍U8企业应用集成(企业应用集成(EAI)产品是)产品是U8ERP与第三方系统进行业务数据交换的平台级与第三方系统进行业务数据交换的平台级工具产品,是工具产品,是U8ERP统一的对外开放接口。统一的对外开放接口。EAI产品包括一整套产品包括一整套U8ERP的标准业务数据交换接口,这些接口涵盖基础档案、财的标准业务数据交换接口,这些接口涵盖基础档案、财务、供应链、生产制造、客户关系管理、务、供
5、应链、生产制造、客户关系管理、HR等等ERP业务模块,具备统一的入口、业务模块,具备统一的入口、一致的业务外观和相对完整的业务功能,能完成一致的业务外观和相对完整的业务功能,能完成U8基础数据、凭证、业务单据的基础数据、凭证、业务单据的导入导出及增、删、改等操作(少数不支持),是导入导出及增、删、改等操作(少数不支持),是U8与外部系统进行应用集成和与外部系统进行应用集成和业务整合的基本资源。业务整合的基本资源。 为解决数据交换中系统之间数据格式和数据语义差异问题,为解决数据交换中系统之间数据格式和数据语义差异问题,EAI产品提供了可扩展产品提供了可扩展的数据适配器和数据映射机制用来进行内外数
6、据的翻译和转换。的数据适配器和数据映射机制用来进行内外数据的翻译和转换。为方便用户的应用和体验,为方便用户的应用和体验,EAI产品还提供了能直接进行产品还提供了能直接进行U8数据导入导出的基本用数据导入导出的基本用户界面工具,此工具支持手工和自动导入导出。户界面工具,此工具支持手工和自动导入导出。 U8EAI产品简介产品简介企业内部第三方业务系统与企业内部第三方业务系统与U8的整合的整合l财务整合:凭证上传典型案例:U8网络分销系统通过U8EAI接口向U8财务系统上传结算凭证。l业务整合:单据协同典型案例:U8连锁零售系统通过U8EAI接口与U8销售和库存系统进行业务协同。包括:零售部门下载公
7、司U8系统中的商品、客户档案、库存信息等;往U8系统上传每日结算的零售日报;库存不够了往U8发调拨申请单进行要货调拨等等业务。企业之间的企业之间的B2B业务协作业务协作l供应链协同:供应商远程接收订单。伙伴客户的采购系统通过供应商U8EAI远程接口往供应商U8销售系统提交订单。U8EAI在这两类应用领域中扮演的角色和职责主要是提供U8ERP对外的基本集成接口资源。U8EAI产品应用领域产品应用领域应用特性应用特性l内容完整内容完整涵盖了U8ERP的大部分基本档案和业务单据(含凭证),是U8ERP目前最完整、规范的对外接口。l功能丰富功能丰富支持手动、自动、远程和本地接口等多种数据交换方式;支持
8、数据映射、增量、过滤条件等多种数据交换规则。l接口统一接口统一对外提供了一个统一的服务代理接口,由此接口负责所有数据交换请求(调用)的分发处理,使外部系统对U8的接口依赖减小到最少,降低的系统耦合性。技术特性技术特性l采用采用XML作为数据交换格式作为数据交换格式XML提供了跨平台和低耦合特性,支持COM、.NET、JAVA三种平台。l采用采用Request/Response作为数据交换模式作为数据交换模式数据交换的交互模式采用Request/Response方式,并通过标准的Request和Response消息来承载交互数据信息。l支持本地和支持本地和HTTP远程调用远程调用本地调用采用CO
9、M方式;远程调用采用XMLHTTP POST的方式。U8EAI产品特性产品特性U8ERP数据交换业务接口数据交换业务接口: U8ERP各业务模块提供的数据交换接口。EAI数据交换框架数据交换框架: 为管理和调用数据交换业务接口而提供的统一的基础框架,包括数据交换业务基本配置信息以及数据交换服务代理接口和适配器。其中数据数据交换服务代理接口交换服务代理接口负责处理数据交换请求;适配器适配器负责对不同格式和结构的数据信息进行适配转换;数据交换目录数据交换目录集中注册和管理U8产品的所有数据交换业务接口;数据交换元数据数据交换元数据描述了数据接口格式和数据类型定义 ;数据映射规则;数据映射规则描述了
10、数据适配过程中的内外数据的对照映射关系;EAI日志日志用来对数据交换过程进行跟踪和记录。EAI数据交换管理器数据交换管理器: 用来配置和管理数据交换业务。主要包括以数据交换解决方案为中心的各种数据交换要素的配置管理 。其中,解决方案管理解决方案管理主要对各种数据交换配置按照数据交换应用任务为单位进行分类集中管理;外部系统管理外部系统管理用来建立外部系统与U8帐套的集成关系;数据映射管理数据映射管理用来配置外部系统数据与U8数据的对照映射规则,以便在数据交换时进行数据适配和转换(解决数据信息差异问题);适配器管理适配器管理用来管理系统预置和自定义数据适配器、定义适配规则;EAI日志管理日志管理用
11、来查询和处理EAI日志。EAI导入导出工具:导入导出工具:为方便用户的应用和体验, EAI提供了面向最终用户的导入导出工具。能直接进行U8数据导入导出,支持多种格式,支持条件过滤和增量,支持手工和定时自动导入导出。 U8EAI产品基本结构产品基本结构U8EAI产品结构产品结构EAI导入导出工具导入导出工具手动导入导出工具nXML导入导出nEXCEL导入导出n其他格式导入导出导入导出设置条件过滤规则增 量 规则导入导出目标地址定时计划导入导出任务计划规划设计器任务计划执行引擎U8ERP数据交换业务接口数据交换业务接口基本档案接口财务接口供 应 链 接口生产制造接口其它接口EAI数据交换框架数据交
12、换框架EAI数据交换代理服务-EAI Broker(支持多种协议)EAI数据交换目录EAI数据交换元数据数据映射规则EAI日志适配器框架专用适配器nE X CELnEDI通用适配器(XML)格式和数据适配规则EAI数据交换管理数据交换管理器器外部系统管理数据映射管理适配器管理EAI日志管理解决方案管理U8EAI数据交换接口规范数据交换接口规范EAI接口定义接口定义l本地本地COM接口接口类库:U8Distribute.DLLProgID:U8Distribute.iDistribute方法:String Process(String RequestXml)参数: RequestXml数据交换请
13、求消息,详见数据交换格式定义。 返回值数据交换Response消息,详见数据交换格式定义。l远程远程HTTP接口接口EAI远程数据交换采用XmlHttp POST的方式。接口为:POST上传:数据交换请求消息与本地调用一样,详见数据交换格式定义。 Response接收:数据交换响应消息与本地调用一样,详见数据交换格式定义。EAI数据交换格式数据交换格式 l数据交换消息总体格式数据交换消息总体格式EAI数据交换消息格式分为框架和内容两部分: 框架部分 内容部分 框架部分框架部分包含数据交换的控制信息,其中:U8EAI数据交换接口规范数据交换接口规范sender: 发送方,填外部系统注册码rece
14、iver: 接收方,填u8即可roottag:数据类型,根据EAIXMLTemplate目录中的数据交换模板文件填写proc:数据交换的操作,分为add/edit/delete/query内容部分内容部分指消息中携带的档案或单据等业务数据。U8EAI提供了一整套完整的基本档案和单据的数据交换模版(在EAIXMLTemplate目录下),模板中定义了消息内容部分的格式和字段。lRequset消息格式消息格式Request消息格式的框架部分同上所述,内容部分根据不同的操作有所不同:对于add/edit操作,Request消息的内容就是档案和单据内容,具体格式详见数据模板。对于delete/quer
15、y操作, Request消息的内容包含过滤条件,条件格式如下: U8EAI数据交换接口规范数据交换接口规范lResponse消息格式消息格式Response消息是EAI接口执行Request消息之后的返回结果,不同的操作有所不同:对于query操作, 返回的结果就是查询的数据,格式详见EAI数据模板。对于add/edit/delete操作,返回的结果包括单据体每一行数据的详细执行结果(由Item节点描述),如下: 凭证的add操作的Response格式比较特殊: voucher_id: 外部系统原始凭证号; u8voucher_id: U8生成的凭证号; succeed: 是否成功,0为成功,
16、非零为失败; accounting_period: 会计期间; voucher_type: 凭证类别第一步:第一步:EAI基本配置基本配置第二步:规划并准备数据第二步:规划并准备数据第三步:根据部署方式选择第三步:根据部署方式选择EAI接口类型接口类型第四步:调用第四步:调用EAI接口,发送数据接口,发送数据第五步:处理返回结果第五步:处理返回结果U8EAI应用集成开发流程应用集成开发流程第一步:第一步:EAI基本配置基本配置1、配置、配置EAI连接连接“开始”- “程序”-“用友ERP-U872”-“企业应用集成(EAI)”-“U8EAI接口设置”U8EAI应用集成开发流程应用集成开发流程2
17、、外部系统注册、外部系统注册切换到外部系统注册页签进行外部系统注册。外部系统注册的目的是为了建立外部系统与U8帐套的数据交换关系。U8EAI应用集成开发流程应用集成开发流程第二步:规划并准备数据第二步:规划并准备数据1、根据项目的需求,分析应用集成业务场景,确定需要与、根据项目的需求,分析应用集成业务场景,确定需要与U8进行数据交换的进行数据交换的业务环节。业务环节。2、对于项目中每一个数据交换环节,确定数据来源,并进行数据适配,将原、对于项目中每一个数据交换环节,确定数据来源,并进行数据适配,将原始数据转换为符合始数据转换为符合U8EAI标准数据交换格式的数据(对于标准数据交换格式的数据(对
18、于add/edit的数据的数据必须符合必须符合U8EAI的数据模板格式)。的数据模板格式)。3、对于数据交换过程中需要进行基本档案编码转换的(比如:订单中存货的、对于数据交换过程中需要进行基本档案编码转换的(比如:订单中存货的编码外部系统与编码外部系统与U8可能不一致),可以在可能不一致),可以在EAI的数据交换配置管理中配的数据交换配置管理中配置档案编码的映射关系。当然,也可以不使用置档案编码的映射关系。当然,也可以不使用EAI的数据映射功能,直接的数据映射功能,直接在外部数据转换为在外部数据转换为U8EAI标准格式的代码中处理。标准格式的代码中处理。U8EAI应用集成开发流程应用集成开发流
19、程第三步:根据部署方式选择第三步:根据部署方式选择EAI接口类型接口类型对于需要与对于需要与U8服务器分离部署的应用集成项目,应该选择服务器分离部署的应用集成项目,应该选择EAI的的HTTP远程接口。远程接口。对于可以和对于可以和U8服务器部署在一起的项目,则应选择调用服务器部署在一起的项目,则应选择调用EAI本地本地COM接口。接口。U8EAI应用集成开发流程应用集成开发流程第四步:调用第四步:调用EAI接口,发送数据接口,发送数据本地本地COM调用调用 VB代码:代码: Dim eaiBroker As Object Set eaiBroker = CreateObject(“U8Dist
20、ribute.iDistribute”) 创建EAI服务代理接口对象 Dim responseXml As String responseXml = eaiBroker.Process(requestXml) 调用EAI服务代理的数据交换方法Process,传入Request交 换消息, 并获取EAI返回的Response消息。 . 处理返回结果 Set eaiBroker =Nothing 释放EAI服务代理接口对象 .Net代码:代码: 引用U8SOFTEAIU8Distribute.dll U8Distribute.iDistributeClass eaiBroker = new U8D
21、istribute.iDistributeClass(); /创建EAI服务代理接口对象 String responseXml = eaiBroker.Process(requestXml); /调用EAI服务代理的数据交换方法Process,传入Request交换消息, 并获取EAI返回的Response消息。 . /处理返回结果 System.Runtime.InteropServices.Marshal.FinalReleaseComObject(eaiBroker); /释放EAI服务代理接口对象U8EAI应用集成开发流程应用集成开发流程 JAVA代码:代码: 采用JNI、JCOM、J
22、ACOB技术调用EAI服务代理COM组件,下面以JACOB为例: import .Dispatch; import .Variant; class Test public static void main(String args) Dispatch eaiBroker = new Dispatch(U8Distribute.iDistribute); /创建EAI服务代理接口对象 String responseXml = Dispatch.call(eaiBroker, Process, new Variant(requestXml); /调用EAI服务代理的数据交换方法Process,传入R
23、equest交换消息, 并获取EAI返回的Response消息。 . /处理返回结果 U8EAI应用集成开发流程应用集成开发流程HTTP远程调用远程调用 远程调用采用HTTP POST的方式上传Request消息。 VB代码:代码: Dim xmlhttp As Object Set xmlhttp = CreateObject(“MSXML2.XMLHTTP”) 创建XMLHTTP对象 Call xmlhttp.open(“POST”, “”, False) 使用XMLHTTP对象打开网络连接,URL中的u8appsrv填U8应用服务器 xmlhttp.send requestXml 发送R
24、equest消息 Dim responseXml As String responseXml = xmlhttp.responseText 获取返回Response消息 . 处理返回结果.Net代码:代码: 引用D:U8SOFTInteropInterop.MSXML2.dll MSXML2.XMLHTTPClass xmlHttp = new MSXML2.XMLHTTPClass(); xmlHttp.open(POST, , false, null, null); xmlHttp.send(dom.OuterXml); String responseXml = xmlHttp.respo
25、nseText; /处理返回结果 System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xmlHttp); /COM释放U8EAI应用集成开发流程应用集成开发流程 JAVA代码:代码: class Test public static void main(String args) URL url = new URL(); HttpURLConnection con = (HttpURLConnection)url.openConnection(); con.setConnectTimeout(3000000); con.set
26、ReadTimeout(3000000); con.setDoInput(true); con.setDoOutput(true); con.setAllowUserInteraction(false); con.setUseCaches(false); con.setRequestMethod(POST); con.setRequestProperty(Content-type,application/x-); /发送Request消息 OutputStream out = con.getOutputStream(); DataOutputStream dos = new DataOutpu
27、tStream(this.out); dos.write(requestXml.getBytes(UTF-8);/获取Response消息InputStream in = con.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(in);StringBuilder sb = new StringBuilder();String s = null;while (s = br.readLine() != null) sb.append(s);String responseXml = sb.to
28、String(); U8EAI应用集成开发流程应用集成开发流程第五步:处理返回结果第五步:处理返回结果分析返回结果,处理返回结果就是处理分析返回结果,处理返回结果就是处理Response消息,消息, Response消息格式在消息格式在“EAI数据交换接口规范数据交换接口规范”中已经详中已经详 细介绍了。细介绍了。U8EAI应用集成开发流程应用集成开发流程最佳实践最佳实践活用活用EAIEAI接口接口关于二次开发中关于二次开发中U8U8接口选择接口选择U8U8与外部系统集成最佳开发模式与外部系统集成最佳开发模式活用活用EAI接口接口EAI通用通用SQL查询接口查询接口 由于EAI接口返回的数据格
29、式是固定的标准格式,很有可能返回的数据中没有用户所需要的字段;另外,对于U8中的业务数据,EAI接口也不是100%覆盖的。 针对以上情况,EAI提供了一个灵活的数据查询通用接口-EAI通用SQL查询接口,该接口支持向EAI数据交换代理传递SQL语句进行查询操作,可以查询当前U8帐套的所有数据,用户不用直接访问U8帐套库。查询返回的结果为.Net中的Dataset的XML格式的数据。调用该接口只需给EAI数据交换服务代理传递特殊的Request消息即可: Request消息格式如下: 其中内容部分 节点为SQL查询语句。框架部分的roottag值必须固定为“SQLEXE” , proc的值用来标
30、识Dataset的行节点,可以是任意字符串。 活用活用EAI接口接口Response消息格式如下: 1true采购1部2true销售1部根节点的proc的值用来标识Dataset的行节点,一般为表名。活用活用EAI接口接口使用条件过滤使用条件过滤查询单条数据的时候往往需要带上条件,可以采用EAI通用SQL查询,也可以采用EAI标准的条件查询格式: 注意控制部分的roottag要与内容根节点呼应。活用活用EAI接口接口关于内外格式适配问题关于内外格式适配问题外部系统通过EAI与U8进行数据交换,首先必须解决数据格式匹配问题,必须将外部系统数据格式变换为U8EAI标准数据格式,EAI当前的版本还没
31、有实现完善的适配器机制,故目前常见的做法是直接在项目工程的二次开发代码中做转换,这种方式虽然很高效,但是不灵活,不能适应规则或需求变化(一旦有变化,则需要调整代码重新编译),推荐一个比较好的做法是将数据格式转换功能做成一个通用服务,采用XSLT作为转换引擎,XSLT脚本作为转换规则,这样,应对任何格式甚至业务规则的变化只需要调整XSLT脚本即可。 关于客户化开发中关于客户化开发中U8接口选择接口选择要在客户化开发代码中调用要在客户化开发代码中调用U8的某项功能,目前有三种选择:的某项功能,目前有三种选择: 直接访问U8数据库:优点是最直接,能够完全自我控制;缺点是最危险,需要对产品的实现机理和
32、数据库表结构都非常了解。 使用U8开发部提供的内部接口:优点是可以复用现有接口,不需要重复劳动,而且内部使用的接口一般都比较灵活;缺点是太灵活,不易用,粒度太细,依赖和耦合度太强,需要很多上下文条件,需要总部强有力的技术支持! 使用U8对外公布的产品化的标准接口U8EAI与U8API(872新增加):优点是经过严格测试,编程模型统一,业务粒度适中,功能相对独立完整,耦合度和依赖都不强。缺点是标准化后导致不灵活,另外功能覆盖度不是很全面(持续完善中!)。U8EAI与与U8API接口接口 U8EAI与U8API接口看起来比较类似,但它们的特性有差别。 U8API采用传统的编程模式,更靠近底层,业务逻辑粒度更细,而且还需要或依赖一些特定的上下文环境,比如:login、事务等;而U8EAI接口则是完全松耦合的,采用XML和请求/响应的消息模式,支持跨平台和远程访问,且业
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供货产品运输合同
- 项目合伙的协议书
- 买卖合同房屋买卖第三方合同
- 股权分配合作协议书
- 购买汽车融资租赁合同
- 护工合同协议书样本
- 提高工作效率方案
- 解决方案-提高工作效率的举措
- 新能源汽车动力电池研发合作协议
- 必修4 第一单元 唯物论-高中政治单元教学设计
- GB/T 6418-2008铜基钎料
- 荧光的猝灭解析课件
- 足球训练计划 周
- 人教版小学美术六年级下册全册课件
- 战略管理教学ppt课件(完整版)
- DB32-T 3129-2016适合机械化作业的单体钢架塑料大棚 技术规范-(高清现行)
- 数据结构英文教学课件:chapter10 Hashing
- 蓝色卡通风学生班干部竞选介绍PPT模板课件
- 人教新目标英语九年级上册单词中文Units
- 机动车牌证申请表格模板(完整版)
- 部编版小学语文三年级(下册)学期课程纲要
评论
0/150
提交评论