U开发之EAI接口.docx

上传人:scccc 文档编号:12029120 上传时间:2021-12-01 格式:DOCX 页数:19 大小:41.49KB
返回 下载 相关 举报
U开发之EAI接口.docx_第1页
第1页 / 共19页
U开发之EAI接口.docx_第2页
第2页 / 共19页
U开发之EAI接口.docx_第3页
第3页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《U开发之EAI接口.docx》由会员分享,可在线阅读,更多相关《U开发之EAI接口.docx(19页珍藏版)》请在三一文库上搜索。

1、U 8 E A I 接 口摘要U8企业应用集成EAI产品是U8ERP与第三方系统进行业务数据交换的平台级 工具产品,是U8ERP统一的对外幵放接口。EAI产品包括一整套 U8ERP勺标准业务数据交换接口,这些接口涵盖根底档案、 财务、供给链、生产制造、客户关系管理、HR等ERP业务模块,具备统一的入口、一致的业务外观和相对完整的业务功能,能完成 U8 根底数据、凭证、业务单据的 导入导出及增、删、改查等操作,是 U8 与外部系统进行应用集成和业务整合的基 本资源。在技术上,EAI数据交换接口采用符合业界标准的XML作为数据交换接口标准协议描述,充分利用了 XML夸平台和低耦合的特性。基于 XM

2、L的交换协议描述 了数据交换过程中 Request/Response消息数据格式及元数据标准Schema,外部 系统只要遵循此标准和标准即可以方便的与U8ERF进行Talking 。为解决数据交换中系统之间数据格式和数据语义差异问题, EAI 产品提供了可扩 展的数据适配器和数据映射机制用来进行内外数据的翻译和转换;为方便用户的应 用和体验,EAI产品还提供了能直接进行 U8数据导入导出的根本用户界面工具,此 工具支持手工和自动导入导出。目标本文主要介绍如何通过 EAI接口实现U8与其他业务系统之间的数据交互。EAI 接口标准EAI 接口本地COM接 口类库:ProgID :方法: Strin

3、g Process(String RequestXml)参数:数据交换请求消息,详见下文请求消息格式。返回:数据交换响应消息,详见下文回执消息格式。这种方式可根据开发者的需要批量处理或者实时处理。接口调用非常简单,简化了编程。开发者只需将标准数据传入接口,如下:1) VB调用代码Dim eaiBroker As ObjectSet eaiBroker = CreateObject(“ )'创立 EAI 效劳代理接口对象Dim resp on seXml As Stri ngresponseXml = (requestXml)'调用EAI效劳代理的数据交换方法Process,传入

4、 Request交换消息,并获取EAI返回的Response消息。.'处理返回结果 S et ea/B处理返回结果ng'释放EAI效劳代理接口对象/释放EAI效劳代理接口对象2).NET调用代码3) JAVA代码采用JNI、JCOMI JACOBA术调用EAI效劳代理COM&件,下面以JACOB为例:class Test远程 接口EAI远程数据交换采用 POST的方式。public static void main( Str in g args) /处理返回结果Dim xml As ObjectSet xml = CreateObject( “ )'创立 XML

5、HTT对象Call (“POST , “ , False) '使用XMLHTT对象打幵网络连接requestXml'发送 Request 消息Dim resp on seXml As Stri ngresponseXml ='获取返回 Response 消息.'处理返回结果./处理返回结果/COM释放1)访问 ET调用代码 2) JAVA调用代码class Testpublic static void main( Str in g args)URL url = new URL(“ ); URLCo nn ection con 二( URLCo nn ectio

6、n)();(3000000);(3000000);(true);(true);(false);(false);("POST");("C onten t-type","applicatio n/x-www-form-urle ncoded");/发送Request消息Outputstream out =();DataOutputStream dos = new DataOutputStream;("UTF-8");/获取Response消息In putStream in =();BufferedReader br =

