U8V100产品培训_EAI.pptx
U8V10.0产品培训EAI用友软件股份有限公司U8平台技术部讲师:袁昌龙2011年2月8日课程提纲1产品简介1.产品结构2.产品特性3.应用领域2EAI接口配置1.基础设置2.外部系统注册课程提纲(续)3EAI数据交换1.导入导出设置2.数据映射3.数据导入4.数据导出4EAI数据交换计划1.数据交换计划设置2.数据交换计划执行课程提纲(续)5EAI二次开发1.接口规范2.接口调用3.通用SQL查询6EAI日志1.业务日志2.调试日志7常见问题与解决U8EAI产品简介U8U8企业应用集成(企业应用集成(EAIEAI)产品是)产品是U8ERPU8ERP与第三方系统与第三方系统(非(非U8U8)进行业务数据交换的平台级工具产品,是)进行业务数据交换的平台级工具产品,是U8ERPU8ERP统一的对外开放接口。统一的对外开放接口。EAIEAI产品包括一整套产品包括一整套U8ERPU8ERP的标准业务数据交换接口,的标准业务数据交换接口,这些接口涵盖基础档案、财务、供应链、生产制造、客这些接口涵盖基础档案、财务、供应链、生产制造、客户关系管理、户关系管理、HRHR等等ERPERP业务模块,具备统一的入口、一业务模块,具备统一的入口、一致的业务外观和相对完整的业务功能,能完成致的业务外观和相对完整的业务功能,能完成U8U8基础数基础数据、凭证、业务单据的导入导出及增、删、改等操作据、凭证、业务单据的导入导出及增、删、改等操作(少数不支持),是(少数不支持),是U8U8与外部系统进行应用集成和业务与外部系统进行应用集成和业务整合的基本资源。整合的基本资源。产品结构U8EAI产品结构产品结构EAI导入导出工具导入导出工具手动导入导出工具nXML导入导出nEXCEL导入导出n其他格式导入导出导入导出设置条件过滤规则增量规则导入导出目标地址定时计划导入导出任务计划规划设计器任务计划执行引擎U8ERP数据交换业务接口数据交换业务接口基本档案接口财务接口供应链接口生产制造接口其它接口EAI数据交换框架数据交换框架EAI数据交换代理服务-EAI Broker(支持多种协议)EAI数据交换目录EAI数据交换元数据数据映射规则EAI日志适配器框架专用适配器nEXCELnEDI通用适配器(XML)格式和数据适配规则EAI数据交换管理器数据交换管理器外部系统管理数据映射管理适配器管理EAI日志管理解决方案管理产品特性应用特性应用特性内容完整:内容完整:涵盖了涵盖了U8ERPU8ERP的大部分基本档案和业务单据(含凭证),是的大部分基本档案和业务单据(含凭证),是U8ERPU8ERP目前最完整、规范的对外接口。目前最完整、规范的对外接口。功能丰富:功能丰富:支持手动、自动、远程和本地接口等多种数据交换方式;支支持手动、自动、远程和本地接口等多种数据交换方式;支持数据映射、增量、过滤条件等多种数据交换规则。持数据映射、增量、过滤条件等多种数据交换规则。接口统一:接口统一:对外提供了一个统一的服务代理接口,由此接口负责所有数对外提供了一个统一的服务代理接口,由此接口负责所有数据交换请求(调用)的分发处理,使外部系统对据交换请求(调用)的分发处理,使外部系统对U8U8的接口依赖减小到的接口依赖减小到最少,降低的系统耦合性。最少,降低的系统耦合性。技术特性技术特性XMLXML数据交换格式:数据交换格式:XML XML提供了跨平台和低耦合特性,支持提供了跨平台和低耦合特性,支持COMCOM、.NET.NET、JAVAJAVA三种平台。三种平台。Request/ResponseRequest/Response数据交换模式:数据交换模式:数据交换的交互模式采用数据交换的交互模式采用Request/ResponseRequest/Response方式,并通过标准的方式,并通过标准的RequestRequest和和ResponseResponse消息来承载交消息来承载交互数据信息。互数据信息。支持本地和支持本地和HTTPHTTP远程调用:远程调用:本地调用采用本地调用采用COMCOM方式;远程调用采用方式;远程调用采用XMLHTTP POSTXMLHTTP POST的方式。的方式。应用领域企业内部第三方业务系统与企业内部第三方业务系统与U8U8的整合的整合财务整合:凭证上传财务整合:凭证上传典型案例:典型案例:U8U8网络分销系统通过网络分销系统通过U8EAIU8EAI接口向接口向U8U8财务系统上传结算凭财务系统上传结算凭证。证。业务整合:单据协同业务整合:单据协同典型案例:典型案例:U8U8连锁零售系统通过连锁零售系统通过U8EAIU8EAI接口与接口与U8U8销售和库存系统进行销售和库存系统进行业务协同。包括:零售部门下载公司业务协同。包括:零售部门下载公司U8U8系统中的商品、客户档案、库系统中的商品、客户档案、库存信息等;往存信息等;往U8U8系统上传每日结算的零售日报;库存不够了往系统上传每日结算的零售日报;库存不够了往U8U8发调发调拨申请单进行要货调拨等等业务。拨申请单进行要货调拨等等业务。企业之间的企业之间的B2BB2B业务协作业务协作供应链协同供应链协同典型案例:供应商远程接收订单。伙伴客户的采购系统通过供应商典型案例:供应商远程接收订单。伙伴客户的采购系统通过供应商U8EAIU8EAI远程接口往供应商远程接口往供应商U8U8销售系统提交订单。销售系统提交订单。U8EAI接口配置U8EAI接口配置包括两项内容:EAI基本设置、外部系统注册。基本设置基本设置目的:指定目的:指定EAIEAI默认登录信息,包括指定默认登录信息,包括指定U8U8应用服务器名或应用服务器名或IPIP、EAIEAI登录身份验证、登录身份验证、EAIEAI数据源。数据源。如果进行数据交换的数据包比较大,则需要点如果进行数据交换的数据包比较大,则需要点“自动设置自动设置IISIIS”更改更改IISIIS的最大数据上传或下载限制。的最大数据上传或下载限制。外部系统注册外部系统注册目的:为了建立外部系统与目的:为了建立外部系统与U8U8业务帐套之间的数据交换关系。在数据业务帐套之间的数据交换关系。在数据交换中,需要明确指定外部系统与交换中,需要明确指定外部系统与U8U8某个业务账套的对应关系,该对某个业务账套的对应关系,该对应关系由一个唯一的注册码标识。应关系由一个唯一的注册码标识。数据交换时需要在请求消息的头部指定一个注册码:数据交换时需要在请求消息的头部指定一个注册码:ufinterface ,表示请求方需要与该注册码对应的,表示请求方需要与该注册码对应的U8U8业务业务帐套进行数据交换。帐套进行数据交换。U8EAI接口配置基本设置“开始开始”-“-“程序程序”-“-“用友用友ERP-U8V10.0”-“ERP-U8V10.0”-“企业应用企业应用集成集成(EAI)”-“EAI(EAI)”-“EAI接口设置接口设置”U8EAI接口配置外部系统注册在在“EAI“EAI接口设置接口设置”中切换到外部系统注册页签进行外中切换到外部系统注册页签进行外部系统注册。部系统注册。可以注册多个外部系统注册码。可以注册多个外部系统注册码。U8EAI接口配置外部系统注册在进行外部系统注册时,还在进行外部系统注册时,还可以同时指定可以同时指定U8U8业务帐套业务帐套的连接身份,默认的连接身份,默认“使用使用EAIEAI的连接身份的连接身份”。U8EAI数据交换导入导出设置在数据交换之前,在数据交换之前,用户可设置每个具体项目的导入或用户可设置每个具体项目的导入或导出文件的存放路径及导出数据的过滤条件,在以后导出文件的存放路径及导出数据的过滤条件,在以后的数据交换时系统按照预设的条件进行操作。的数据交换时系统按照预设的条件进行操作。U8EAI数据交换数据映射在进行数据交换时,外部系统与内部系统的基础档案在进行数据交换时,外部系统与内部系统的基础档案可能存在不一致的情况,这时需要建立外部数据、内可能存在不一致的情况,这时需要建立外部数据、内部数据之间的对应关系。部数据之间的对应关系。U8EAI数据交换数据导入数据导入功能:将档案或单据数据数据导入功能:将档案或单据数据(可批量可批量)导入到外导入到外部系统注册码对应的部系统注册码对应的U8U8业务帐套中,同时支持多种导业务帐套中,同时支持多种导入文件格式,如常见的入文件格式,如常见的XMLXML和和ExcelExcel格式。格式。U8EAI数据交换数据导出数据导出功能:根据所选外部系统注册码,导出对应数据导出功能:根据所选外部系统注册码,导出对应U8U8业务帐套中保存的一个或多个档案或单据项目的全业务帐套中保存的一个或多个档案或单据项目的全部或部分数据。部或部分数据。U8EAI数据交换计划应用场景实现在无人值守的情况下,实现在无人值守的情况下,U8EAIU8EAI能按预先设置的计划能按预先设置的计划自动的进行数据交换。自动的进行数据交换。典型应用场景:多个典型应用场景:多个U8U8业务帐套之间的档案或单据数业务帐套之间的档案或单据数据同步。据同步。操作步骤首先进行数据交换计划的参数设置。一个注册编码可首先进行数据交换计划的参数设置。一个注册编码可以设置一个定时计划,一个定时计划中可以设置多个以设置一个定时计划,一个定时计划中可以设置多个自动导入导出项目的执行规则,包括:执行频率、执自动导入导出项目的执行规则,包括:执行频率、执行期间和是否按照数据映射关系执行。行期间和是否按照数据映射关系执行。然后执行数据交换计划。单击然后执行数据交换计划。单击【数据交换计划执行数据交换计划执行】菜单,当到达预置的计划时间,菜单,当到达预置的计划时间,U8EAIU8EAI就会自动执行已就会自动执行已定义的数据交换任务。定义的数据交换任务。U8EAI数据交换计划数据交换计划设置指定数据交换执行的时间和频率,并设置导入导出的指定数据交换执行的时间和频率,并设置导入导出的条件和路径以及是否按照数据映射关系执行。条件和路径以及是否按照数据映射关系执行。U8EAI数据交换计划数据交换计划执行单击单击【数据交换计划执行数据交换计划执行】菜单,在菜单,在windowswindows的状态栏的状态栏中显示一小图标中显示一小图标 ,即,即【用友用友U8EAIU8EAI计划监控程序计划监控程序】。U8EAI二次开发U8应用服务器外部系统二次开发工作二次开发工作EAI 数据交换COM接口IIS调用EAI接口数据转换或处理本地调用远程调用U8EAI接口规范接口定义本地本地COMCOM接口接口类库:类库:U8Distribute.DLLU8Distribute.DLLProgIDProgID:U8Distribute.iDistributeU8Distribute.iDistribute方法:方法:String Process(String RequestXml)String Process(String RequestXml)参数:数据交换参数:数据交换请求请求消息,详见数据交换格式定义。消息,详见数据交换格式定义。返回:数据交换响应消息,详见数据交换格式定义。返回:数据交换响应消息,详见数据交换格式定义。远程远程HTTPHTTP接口接口EAIEAI远程数据交换采用远程数据交换采用Http POSTHttp POST的方式。的方式。访问网址:访问网址:http:/U8http:/U8应用服务器应用服务器IPIP或机器名或机器名/U8EAI/import.asp/U8EAI/import.aspPOSTPOST上传:数据交换请求消息与本地调用一样。上传:数据交换请求消息与本地调用一样。ResponseResponse接收:数据交换响应消息与本地调用一样。接收:数据交换响应消息与本地调用一样。U8EAI接口规范数据交换格式总体格式总体格式EAIEAI数据交换消息格式分为框架和内容两部分:数据交换消息格式分为框架和内容两部分:ufinterface sender=dynamicdate=“12/25/2010”框架部分框架部分 内容部分内容部分 框架部分包含数据交换的控制信息,其中:框架部分包含数据交换的控制信息,其中:sender:发送方,填外部系统注册码receiver:接收方,填u8即可roottag:档案或单据,填档案或单据的唯一标识proc:操作类型,分为“增删改查”,对应填add/delete/edit/querydynamicdate:业务账套登录日期,如果不填,则取U8应用服务器所在操作系统的当前日期U8EAI接口规范数据交换格式总体格式总体格式内容部分:指数据请求或响应消息中携带的档案或单据等业务数内容部分:指数据请求或响应消息中携带的档案或单据等业务数据,如:据,如:U8EAIU8EAI提供了一整套完整的基本档案和单据的数据交换模版(在提供了一整套完整的基本档案和单据的数据交换模版(在EAIXMLTemplateEAIXMLTemplate目录下),模板中定义了消息内容部分的格式目录下),模板中定义了消息内容部分的格式和字段。和字段。10综合处1管理兼技术U8EAI接口规范数据交换格式Request-Request-请求消息格式请求消息格式对于对于add/editadd/edit操作,操作,RequestRequest消息的内容就是档案和单据内容,举例消息的内容就是档案和单据内容,举例如下,具体格式请详见如下,具体格式请详见EAIEAI提供的数据模板。提供的数据模板。0011基建投资部22011-01-26部常见问题与解决数据交换格式条件过滤条件过滤对于对于delete/querydelete/query操作,操作,Request Request消息的内容包含过滤条件。查询消息的内容包含过滤条件。查询单条数据的时候往往需要带上条件,可以采用单条数据的时候往往需要带上条件,可以采用U8EAIU8EAI通用通用SQLSQL查查询,也可以采用询,也可以采用U8EAIU8EAI标准的条件查询格式,如:标准的条件查询格式,如:注意注意:field:field节点中的节点中的namename过滤字段名需和数据库中字段名一致。过滤字段名需和数据库中字段名一致。U8EAI接口规范数据交换格式Response-Response-响应消息格式响应消息格式ResponseResponse消息是消息是EAIEAI接口执行接口执行RequestRequest消息之后的返回结果,不同的操消息之后的返回结果,不同的操作有所不同:作有所不同:对于对于queryquery操作,操作,返回的结果就是查询的数据,格式详见返回的结果就是查询的数据,格式详见EAIEAI数据模数据模板。板。对于对于add/edit/deleteadd/edit/delete操作,返回的结果包括单据体每一行数据的详细操作,返回的结果包括单据体每一行数据的详细执行结果执行结果(由由ItemItem节点描述节点描述),如下:,如下:U8EAI接口规范数据交换格式Response-Response-响应消息格式响应消息格式凭证的凭证的addadd操作的操作的ResponseResponse格式比较特殊,如下:格式比较特殊,如下:返回字段含义如下:返回字段含义如下:accounting_period:会计期间,0为期初往来明细帐,21为期初待核银行帐,20为银行帐科目调整前余额,1-12为凭证及明细帐;voucher_type:凭证类别字;voucher_id:外部系统原始凭证号(期初时可为空);u8voucher_id:U8生成的凭证号;u8accounting_period:U8凭证会计期间succeed:是否成功,0为成功,非零为失败。U8EAI接口调用本地COM调用VBVB代码代码:Dim eaiBroker As Object Set eaiBroker=CreateObject(“U8Distribute.iDistribute”)创建EAI服务代理接口对象 Dim responseXml As String responseXml=eaiBroker.Process(requestXml)调用EAI服务代理的数据交换方法Process,传入 Request交换消息,并获取EAI返回的Response消息。.处理返回结果处理返回结果 Set eaiBroker=Nothing 释放EAI服务代理接口对象.NET.NET代码代码:/引用U8SOFTEAIU8Distribute.dll U8Distribute.iDistributeClass eaiBroker=new U8Distribute.iDistributeClass();/创建EAI服务代理接口对象 String responseXml=eaiBroker.Process(requestXml);/调用EAI服务代理的数据交换方法Process,传入 /Request交换消息,并获取EAI返回的Response消息。./处理返回结果 System.Runtime.InteropServices.Marshal.FinalReleaseComObject(eaiBroker);/释放EAI服务代理接口对象U8EAI接口调用本地COM调用JAVAJAVA代码代码:采用JNIJNI、JCOMJCOM、JACOBJACOB技术调用EAIEAI服务代理COMCOM组件,下面以JACOBJACOB为例:import .Dispatch;import .Variant;class Test public static void main(String args)/创建EAI服务代理接口对象 Dispatch eaiBroker =new Dispatch(U8Distribute.iDistribute);/调用EAI服务代理的数据交换方法Process,传入Request交换消息,并获取EAI /返回的Response消息。String responseXml=Dispatch.call(eaiBroker,Process,new Variant(requestXml);./处理返回结果 U8EAI接口调用Http远程调用VBVB代码代码:Dim xmlhttp As Object Set xmlhttp=CreateObject(“MSXML2.XMLHTTP”)创建XMLHTTP对象 Call xmlhttp.open(“POST”,“http:/u8appsrv/u8eai/import.asp”,False)使用XMLHTTP对象打开网络连接 xmlhttp.send requestXml 发送Request消息 Dim responseXml As String responseXml=xmlhttp.responseText 获取返回Response消息.处理返回结果.NET.NET代码代码:/引用U8SOFTInteropInterop.MSXML2.dll MSXML2.XMLHTTPClass xmlHttp=new MSXML2.XMLHTTPClass();/创建XMLHTTP对象 xmlHttp.open(“POST”,“http:/u8appsrv/u8eai/import.asp”,false,null,null);/打开网络连接 xmlHttp.send(dom.OuterXml);/发送Request消息 String responseXml=xmlHttp.responseText;/获取返回Response消息 ./处理返回结果 System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xmlHttp);/COM释放注意:注意:URL URL:http:/u8appsrv/u8eai/import.asphttp:/u8appsrv/u8eai/import.asp 中的中的u8appsrvu8appsrv应填应填U8U8应用服务器应用服务器IPIP或机器名。或机器名。U8EAI接口调用U8EAI接口调用调用U8API接口满足现有满足现有U8EAIU8EAI做不到的业务单据操作,如销售报做不到的业务单据操作,如销售报价单增删改,以及业务操作,如审核、弃审,将现价单增删改,以及业务操作,如审核、弃审,将现有有U8APIU8API的功能整合进的功能整合进U8EAIU8EAI,将两者糅合在一起,将两者糅合在一起,形成功能互补,为企业应用集成和二次开发提供更形成功能互补,为企业应用集成和二次开发提供更强大的支持。强大的支持。通过参照通过参照U8APIU8API请求请求XMLXML模板,填入相应的模板,填入相应的APIAPI参参数值,即可实现通过数值,即可实现通过U8EAIU8EAI统一接口调用统一接口调用U8APIU8API服服务。务。详细内容请参见文档详细内容请参见文档 U8API U8API和和U8EAIU8EAI整合整合。U8EAI接口调用调用U8API接口请求请求XMLXML格式格式其中,其中,procproc填入操作类型,填入操作类型,添加:添加:addadd;编辑:;编辑:editedit;删除:;删除:deletedelete;查询查询:queryquery;审核:;审核:verifyverify;弃审:;弃审:unverifyunverify。U8EAI接口调用调用U8API接口返回返回XMLXML格式格式以上为查询返回以上为查询返回XMLXML格式,新增成功后,还会返回格式,新增成功后,还会返回新增单据或档案的新增单据或档案的IDID。U8EAI接口调用调用U8API接口返回错误信息返回错误信息按传入顺序返回批量操作的执行结果,调用一次按传入顺序返回批量操作的执行结果,调用一次APIAPI的过程中的过程中若出现错误,不影响其他调用的执行。若出现错误,不影响其他调用的执行。通用SQL查询接口由于由于EAIEAI接口返回的数据格式是固定的标准格式,很有接口返回的数据格式是固定的标准格式,很有可能返回的数据中没有用户所需要的字段;另外,对于可能返回的数据中没有用户所需要的字段;另外,对于U8U8中的业务数据,中的业务数据,EAIEAI接口也不是接口也不是100%100%覆盖的。覆盖的。针对以上情况,针对以上情况,EAIEAI提供了一个灵活的数据查询通用接提供了一个灵活的数据查询通用接口口-EAI-EAI通用通用SQLSQL查询接口,该接口支持向查询接口,该接口支持向EAIEAI数据交换数据交换代理传递代理传递SQLSQL语句进行查询操作,可以查询当前语句进行查询操作,可以查询当前U8U8帐套帐套的所有数据,用户不用直接访问的所有数据,用户不用直接访问U8U8帐套库。查询返回帐套库。查询返回的结果为的结果为.NET.NET中的中的DatasetDataset的的XMLXML格式的数据。调用该格式的数据。调用该接口只需给接口只需给EAIEAI数据交换服务代理传递特殊的数据交换服务代理传递特殊的RequestRequest消消息即可。息即可。通用SQL查询接口Request消息格式其中框架部分的其中框架部分的roottagroottag值必须固定为值必须固定为“SQLEXE”SQLEXE”,procproc的值用来标识的值用来标识DatasetDataset的行节点,可以是任意的行节点,可以是任意字符串。字符串。内容部分内容部分sql value=“”/节点为节点为SQLSQL查查询语句。询语句。通用SQL查询接口Response消息格式其中,根节点的其中,根节点的procproc的值用来标识的值用来标识DatasetDataset的行节点,一般为表名。的行节点,一般为表名。1true采购1部2true销售1部U8EAI日志日志作用U8EAIU8EAI日志主要用来记录日志主要用来记录EAIEAI日常数据交换业务的日常数据交换业务的执行过程和结果,用来监视数据交换服务的运行状执行过程和结果,用来监视数据交换服务的运行状态,以便查看最终执行结果,并进行排错。态,以便查看最终执行结果,并进行排错。日志分类U8EAIU8EAI日志分为两类:业务日志和调试日志日志分为两类:业务日志和调试日志业务日志记录业务日志记录EAIEAI数据交换执行结果,主要用来监数据交换执行结果,主要用来监视视EAIEAI日常数据交换业务。日常数据交换业务。调试日志记录调试日志记录EAIEAI数据交换内部执行过程和步骤,数据交换内部执行过程和步骤,主要用来跟踪和调试无法通过业务日志反映的系统主要用来跟踪和调试无法通过业务日志反映的系统内部错误。内部错误。U8EAI业务日志日志设置“开始开始程序程序用友用友ERP-U8V10.0ERP-U8V10.0企业应用集成企业应用集成(EAI)U8EAI(EAI)U8EAI接口设接口设置置”进入配置界面,切换到第三个页签进入配置界面,切换到第三个页签“日志设置日志设置”,可以启用和关闭日志,可以启用和关闭日志,并可以配置日志清除策略。并可以配置日志清除策略。默认的日志清除策略是:日志清除周期为默认的日志清除策略是:日志清除周期为1 1周。用户可以根据实际数据交换业周。用户可以根据实际数据交换业务量的情况修改此策略。务量的情况修改此策略。U8EAI业务日志日志查看查看功能路径查看功能路径从企业门户功能菜单或直接登录从企业门户功能菜单或直接登录“企业应用集成企业应用集成”,可以打开日志查看界面,查看,可以打开日志查看界面,查看业务日志项和日志内容。具体功能菜单为:企业应用集成业务日志项和日志内容。具体功能菜单为:企业应用集成数据交换日志数据交换日志查看查看数据交换日志。数据交换日志。U8EAI业务日志日志查看查看界面查看界面日志查看界面总体分为左树日志分类目录和右边的日志项列表。日志的分类体系采日志查看界面总体分为左树日志分类目录和右边的日志项列表。日志的分类体系采用用U8U8的产品模块结构进行多级分类,末级为数据交换业务数据(档案和单据);可的产品模块结构进行多级分类,末级为数据交换业务数据(档案和单据);可以区分不同外部系统与以区分不同外部系统与U8U8进行数据交换的日志。进行数据交换的日志。U8EAI业务日志日志查看日志内容日志内容每进行一次数据交换会产生一条日志项。日志的主要内容包括:每进行一次数据交换会产生一条日志项。日志的主要内容包括:数据交换时间、数数据交换时间、数据(单据或档案)类型、操作类型(增删改)、数据交换状态(成功据(单据或档案)类型、操作类型(增删改)、数据交换状态(成功/失败)、最失败)、最后执行任务后执行任务信息。信息。U8EAI业务日志日志查看日志详细信息日志详细信息双击日志项可以查看日志详细信息。对于导入操作,日志详细信息显示如下界面:双击日志项可以查看日志详细信息。对于导入操作,日志详细信息显示如下界面:对于导出操作,日志详细信息显示如下界面:对于导出操作,日志详细信息显示如下界面:U8EAI调试日志日志启用EAIEAI调试日志的启用可以通过手动修改配置文件来设置,调试日志配置文件的调试日志的启用可以通过手动修改配置文件来设置,调试日志配置文件的路径为:路径为:%U8SOFT%EAI ConfigLogConfig.ini%U8SOFT%EAI ConfigLogConfig.ini。日志文件中有三行内容:。日志文件中有三行内容:重要提示:修改日志开关后需要重启重要提示:修改日志开关后需要重启IISIIS。U8EAI调试日志日志查看EAIEAI调试日志以文件的方式存储,日志文件系统根目录为:调试日志以文件的方式存储,日志文件系统根目录为:%U8SOFT%EAILogs%U8SOFT%EAILogs,在此目录下,在此目录下,EAIEAI会按会按“外部系统注册码外部系统注册码单据类单据类型型日志项日志项”的层次结构对日志进行分类存储:的层次结构对日志进行分类存储:每一次数据交换会生成一个调试日志项目录,日志项目录名包含日期时间后每一次数据交换会生成一个调试日志项目录,日志项目录名包含日期时间后缀,目录中包含三个文件:缀,目录中包含三个文件:Request.xmlRequest.xml:记录数据交换的请求消息;:记录数据交换的请求消息;Response.xmlResponse.xml:记录数据交换的响应消息(即返回结果);:记录数据交换的响应消息(即返回结果);EaiDistributeLog.txtEaiDistributeLog.txt:记录数据交换详细执行过程和步骤。:记录数据交换详细执行过程和步骤。常见问题与解决IIS问题U8EAIU8EAI返回错误:返回错误:“EAIEAI数据源数据源(default)*(default)*连接失败,原因:拒绝访问连接失败,原因:拒绝访问”或或“未设置对未设置对象变量或象变量或With blockWith block变量,变量,ErrNumber:91 Source U8LoginErrNumber:91 Source U8Login”问题原因:用户权限丢失。问题原因:用户权限丢失。解决:将解决:将IUSR_*IUSR_*(计算机名)和(计算机名)和 ASPNETASPNET用户用户添添加至加至AdministratorsAdministrators组。组。常见问题与解决通用SQL查询问题U8EAIU8EAI返回错误:返回错误:调用业务组件调用业务组件UFIDA.U8.IEAISqlExecutor.SQLExecutorUFIDA.U8.IEAISqlExecutor.SQLExecutor发生发生异常,原因:执行查询出错:无法打开登录异常,原因:执行查询出错:无法打开登录UFDATA_001_2010UFDATA_001_2010中请求的数据库。登录失败。中请求的数据库。登录失败。(错错误号:误号:-2146233088)-2146233088)调用业务组件调用业务组件UFIDA.U8.IEAISqlExecutor.SQLExecutorUFIDA.U8.IEAISqlExecutor.SQLExecutor发生发生异常,原因:创建只读用户出错异常,原因:创建只读用户出错:No error message available,:No error message available,result code:DB_E_ERRORSOCCURRED(0 x80040E21).(result code:DB_E_ERRORSOCCURRED(0 x80040E21).(错误错误号:号:-2146233088)-2146233088)问题原因:创建数据库用户问题原因:创建数据库用户“readerreader”或通过或通过“readerreader”用户查用户查询帐套数据库无权限。询帐套数据库无权限。解决:手动在解决:手动在SQL SERVERSQL SERVER中创建登录用户中创建登录用户“readerreader”,并将,并将登录用户登录用户“readerreader”授予授予“db_datareaderdb_datareader”角色,并赋予帐套库角色,并赋予帐套库(如上(如上“UFDATA_001_201UFDATA_001_2010 0”)“SelectSelect”权限。权限。常见问题与解决大数据量问题在实际的企业环境中,一般在实际的企业环境中,一般U8U8都具有较大规模的数都具有较大规模的数据量,在这样的环境中调用据量,在这样的环境中调用U8EAIU8EAI进行与第三方系进行与第三方系统的企业应用集成,需要注意统的企业应用集成,需要注意:如果确认数据量很大,请尽量不要使用如果确认数据量很大,请尽量不要使用U8EAIU8EAI一次导出(下载)一次导出(下载)全部全部U8U8档案或单据,不然一次导出的过程相当漫长耗时且容易出档案或单据,不然一次导出的过程相当漫长耗时且容易出错,建议采用分页查询、条件过滤的解决方案。目前错,建议采用分页查询、条件过滤的解决方案。目前U8EAIU8EAI承受承受的一次导出最大极限为的一次导出最大极限为5757万条。万条。对数据导入(上传)也是同样的道理,不要一次要求实时导入几对数据导入(上传)也是同样的道理,不要一次要求实时导入几万条数据,建议采用分批导入的方式解决,即一次导入万条数据,建议采用分批导入的方式解决,即一次导入n n条条(n10000)(n10000)分多次导入。分多次导入。对数据交换量大的情况,如前所述还需要点对数据交换量大的情况,如前所述还需要点“自动自动设置设置IISIIS”更改更改IISIIS的最大上传或下载限制,或手动更的最大上传或下载限制,或手动更改改IISIIS配置文件配置文件(%WINDOWS%system32inetsrvMetaBase.xml)(%WINDOWS%system32inetsrvMetaBase.xml)AspMaxRequestEntityAllowedAspMaxRequestEntityAllowed和和AspBufferingLimitAspBufferingLimit的值。的值。常见问题与解决分页查询在在10.010.0版本中,为解决版本中,为解决U8EAIU8EAI和零售之间大数据量传和零售之间大数据量传输问题,在输问题,在U8EAIU8EAI标准产品中增加标准产品中增加“基础档案基础档案”的的分页查询功能。对二次开发而言,可以采用分页查分页查询功能。对二次开发而言,可以采用分页查询询U8U8基础档案,其具体方法如下:基础档案,其具体方法如下:对于第一次请求对于第一次请求XMLXML(模板可以参看(模板可以参看U8SOFTEAIXMLTemplateU8SOFTEAIXMLTemplate)可以和以前一样,也可以在头结点加一个可以和以前一样,也可以在头结点加一个MaxDataItems=MaxDataItems=数据数据量量属性以指定一次传输的最大数据大小,如果不指定则为默认属性以指定一次传输的最大数据大小,如果不指定则为默认的一次最大传输大小(保守为的一次最大传输大小(保守为2 2万条,其配置文件路径:万条,其配置文件路径:U8SOFTEAI ConfigLoginLan.xmlU8SOFTEAI ConfigLoginLan.xml,配置节点:,配置节点:maxDataItemsmaxDataItems)。)。如果计算返回的数据总数超过一页大小,则会在返回的如果计算返回的数据总数超过一页大小,则会在返回的XMLXML头结头结点上添加点上添加needpaginate=needpaginate=y y(表示需要分页)、(表示需要分页)、totalpagenum=totalpagenum=总页数总页数,并返回第一页数据,以后从第二次开始在请求的,并返回第一页数据,以后从第二次开始在请求的XMLXML头结点上给出头结点上给出needpage=needpage=页数页数(表示需要哪一页数据),(表示需要哪一页数据),按照页顺序请求即可返回全部数据。按照页顺序请求即可返回全部数据。联系方式U8平台技术部袁昌龙QQ:448227567TEL:010-62435311MAIL: