U8EAI接口摘要U8企业应用集成(EA|产品是U8ERP与第三方系统进行业务数据交换的平台级工具产品,是U8ERPB—的对外开放接口EAI产品包括一整套U8ERP的标准业务数据交换接口,这些接口涵盖基础档案、财务、供应链、生产制造、客户关系管理、HR等ERP业务模块,具备统一的入口、一致的业务外观和相对完整的业务功能,能完成U8基础数据、凭证、业务单据的导入导出及增、删、改查等操作,是U8与外部系统进行应用集成和业务整合的基本资源在技术上,EAI数据交换接口采用符合业界标准的XML作为数据交换接口规范(协议)描述,充分利用了XML跨平台和低耦合的特性基于XML的交换协议描述了数据交换过程中Request/Response消息数据格式及元数据规范(Schema),外部系统只要遵循此标准和规范即可以方便的与U8ERP®行Talking为解决数据交换中系统之间数据格式和数据语义差异问题,EAI产品提供了可扩展的数据适配器和数据映射机制用来进行内外数据的翻译和转换;为方便用户的应用和体验,EAI产品还提供了能直接进行U8数据导入导出的基本用户界面工具,此工具支持手工和自动导入导出目标本文主要介绍如何通过EAI接口实现U8与其他业务系统之间的数据交互。
EAI接口规范EAI接口本地COM接口类库:ProgID:方法:StringProcess(StringRequestXml)参数:数据交换请求消息,详见下文请求消息格式返回:数据交换响应消息,详见下文回执消息格式这种方式可根据开发者的需要批量处理或者实时处理接口调用非常简单,简化了编程开发者只需将标准数据传入接口,如下:1)VB调用代码DimeaiBrokerAsObjectSeteaiBroker=CreateObject("‘)'创建EAI服务代理接口对象DimresponseXmlAsStringresponseXml=(requestXml)调用EAI服务代理的数据交换方法Process传入'Request换消息,并获取EAI返回的Response?肖息2) …..’处理返回结果SeteaiBroker=Nothing释放EAI服务代理接口对象...//处理返回结果//释放EAI服务代理接口对象.NET调用代码JAVA代码采用JNkJCOMJACOEK术调用EAI服务代理COM组件,下面以JACO成例:importimportclassTest(publicstaticvoidmain(String[]args(....//处理返回结果}}远程HTTP接口EAI远程数据交换采用HttpPOST的方式classTestDimxmlhttpAsObjectpublicstaticvoidmain(String[]args)Setxmlhttp=CreateObject({"”)'创建XMLHTTP对象(“POST”,,False)'便用~Xl=newTRL^i!杼开网络连接'发送Request?肖息...〃处理返回结果HttpURLConnectioncon=(HttpURLConnection)()//COM释放DimresponseXmlAsString(3000000);responseXml='获取返回(彼00000&肖息(true);1)访问网址:ET调用代码2)JAVA调用代码调用U8API接口满足现有U8EAI做不到的业务单据操作,如销售报价单增删改,以及业务操作,如审核、弃审,将现有U8API的功能整合进U8EAI,将两者糅合在一起,形成功能互补,为企业应用集成和二次开发提供更强大的支持。
通过参照U8API请求XML模板,填入相应的API参数值,即可实现通过U8EAI统一接口调用U8API服务详细内容请参见文档1、诘求XML格式?(true);(false);(false);("POST");("Content-type”,"application/x-www-form-urlencoded");//发送Request消息OutputStreamout=();DataOutputStreamdos=newDataOutputStream;("UTF-8"));//获取Response?肖息InputStreamin=();BufferedReaderbr=newBufferedReader(newInputStreamReader(i8api"receiver=."u8"sender="001"proc="add">StringBuildersb=newStringBuilder();U8API/PurchaseOrder/VoucherSaveStrings=null;”/>="VoucherState"value="2"datatype="int"/>="CurDWhile(da=(yp=nu="){IXMLDOMDocument2"/>="UserMode"value="0"datatype="int"/>(s);查询:query;审核:verify;弃审:unverify。
2、返回XML格式以上为查询返回XML格式,新增成功后,还会返回新增单据或档案的ID3、返回错误信息按传入顺序返回批量操作的执行结果,调用一次API的过程中若出现错误,不影响其他调用的执行通用SQL查询接口由丁EAI接口返回的数据格式是固定的标准格式,很有可能返回的数据中没有用户所需要的字段;另外,对丁U8中的业务数据,EAI接口也不是100%覆盖的针对以上情况,EAI提供了一个灵活的数据查询通用接口--EAI通用SQL查询接口,该接口支持向EAI数据交换代理传递SQL语句进行查询操作,可以查询当前U8帐套的所有数据,用户不用直接访问U8帐套库查询返回的结果为.NET中的Dataset的XML格式的数据调用该接口只需给EAI数据交换服务代理传递特殊的Request消息即可1、请求Request消息格式:Mm^esion时Wodregtta^8"?泌须固定为“SQLEXE,proc的值用来标识Dataset的行^^u^nfeiscssw蚪符成;0啊容杪er节点为sql查询语句2、应答快座役点esQLEX叟pr?c=公泸伽以“codeexchanged="n"、I〕其邱xm!v的苻节点,数据nteijnaterfacesenderm工J="u8"receiver="001七8EAroiafr="网EXE"prB浙野啊h"数据交换模版目录下),哪如呻消息WQ糜德格式和字段。
般为表名在EAI\XML\Template请求消息临NewD湘洞>1"cDqpCode>nterfacesende<=b^01^?>惦§<pa一内容部分二,SNOme>采购1部销售1部cocid:唯^^SepartmS疑;>sender:役NlWfeataSet卜部系统注册码(必填);re可填U8;roottag:档案或单据模版名,填档案或单据的唯一标识,如商档案:customer,2) 客商分类:customerclas§具体名称由总体确定,在数据交换中该名称要经常使用;proc:操作类型,分为“增删改查”,对应填Add/Delete/Edit/Query(必填),该字段导入操作,请填写Add/Delete/Edit,导出操作,请填写Query;dynamicdate:业务账套登录日期,如果不填,则取U8应用服务器所在操作系统的当前日期,否则取指定的登录日期进行业务账套登录;codeexchanged编码是否已转换,该字段在导入的时候使用,如果已转换即已和U8基础数据编码一致填Y,将不会通过对照表的转换,如果没有转换即和U8基础3) 数据编码不一致填N,将会自动通过对照表转换之后,进行相应的操作;exportneedexch:导出是否需要根据对照表进行转换,需要填“Y”,不需要填“N”,导出的时候使用;timestamp:时间戳标志,在导出数据时,导出此时间戳的所有以后的数据,若为空,则导出只有过滤条件的数据。
内容部分:指数据请求或响应消息中携带的档案或单据等业务数据,如:成州处爽员"呼解>U8单据格式使用疽U8§mFTEAfoxML\Sa>nplest各个模板的详』溉辞秘XOrank>MUwaw?诚功的回执就是业务数据导,??管理兼技术回执:田例子供参考情况的回执如下所示:一雌卿men^七8中各个基础档案和业务档案用xml存储时的格式目前放在WSof^EAOXMKTemN^e中模板的下部注释中4模板中各个节点的相应说明,主要是供1)2)3)4)5)6)1)2)3)4)keysat<(i^_|pe?acbountingSpeiilQd。
为!"tt"?V3u&he毗type2=1"讷期初待核银行帐,20为银行帐"税ou谢er_d余额888叱猛用霜坡明绷138"?entry_id=""?succeed="0”?dsc="凭证已成功ouch_?ypaccoSnffig_peiod="10"?>“程序”->“用友U8V*”->“企业应用集成(EAI)”->“EAI接口设置”),如果没有则需要进行配置一般配置好后就不要动了,除非出现服务器迁移或重新安装的情况基本设置需要指定U8服务器、EAI登录身份验证、EAI数据源如果进行数据交换。