7、 new BufferedReader (newIn putStreamReader(i n);Stri ngBuilder sb = new Stri ngBuilder();调用U8API接口Stri ng s = n ull;满足现有U8EAI做不到的业务单据操作,如销售报价单增删改,以及业务操作, 如审核、弃审,将现有 U8API的功能整合进U8EAI,将两者糅合在一起,形成功能 互补,为企业应用集成和二次幵发提供更强大的支持。通过参照U8API请求XML模板,填入相应的 API参数值,即可实现通过 U8EAI统一接口调用U8API效劳。详细内容请参见文档1、请求XML格式vxml v

8、ersi on二" en cod in g="utf-8" >其中,proc填入操作类型,添加:add;编辑:edit ;删除:delete ;查询:qu<ufinterfaceroottag ="u8api " receiver =" u8"sender="001" verify ;弃审:unverify 。proc =" add">2、返回XML格式<u8apiservice >以上为查询返回XML格式,新增成功后,还会返回新增单据或档案的ID。<

9、; apiurl value =" U8API/PurchaseOrder/VoucherSave " />3、返回错误信息< apiParams >按传入顺序返回批量操作的执行结果,调用一次API的过程中假设出现错误,vparam name="VoucherState " value ="2" datatype 二"int " /> 影响其他调用的执行。vparam name=" CurDon" datatype =" IXMLD0MDocumen"

10、2>通用 SQL查询接口aram name=" UserMode" value ="0" datatype ="int " />由于EAI接口返回的数据格式是固定的标准格式,很有可能返回的数据中没有查询通用接口“EAI通用用户所需要的字段另外,对于U8中的业务数据,EAI接口也不是100%覆盖针对以上情况,EAIh提供了一个灵活/的数麗</ bo>刖中的接口,该接口支持向 EAI数据交换代理传递 SQL语句进行查询操作,可以查询当 U8帐套的所有数据,用户不用直接访问U8帐套库。查询返回的结果为.NETData

11、set 的XmL格式的数据0a调用m接口只需给EAI数据交换效劳代理传递特Request消息即可'</return Params >o</ u8apiservice ></ ufinterface >1、请求Request消息格式:其中m1框架局部的enoadiag="值必须固定为“ sqlex,proc的值用来标识Dataset的行节点,eff以e是任意字符串;"0内容局部eiver<sq" vOiue=“sql语句 />节点为SQL杳询语句roottag ="SQLEXE proc = “ de

12、partment2、应答Response消息格式其中,根根节点目=""pnco的值用来标识Dataset的行节点,数据<ufi nterface sen der ="u8" receiver ="001"交换格式般为表名。roottag =" SQLEX'Eproc 二"department "U8EAI提供了一整套完整的根本档案和单据的数据交换模版(在 request-roottag =" SQLEX'E*EAIXMLTemplate目录下),模板中定义了消息内容局部的格

13、式和字段。<NewDataSet>请求消息格式<department ><cDepCode>1</ cDepCode><ufpro<bDepEnd>true </ bDepEnd> nterfacesender= “ 001 receiver= “ u8 "。6卩“3口>采购 1 部</ cDepNam> c= “Adc dynamicdate二 “12/25/2021 </ department >< departme nt></departme nt &g

14、t;<department ></ufi nterface<cDepCode>2</ cDepCode>roottag二 “ department > 框架局部内容局部2)EAI 数<bDepEnd>true </bDepEnd>据交换am控制售信息部其中主要包括: biiitype系统填空;PNewDai,可空;框架局部包含数docid :唯一编3)e</dUfinter发送方> 填外部系统注册码(必填);4) receiver: 接收方,可填U8;5) roottag:档案或单据模版名,填档案或单据的唯一标

15、识,如:客商档案:customer,客商分类:customerclass,具体名称由总体确定,在数据交换中该名称要经常使用;6) proc :操作类型,分为“增删改查,对应填Add / Delete /Edit /Query (必 填),该字段导入操作,请填写 Add / Delete /Edit,导出操作,请填写Query;7) dynamicdate :业务账套登录日期,如果不填,那么取U8应用效劳器所在操作系统的当前日期,否那么取指定的登录日期进行业务账套登录;8) codeexcha nged :编码是否已转换,该字段在导入的时候使用,如果已转换即已和U8根底数据编码一致填 Y,将不会

16、通过对照表的转换,如果没有转换即和U8根底数据编码不一致填 N,将会自动通过对照表转换之后,进行相应的操作;9) exportneedexch :导出是否需要根据对照表进行转换,需要填“Y ,不需要填“ N',导出的时候使用;10) timestamp :时间戳标志,在导出数据时,导出此时间戳的所有以后的数据,假设 为空,那么导出只有过滤条件的数据。内容局部:指数据请求或响应消息中携带的档案或单据等业务数据,如:单据模板指ent >U8中各个根底档案和业务档案用xml存储时的格式。目前放在U8SofREAlXMfiL'Te晞ate中。模板的下部注释中有模板中各个节点的相应

17、说明,主要是供二次开爰人员和客护了解 U8单据格式使用。.在U8SO综TEAMiLSOmpies有各个模板的详细例子供参考<rank >1</ rank > <ma nager/><prop >管理兼技术 </ prop > </ department >回执消息格式从U8导出数据成功的回执就是业务数据。导入情况的回执如下所示:<返回字段描述:roottag = “ return docid = “ proc 二 “add >1)keyvitem据表y体行数据UCie号d,比"dsc销售订单表=体的存

18、货编码;cce2) succeed :成功标识:0:成功;非0:失败;3) dsc :失败的描述信息;4) docid :消息号;5) proc :操作码;6) u8key:成功后U8系统对应的关键字。凭证的add操作的Response格式比拟特殊,返回格式如下:<返fi回字段描述:roottag =" voucheraddreturn "docid ="" proc =" add" >1)<acc_pecounting_计期os, 4为期初u往h来明typ帐, ?1为期初待核银行帐,20为银"行帐科目调I

19、整前余额u8vo1u1fe为凭证及明细帐try id ="" succeed =" 0" dsc="凭2) vouch_type :凭证类别字3) vouch_id :凭证号(由系统分配凭证号,期初时可为空)4) row_id :行号(由系统赋值,期初时为1)5) u8vouch_id : U8 凭证号6) u8acc_period : U8凭证会计期间7) succeed :成功标识:0:成功;非0:失败;EAI 接口设置在使用 EAI 之前的第一步必须进行一个接口配置。检查有没有进行 EAI 接口配 置(“开始 -> “程序 ->

20、;“用友 U8V* -> “企业应用集成 (EAI) ->“EAI 接口设 置),如果没有那么需要进行配置。一般配置好后就不要动了,除非出现效劳器迁移 或重新安装的情况。根本设置需要指定U8效劳器、EAI登录身份验证、EAI数据源。如果进行数据交换的数 据包比拟大,那么需要点“自动设置 IIS 更改 IIS 的大数据限制。建议:EAI的登录身份验证和 U8业务帐套的身份验证分幵使用。在此将 EAI 登录用户配置成一个独立用户,不要与其他人使用的账号相同,如demo并赋予该用户适当的权限以进行 EAI 数据交换,如帐套主管,配置完后重启 IIS 。外部系统注册在“EAI接口设置中切换

21、到外部系统注册页签进行外部系统注册。可以注册多个外部系统注册码。在数据交换中,需要明确指定外部系统与U8的某个业务账套的对应关系,该对应关系由一个唯一的注册码标识。可以注册多个外部系统注册码。数据交换时需要 在请求消息的头指定一个注册码:<ufinterface sender="注册码"。数据导入 根底导入EAI的数据导入,传入的参数为根据XML模板制作的XML数据。比方,要导入部 门档案,传入的sXml如下:vxml vers ion 二""><ufi nterfacesen der=" 011" receiver

22、 =" u8" roottag =" departme nt"docid ="" proc =" Add" codeexchanged 二"n" exportneedexch =" N'pag in ate =" 0" display ="部门档案"family =""timestamp =" 0x000000000027B59C>< department >< code>0&l

23、t;/ code>< endflag >0</endflag >< name>基建中心 </name>< rank >1</ rank>< man ager/></ department >< department >< code>001</code>< endflag >1</endflag >< name>基建投资部</ name>< rank >2</ rank >< man

24、 ager/>< prop /></ department ></ ufinterface >导入时,单据头中的proc必须为Add/Edit/Delete 之一,并不是所有单据都支 持这三种操作。凭证导入由于凭证导入的特殊性,凭证导入时单据头中增加了renewproofno、import、newadd三个属性,含义如下:proc二 add1.1.1.1.2.1.3.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.ml。打幵此文件,修改根节点的proc属性值为“ add,即

