




免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EAI问题与解决思路常见问题一、 EAI接口配置问题在使用EAI之前,务必设置好EAI接口配置,包括:指定U8服务器(服务端默认为本机localhost,客户端可任意指定)、EAI默认登录身份验证、EAI数据源和外部系统注册,具体设置方法按F1参见“U8EAI帮助文档”,在此不赘述。基础常见的问题有很重要,有很多问题都是出现在U8和另一方对接的接口配置上,不是U8的接口没有配置好,就是另一方的接口没有配置好。:1. “登录信息不全”这是由于用户没有正确设置EAI的默认登录有的不知道要配置,或者是知道配置时已经先使用接口了,所以,必先配置正确后使用!(单击“确定”是否弹出“成功”提示);或者在设置默认登录之前,EAI的接口已经在使用,如零售和CRM中,由于这些应用都是基于EAI的远程接口,这时设置完后,要使配置生效,还需要重启IIS。2. “不存在的年度”或“登录日期不在有效的会计期间”图 1图 2这一类问题出现的原因是使用当前操作系统时间登录指定EAI数据源帐套不合法。由于业务单据的制单日期都是取当前U8的登录日期,故EAI在配置默认登陆时候指定固定日期的方式是不可取的,需要进行改进。方案如下:EAI的默认登陆支持固定日期、动态日期、当前日期三种类型1、设置固定登录日期 利用LoginLan.xml文件中的date字段设置固定登录日期,一般在访问往年帐套时手工设置。2、设置动态登录日期 动态登录日期在Request消息的头部指定:在ufinterface头设置dynamicdate属性。3、设置当前日期 如果没有上述两种日期设置,则默认取当前系统日期。优先级:动态登录日期固定登录日期当前日期。出于历史原因,EAI的所有配置信息存储在Meta库,外部系统注册码和日志信息存储于帐套库,因此,在EAI基本设置中需要指定这些信息的存储地EAI数据源(这与外部系统注册中为数据交换指定的交换对象或目标业务帐套完全是两个概念EAI的默认登陆配置并不是指定外部系统与U8的对应帐套,而是EAI产品自身的登录,这里有两个概念需要说明:1、 EAI默认登陆EAI产品的所有静态配置信息:外部系统注册码、数据映射、数据接口定义、内部API分发表、任务计划配置、导出条件和规则配置等信息都存放在U8的账套数据库(UFDATA)和与帐套库关联的元数据库(UFMeta)中,在使用EAI产品(无论是工具还是接口)时,都需要去登录EAI所在的帐套库取配置信息,所以需要默认登陆配置。2、 业务帐套登录业务帐套是指在EAI中配置的U8与外部系统进行数据交换的账套(即EAI的外部系统注册码),可以配置多个这样的外部系统与U8帐套的对应关系。在运行时,EAI会根据指定的外部系统注册码来隐藏登录某个U8业务帐套。所以,对于您说的分销与U8的多帐套的应用模式,U8EAI是完全支持的,至于默认登陆这一块,确实容易引起误会,但由于历史原因,这一块要改进的话影响范围和工作量都比较大。其实我们也在考虑在后续版本中将EAI的配置信息重U8业务帐套中剥离出来,并将针对U8业务帐套的登录身份验证加到EAI的外部系统注册码配置中, 但这同时涉及EAI的应用模式的调整,)。由于U810.0之前版本存在“年结”,为了安全避免随意设置EAI数据源登录时间带来的风险(误登录往年帐套),统一取当前操作系统的时间为EAI数据源的默认登录时间(界面上没有设置登录时间的地方)。万事皆有可能,客户可能尚未年结至当前年度,还需要做往年帐,这时设置EAI数据源后就出现如上图所示的错误提示。知道原因,修改当前操作系统的时间为EAI数据源登录的有效时间即可解决。3. “注册号不正确”很明显这是没有正确设置EAI的注册码,或者交换文件中携带的注册码(头结点中sender属性的值)与EAI的当前配置不匹配,可能是用户根本没有设置或者修改或者删除了交换文件中指定的注册号,这时检查“外部系统注册”页签下应该不存在“系统编码”为该注册号的条目,此时根据实际情况,分析是否需要单击右下角“添加”按钮新增该注册号,或者修改交换文件中携带的注册码为已注册的注册码。在零售分销中一个EAI注册码对应一个零售机构,要保证两边的持久匹配,需要在改变一边配置的时候,千万不要忘记同步更改另一边的配置。如果出现此类由注册号不匹配引起的问题时,可以首先检查下EAI注册码是否真正和零售机构一一匹配。除以上基础的情况外,还有一些也较常见,但比较“疑难”的问题:4. “业务帐套登录失败”“业务帐套dfdf001登录失败,原因:选定的数据源不存在,请重新选择数据源!”问题原因: 001帐套已存在,EAI确实如前所述已注册编码为001的外部系统,而且交换文件中携带的注册码也为001,如下图3所示:图 3解决: 双击修改001注册条目,发现注册的U8帐套找不到,如下图4所示。因此,重新在下拉框中选择“合法的”U8帐套即可解决。图 45. “EAI数据源登录失败”1) “EAI数据源(default)*连接失败,原因:拒绝访问” 或“未设置对象变量或With block变量,ErrNumber:91 Source U8Login” 问题原因:用户读取注册表权限丢失。解决:将IUSR_*(计算机名)和 ASPNET用户加至Administrators组。具体操作:如下图5、6、7。图 5图 6图 72) EAI数据源ERPX3650M2005连接失败,原因:该帐号已经通过应用服务器localhost在客户端ERPX3650M2登录,请确认帐户安全;您本次登录将自动清退上一次登录!问题原因:U8设置了“不允许同一操作员在不同客户端同时登录”的安全策略890版本开始有安全策略这一说。解决:1.在“系统管理系统安全策略”中将“不允许同一操作员在不同客户端同时登录”钩去掉(不建议);2.在“系统管理系统安全策略”中设置EAI默认登录用户为例外的“安全登录用户”(建议),如下图8:图 8二、 IIS问题 EAI接口不占用许可,工具占用许可。支持本地COM调用和Internet远程调用。从使用上看,EAI远程接口应用较多,如零售分销、CRM、MERP等,这些应用系统均通过HTTP Post调用EAI的远程服务接口。而EAI的远程服务则宿主于IIS之中,从很大程度上依赖于IIS这个运行环境,因此与IIS相关的问题最多,其中大部分问题都是IIS本身的安装和配置问题。前述“EAI数据源登录失败”,就是一个非常常见的EAI远程IIS问题。该问题在Windows 2003环境下,是微软的一个Bug,故而频繁出现。以下介绍几个最常见的IIS问题:1. IIS上传下载最大限制当EAI导出的xml超出IIS最大限制时,EAI返回的不是xml,而是IIS的报错页面,如下:“ Microsoft VBScript ? ? 800a01ad ActiveX ?U8Distribute.iDistribute /U8eai/import.asp? 30/”原因:Windows2003环境下,ASP不能处理数据缓存大于4M的限制。解决:单击“U8EAI接口配置”中“EAI基本设置”页签的“自动设置IIS”按钮更改IIS的最大数据上传或下载限制。2. (401) 未经授权或无此查看权限原因:IUSR_XXX(机器名)用户被停用或者无权限。解决:Windows2003下将IUSR_*(计算机名)和 ASPNET用户加至Administrators组, 2003之后的操作系统,将IIS身份验证的匿名用户改为Administrator,并启用父路径。3. HTTP 500内部服务器错误查看IIS日志,默认路径:C:WINDOWSsystem32LogFilesW3SVC1,按修改日期降序排序,查看最新的log文件,如果发现,里面有ActiveX_component_cant_create_object:_U8Common.iCommon,说明EAI核心组件U8SOFTEAIU8Common.dll未注册或被注销,使用Regsvr32重新注册即可解决。4. (503)Server unavailable如果是Windows2003,需要将应用程序池的用户改为Iwam_XXX(机器名),将默认web 站点的用户改为IUSR_XXX(机器名),同时将两者加入到管理员组中。5. 80端口被占用例如,查询订单接口报错:另一程序正在使用此文件,进程无法访问。问题原因:IIS出现“另一个程序正在使用此文件,进程无法访问。”错误提示,说明U8应用服务器的TCP 80端口已打开。一般情况下,可能是有另一个WEB服务已启动,它打开了80端口比如:零售和U8安装在同一台机器上,零售默认会占用80端口。,另一种可能就是某个软件打开了80端口。解决:进入“internet信息服务”,修改“默认web站点”的端口,举例:8080。或者查看IIS网站下是否有其他WEB服务也占用了80端口,如果有则将其改为非80端口,然后重启IIS。6. 文件或路径访问错误外部系统使用EAI远程接口访问U8时,在Windows Server 2003系统会报“文件或路径访问错误”,此问题可能是EAI读写日志没有权限导致,可查看U8SOFTEAI目录的安全设置,确保存在Everyone用户并具有基本的读取运行权限。由于出现以上问题的环境千差万别,如果以上办法中还有不能解决,可以用“事件查看器”查看最新系统错误日志,根据错误提示信息去网上查阅相关解决办法。如实在不能解决,则先备份目前的IIS配置(依次备份“应用程序池”和“默认网站”),如下图9、10所示:图 9图 10然后卸载IIS,之后重新安装IIS。7. Win7以上版本下针对U8EAI的IIS设置由于U8EAI站点是采用ASP+VBScript开发,win7以上版本的系统中IIS没有默认安装ASP相关内容,因此无法打开http:/localhost/u8eai/import.asp,针对该情况,对IIS作如下设置。1、安装IIS中的ASP相关内容。在控制面板-添加或删除程序-打开或关闭功能,选中IIS,右键,看是否勾选了“ASP”,若没有选择,务必勾选,然后点击下一步进行安装。2、IIS中ASP安装完毕后,选中网站,点击“处理程序映射”,看是否有*.asp这一项,若没有,则必须添加。添加asp脚本映射方法如下:点击“添加脚本映射,输入相关内容点击请求限制,相关设置如下:3、选中应用池,把所有应用池的“高级设置”中“启用32位应用程序”,设置为true4、选中网站,双击ASP,设置启用父路径为true全部设置完成后,访问:http:/localhost/u8eai/import.asp,非本机则访问:http:/u8应用服务器IP/u8eai/import.asp,出现下面内容表示EAI设置正确:8若安装u8后,重装了IIS,需要执行批处理文件修复站点批处理文件目录:downloadsrv平台培训课件环境检测常用工具IIS.bat 三、 通用SQL查询问题U8EAI返回错误:调用业务组件UFIDA.U8.IEAISqlExecutor.SQLExecutor发生异常,原因:执行查询出错:无法打开登录UFDATA_001_2010中请求的数据库。登录失败。(错误号:-2146233088);调用业务组件UFIDA.U8.IEAISqlExecutor.SQLExecutor发生异常,原因:创建只读用户出错: No error message available, result code: DB_E_ERRORSOCCURRED(0x80040E21).(错误号:-2146233088) 原因:EAI创建的reader用户没有相应对帐套数据库的访问权限,在数据库中重新设置一下reader用户的访问权限即可。解决:使用“EAI环境检测工具”修复,或在SQL2000中手动授予“reader”用户的“db_datareader”角色,授予对所有帐套库具有“Select”权限。手动在SQL SERVER中创建登录用户“reader”,并将登录用户“reader”授予“db_datareader”角色,并赋予帐套库(如上“UFDATA_001_2010”)“Select”权限。执行以下脚本内容即可(此脚本也可修复reader用户权限的检查失败的问题):-开始use masterif not exists (select name from syslogins where name=Nreader)beginexec sp_addlogin Nreader,Nreader345endelsebegin-注意!如果是的数据库,请注释下面两行代码ALTER LOGIN reader ENABLEALTER LOGIN reader WITH PASSWORD = reader345 , CHECK_POLICY = OFF end -注意!此处需要切换数据库若数据库是UFDATA_001_2013则不用修改,否则修改为相应的数据库use UFDATA_001_2013if exists (select name from sysusers where name=reader) and not exists(select name from sysusers where sid =SUSER_SID(reader) and hasdbaccess=1)begin-数据库还原以后会丢失映射关系,先删除再增加exec sp_revokedbaccess Nreaderend if not exists (select name from sysusers where name=reader)begin-为新的登陆给予只读权限exec sp_grantdbaccess Nreaderexec sp_addrolemember Ndb_datareader , Nreaderend-结束四、 大数据量问题其他档案都能下载,但存货档案不行,可能是U8存货档案数据量过大,超过了IIS的限制,可参看前述更改IIS的最大数据上传或下载限制方案。但如果仍然不能凑效,说明数据量太大,可以查阅EAI日志发现“字符串空间溢出”,则需要打上U8相应版本的SP补丁和最新FS补丁。在实际的企业环境中,一般U8都具有较大规模的数据量,在这样的环境中调用U8EAI进行与第三方系统的企业应用集成,需要注意:1) 如果确认数据量很大,请尽量不要使用U8EAI一次导出(下载)全部U8档案或单据,不然一次导出的过程相当漫长耗时且容易出错实时内存组织数据,容易出现“内存溢出”错误。,建议采用分页查询、条件过滤和数据压缩的解决方案(EAI均有支持)。目前U8EAI承受的一次导出最大极限为57万条。2) 对数据导入(上传)也是同样的道理,不要一次要求实时导入几万条数据,建议采用分批导入的方式解决,即一次导入n条(n10000)分多次导入。五、 重复上传问题外部第三方系统日志开关一定要打开,不然无法控制单据的重复上传。欲通过EAI与U8进行数据交换,导出文件名相同,但数据内容不同,希望通过EAI定时任务自动导入到U8,但发现EAI定时任务导入一次后就不再继续导入。原因:EAI为了防止重复上传,限制同一文件重复导入解决方案:3) 如果导入失败还想接着导入,将EAITimer下的importfiles里面的该文件名删除;4) 建议定时计划的导入设置为包含导入文件的指定文件夹,同时设置导入成功后删除源文件。六、二开问题1、二次开发报下面的错误: 如何解决?产生错误的原因是EAI会调用login里面的方法eaiLogin.login(AS, sAccID, sYear, sUserID, sPassword, sDate, cServer) 去模拟登陆,替换相应版本的调试版u8login.dll到%u8soft%ufcomsql下面即可2、订单从U8至CRM单向传递,提示“U8错误:拒绝访问”。产品该问题的原因可能是,销售订单往磁盘写临时文件是,没有写权限造成的,解决办法:首先打上销售的最新补丁,看问题是否得到了解决。如果还不行,比较保险的办法是:给磁盘加上everyone可读可写权限。3、传给EAI的请求文件和EAI返回的应答文件为什么会有乱码。一般是编码不一致造成的,EAI的编码一般为: 4、出现 EAI执行出现未知异常,错误已捕获。异常信息:ActiveX 部件不能创建对象(错误号:429 错误源:U8Distribute 错误位置:15 如何解决?一般是EAI在CreateOject 业务组件时失败,根本原因是VB组件没有注册。5、遇到EAI环境问题,强烈建议先用EAI环境监测工具监测一下。解决问题基本思路一、 基本思路首先,做些基本检测,接口匹配不,正确配置了吗;其次,远程访问Url成功吗?然后,打开EAI的调试日志开关。二、 注意事项1. 在U8服务器上如何打开EAI调试日志和找到日志?调试日志是指记录系统详细执行过程和步骤的日志。EAI的调试日志主要用来跟踪和调试无法通过业务日志反映的系统内部错误。1、日志启用EAI调试日志的启用可以通过修改配置文件来设置,调试日志配置文件的路径为:%U8SOFT%EAI ConfigLogConfig.ini。日志文件中有三行内容:0 - 日志文件大小限定,单位为MB,一旦超过此值则创建新的日志文件,0为不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论