25、ufinterfacesender= “ 001 receiver=“ u8 roottag二“ customer proc= “ add “ 示例详见客户档案.xml 。1、将转换后的客户档案使用 U8EAI接口导入U8用代码如下:2、将业务系统结算凭证转换为U8Dim oDom As ObjectSet oDom = CreateObject("")Dim xmlC ontentIf (xmlC onten t) The nDim xml As ObjectSet xml = CreateObject("")Call ("POST"

26、;,“ : u8appsrv/u8eai/ , False)Dim ret As Stri ngret ='todo:解析返回结果Dim retDom As ObjectSet retDom = CreateObject("")If (ret) Then"c:"ElseMsgBox retEnd IfEnd If记账凭证。凭证的模板为,在此文件中描述了凭证所包含的表头字段以及表体的分录字段、辅助核算字段等,对字段的数据类型、大小、取值规那么也做了规定。要将外部系统的销售发票格式转换成 U8凭证的格式,一般采用二次幵发编程的方式进行,也可以采用比拟

27、通用的XSLT进行转换。由于凭证内容应该是带客户辅助核算的应收款凭证,其中客户为前两个步骤导入U8的新客户。首先,通过应收款系统录入一张收款单:随后,制单生成凭证。接着,使用 EAI 将其导出,注意要用刚刚建的凭证号设置导出过滤条件。1. 登录EAI: “幵始-> “程序-> “用友ERPJ8'-> “企业应用集成EAI -> “企业应用集成;2. 左树“系统菜单-> “设置-> “系统注册,为 U8的某个帐套注册一个 数据交换编码,说明与外部系统的对应关系;3. 左树“系统菜单 ->“数据交换 -> “数据交换,先设置凭证过滤条件,然后

28、导出为一个XML文件:4. 设置凭证过滤条件:点“保存后“退出回到上一个界面,点“执行即可。假设导出的凭证文件为“简单凭证 .xml ,用编辑工具比方:记事本打 开此文件,将根节点修改一下:<ufinterface proc="add" enewproofno="y">根节点 ufinterface 的两个属性含义如下:proc="add" :表示操作类型, add 表示新增。ren ewproofno二"y":表示凭证导入 U8后是否重新编码,应该填 y。修改完后保存。这样,带辅助核算项的凭证数据准备

29、好后,随后就可以使用EAI数据交换接口将其导入 U8并记账。注:这里导出的凭证分录中就包含客户辅助核算项:<auxiliary_acco un ti ng>vitem n ame二"dept_id">1</item>vitem n ame二"cust_id">C007</item><auxiliary_acco un ti ng>4、调用U8EAI接口将凭证传递给 U8并记账调用EAI接口将凭证导入U8,以VB代码为例:Dim xml As ObjectSet xml = CreateObjec

30、t( “ )'创立 XMLHTT对象Call ( “ POST,“ :'处理返回结果<ufi nterface roottag二"voucheraddretur n" docid="" proc二"add"sen der="u8" receiver二"001" request-roottag二"voucher"<item acco untin g_period="1" voucher_type="收"vouc

31、her_id="9"entry_id="" succeed="0" dsc=" 凭证已成功保存"u8accounting_period二"1" u8voucher_id="19"/>v/ufi nterface凭证接口的返回格式如下:其中,succeed= “0表示成功保存;u8voucher_id= “ 19返回凭证号。第二种情况的幵发步骤:1、在U8EAI中配置客户档案编码映射。?登录EAI: “幵始-> “程序-> “用友ERPJ8'->

32、 “企业应用集成EAI-> “企业应用集成;? 左树“系统菜单 -> “设置 -> “系统注册,为 U 8的某个帐套注册一个 数据交换编码,建立与外部系统的对应关系;?左树“系统菜单-> “数据交换-> “数据映射,为U8客户档案与业务系统客户档案设置编码映射关系:2、将业务系统结算凭证转换为U 8记账凭证同第一种情况的第3步,主要目的是为了制作导入U8的凭证数据。另 外 要 注 意 凭 证 Xml 数 据 的 ufinterface 节 点 的 控 制 属 性 设置 :<ufinterface proc="add" enewproofn

33、o="y" codeexchanged="y">根节点 ufinterface 的三个属性含义如下:proc="add" :表示操作类型, add 表示新增。ren ewproofno二"y":表示凭证导入 U8后是否重新编码,应该填 y。codeexchanged="y" :表示辅助核算项进行编码转换,应该填 y。凭证数据准备好后,就可以调用 EAI 接口导入了。3、调用U8EAI接口将凭证传递给U8并记账,在此过程中自动进行客户档案编码转 换。调用方法详见第一种情况的步骤 4。以上通过一个完整的案例介绍如何通过EAI接口实现U8与外部业务系统进行数据交换的根本思路和做法

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1