HRPG外部交换平台.ppt
HRP G 外部交换平台培训,用友医疗卫生信息系统有限公司2012年 8月 20日,提纲,业务分析案列精讲接口方案注意事项,业务分析,例:门诊业务收入医院的收入数据或收入报表(截图或表格展现)门诊收入凭证:借:现金银行存款 贷:门诊收入-挂号收入 门诊收入-检查收入 住院收入凭证:借:应收医疗款 贷:住院收入-床位收入 住院收入-检查收入,外部交换平台总体结构,外部数据交换平台主要用于外部系统和NC系统进行集成。利用外部数据交换平台,可以将外系统的基本档案和业务数据发送到NC系统中,并进行相关的业务操作,如审批、弃审,也可以通过发送XML格式的查询条件导出NC系统的数据(需业务插件支持),导出的数据可以附着在回执文件中,也可以直接向外部系统回发HTTP请求。,外部交换平台功能特点,采用XML格式作为统一的数据交换标准,为数据访问提供简便、统一的模式。面向服务的架构。这使得第三方系统可以随时随地向NC系统发送相关的业务数据,NC内部的预警服务及工作流引擎使得NC系统可以在合适的时候向第三方系统传送需要的数据,并且满足第三方系统的格式规范。灵活配置。数据转换的规则可灵活定义,独立于应用集成和业务逻辑,也就是说根据不同的外部数据结构,直接通过修改交换规则文件的定义,即可达到各种异构数据无缝集成的目的。自由扩充。对于标准产品不支持的业务单据,如果有集成需求,外部交换平台提供了向导式的二次开发工具,集成了所有与二次开发相关的功能及配置,支持动态部署,可以在用户环境上进行快速有效的开发。,外部交换平台功能介绍,外部交换平台与其他系统交换数据主要有两种方式,异步发送方式和同步发送方式。同步发送方式是一种自定义的发送方式,通过编写代码向NC Server端发起POST方法的请求,建立连接后直接将业务文档的数据写入连接,NC Server端从连接中读取数据内容后进行后续处理。其他系统编写和调用这种自定义代码,可以实现与NC系统间的实时交互。,外部交换平台功能介绍,异步发送方式又分两种方式:手动加载方式和预警加载方式。手动加载方式是指在Server端启动了NC系统后,由客户端登陆到NC系统,通过外部交换平台的手动加载界面把客户端的业务文档手动传送到Server端的NC系统,或者用电子邮件发送到Server端,然后由有权限的用户通过手动加载界面加载到Server端。预警加载方式是一种自动加载方式,借助于NC预警平台设定所要发送的业务文档、发送触发的时间等,然后交由预警平台将数据发送到Server端的NC系统。利用外部数据交换平台还可以通过发送XML格式的查询条件导出NC系统的数据(需业务插件支持),导出的数据可以附着在回执文件中,也可以直接向外部系统回发HTTP请求。在某些应用场景下,还可以通过配置NC系统内的单据动作脚本,在某一业务操作被触发时向外系统发送数据。,Servlet的URL地址参数与XML交换文档头属性的关系,在外系统的单据数据的导入过程中需要用到一些初始化信息,如帐套、接收方(包括接收公司和主体账簿)、数据所属外部系统(发送方)、单据类型、业务处理(新增、更新还是查询)等。这部分数据可以在Servlet的URL地址的参数中指定,也可以在XML数据文件的文档头属性中指定,但是在Servlet的URL地址的参数中指定的信息比在XML数据文件的文档头属性中指定的信息有更高的优先级别。比如在Servlet的URL地址参数中指定receiver=yk,而在XML数据文件的文档头属性中指定receiver=yy,则最终还是将数据发送到yk公司。,Servlet的URL地址参数与XML交换文档头属性的关系,【必须设置的属性】:billtype属性,这个属性值决定了这个XML文件(文档)中所有单据的单据类型,外部交换平台所有的处理都是围绕单据类型的。sender属性,这个属性值设置的是外系统编码,指定的是数据的来源系统,即习惯上所说的发送方。proc属性,这个属性值设置对文件中所有单据要做的操作,如新增add、更新update、删除delete、查询query等等。单据具体支持哪些业务操作可以到二次开发工具-交换平台设置-交换单据设置中查询。【根据Servlet的URL参数设置决定是否必设的属性】:这些属性其实也是必设属性,但如果Servlet的URL参数里面设置了这几个属性的话,XML文档头里面可以不设置这几个属性值,即使设置了也不会起作用。account属性,这个属性指定要将数据导入至NC系统的哪个帐套。receiver属性,这个属性指定数据的接收方。接收方又是有一定格式的,可以将这个格式用一个正则表达式表示为:接收方=(公司编码|公司主键)(主体帐簿编码),Servlet的URL地址参数与XML交换文档头属性的关系,【根据需要决定是否设置的属性】:filename属性,在数据导入过程中,对于每张单据我们都可以记录其原始数据、翻译后数据,对整个文档我们也可以记录其导入后的回执信息,这个filename属性的值就是用于记录上述数据文件时的文件名。当然,如果您没有设置的话,系统会为每个导入的文档默认生成文件名。isexchange属性,这个属性值决定了在外系统的数据在导入NC系统的过程中,是否使用外部交换平台提供的翻译转换和校验功能。正常情况下应将这个属性设置为“Y”,或者干脆不设。除非从其他NC系统产生的符合NC转换后标准的XML数据直接导入NC系统,并且很多基础档案数据字段直接用的是PK值,此时可以设置属性为“N”和“n”,可避免无谓的翻译转换。replace 属性,这个属性值决定是否允许将相同单据往同一个接收方重复导入。V50版的插件一般允许相同单据重复导入,除了将第一次导入视作新增之外,其余导入视作更新。总的来说,XML文档头的【必须设置的属性】和【根据Servlet的URL参数设置决定是否必设的属性】,均为在外系统交换文档发送过程中必须得到的初始化信息,可以在Servlet的URL地址参数中设置,也可以在XML文档头属性中设置,但必须进行设置。而对于XML文档头的【根据需要决定是否设置的属性】,也可以在Servlet的URL地址的参数中设置,但一般不推荐这么做。,客户化外部交换平台交换平台日志参数设置,外部交换平台参数设置,外部交换平台参数设置,外部交换平台参数设置类似于NC客户化参数设置,用来设置外部交换平台各参数,各参数的意义下面具体介绍。参数可以随时修改,修改后即时生效,不需要重新登陆或重启中间件。外部系统默认账套:将某个外系统数据文档导入到哪个帐套是由Servlet的URL地址的account参数或者文档根属性account决定的,但是如果这两个地方都没有申明这个值,那么系统就将外部数据导入至这个参数设置的帐套中。打开对话框就会显示当前系统所有帐套编码。一般指定为当前登陆账套.,外部交换平台参数设置,单篇最大传输上限:设置要传输的单个数据文件大小的上限。如要导入的数据文件大小比该值大,系统将会提示文件超长,要求整理数据文件。如不需整理文件,可把该值改大。接收公司匹配规则:接收公司匹配规则是指在导入过程中如何对接收方参数中指定的公司值进行翻译,按编码或者按PK,系统默认值是“按编码”。比如用户现在要将外部数据发送到编码为“001”,PK为“1046”的公司,如果用户将其设置成“按编码”,那么在Servlet的URL参数或者待导入文档根属性的地方写上:receiver=001,如果用户将其设置成“按PK”,那么相应写的是receiver=1046。选择的值由用户的数据文件属性头中receiver值或手动加载中URL地址的接收方值是公司的pk还是编码决定。,外部其他系统的的数据要实现和NC数据之间的交换,必须遵守共同约定的数据规范,在该平台中使用的就是.xml文件.以凭证样本数据文件为例介绍文件格式:NC57homepfxxdemodatafipub1、文件的编码头:为XML文件必须的格式定义,包括版本号(在本例中为version=”1.0”)和编码格式(包括gb2312及utf_8两种,本例中为gb2312格式)。2、文件的属性头:以ufinterface开头,内容为XML文件各属性。下面对文件属性进行逐个说明:roottag:根标签,其内容和单据的根标签值一致。(本例中roottag值为voucher,单据的根标签也为voucher。),XML文件属性介绍,根标签:内容和属性头中roottag值一致,每张单据有且只有一个,所以可以作为单据的开始,后跟单据的流水号(即ID号)。ID号是一张单据的唯一标识,相同的ID号代表同一张单据,如果ID号为空,NC系统会自动为单据生成流水号。单据头(head):单据的表头,一般一张单据只有一个单据头。单据体(body):单据的表体,可有多个体,格式根据外系统文件各异。分录(entry):单据体中的子层次,内容和格式根据外系统文件各异。(本例中凭证有三条分录,故有三个entry),XML文件属性介绍,billtype:单据类型,必有,表示要传输的文件类型。(本例中 billtype值为gl,表示传输的文件为财务凭证)。replace:是否覆盖标志,表示文件已经被正确导入后是否允许再次导入,值为Y/N,默认为Y。sender:发送方编码,必有,值任意。发送文件时在外系统信息配置中配置编码和该值一致的外系统。receiver:接收方地址,其值可以为NC系统接收公司、接收主体账簿或为空。当加载界面URL的接收方地址为空或通过http协议发送无接收方时取该值作为接收方。,XML文件属性介绍,isexchange:是否参照NC基本档案进行翻译。值为Y/N,默认为Y。filename:样本名,值任意。proc:动作,必有,表示发送的文件要对NC系统进行的操作,值有add(增加)、update(修改)、delete(删除)、query(查询)、audit(审批)、unaudit(反审)等。Operation:表示操作单据响应的方向,外系统传入单据是req表示请求操作,外部交换平台反馈信息是res表示答应操作.,XML文件属性介绍,导入步骤,外系统根据单据类型将相同单据类型的数据组织在一个XML文件中,然后将其发送到NC系统的某个账套下的某个公司或集团中(对于有账簿信息的单据而言,比如会计科目或者凭证,则是某个公司的某个账簿之下)。一般来说,如果需要发送某种单据类型的数据至NC系统中,需要如下几步:一、注册外部系统。如果不存在可用的外系统的话,请在“外部系统信息注册”界面中注册一个外部系统。二、准备外系统数据。这份数据可能是外系统直接输出的,也可能是二次开发人员通过写程序从第三方系统数据库中抓出来的,或者由Excel格式或其他格式文件转换过来的。写这份数据时,可以参考NC安装盘附带的XML模板,XML文件头或者说文档头的属性项三、配置辅助信息(可选)。如果要导入的单据数据需要辅助信息配置,在“辅助信息配置”界面根据外部系统、单据类型、接收公司及主体帐簿(如果带的话)为此次文件发送配置辅助信息。,导入步骤,四、设置基础数据对照(可选)。如果要导入的单据数据需要作基础数据对照(对于需要参照基本档案的字段,如果其值不能按名称或者编码自动翻译过来的话,在导入过程中系统会自动提示必须为该值做基础数据对照),在“基础数据对照”界面根据需要参照的外部系统、需要参照的基本档案、公司(取当前登陆公司)及主体帐簿(如果带的话)为需要对照的值做基础数据对照。五、配置Servlet的URL地址。将要发送至的帐套编码作为account属性值写入要发送到的Servlet的URL中(或者写入XML文件的头中),将接收公司和主体帐簿(如果带的话)的代码拼成接收方(接收公司编码接收主体账簿编码)作为receiver属性写入要发送到的Servlet的URL中(或者XML文件的头中)。最后,就可以利用客户端触发该单据类型的数据文件的发送了。,导入方式,手动加载方式:信息交换平台-手动加载界面节点,发送数据文件到UFIDA NC5X系统。预警平台发送方式:打开UFIDA NC5X预警平台-预警条件配置节点,配置预警条件。1)配置预警类型:UFIDA NC5X产品的预警类型配置中已内置有信息交换平台后台发送的预警类型,无须自行增加预警类型。2)配置预警条件:选中“条目配置”页签,点击条目配置按钮中增加按钮,进入预警条目的编辑界面。预警条件中类型选择信息交换平台后台发送,有四个内置条件:其中待发送文件目录,必须填写,内容为数据文件所在路径。回执目录,必须填写,内容为回执文件存放的路径。发送后文件转移目录,可以不填,如果填写,内容为文件中全部单据发送成功的文件存放路径。发送配置信息,必须填写,内容由三部分组成,下面分别介绍。,导入方式,第一部分为要发送文件的单据类型,如下图所示,表示发送单据类型为gl的单据,如果要将所有单据类型的文件都发送,可以写成billtype=xx或billtype=XX,相当于通配符。第二部分为要发送文件的外系统编码,如下图所示,表示发送外系统为1101的单据,没有通配符。第三部分为发送的配置信息,包括UFIDA NC5X服务器地址、服务、账套、接收地址等,内容与手动加载界面的目标URL地址相同,注意:接收地址要根据导入的文件的单据类型区分公司还是主体账簿。三个部分之间用分号连接,注意这三部分的标志字段一定要用billtype、sysno、urladdress。注意,配置时一定要严格按照介绍的格式填写。,导入方式,如果用户每次需要发送多个外系统的数据或需要发送多个单据类型的数据,可以扩展预警类型阈值,增加预警条件。如下图所示,在类型配置页签中选中外部交换数据后台发送类型,进入编辑界面,在条件中输入阈值名称postconfig1、postconfig2、,阈值描述、编辑类型为字符型后增加即可。,案列精讲,以收入凭证实现为实例,讲解产品配置和操作第一步配置XML文件(要求其他系统按XML文件的格式要求生成XML文件)第二步进行外部交换平台信息设置第三步发送XML文件,案列精讲-产品操作,接口方案,附上接口方案的文档是否需要讲解产品数据库设计,表结构,字段等。,注意事项,1、系统默认回执文件发送到桌面,目标地址为当前登陆账套和公司,但可修改。但需注意,如要往主体账簿中发送会计科目和凭证或往集团科目方案中发送科目时,需用户手工在receiver=公司后加要发送的主体账簿编码或要发送的科目方案编码,如需往测试公司的测试公司_001账簿中导入科目,则receiver=测试公司测试公司_001。2、来源系统只能为 NC支持的系统。3、加载成功转移目录可根据用户需要输入,输入后如数据文件中所有单据都成功发送,文件即被转移到该目录上,如果未成功单据,仍在原目录下不被转移。4、单篇传输上限取参数设置中上限值,不可修改。回执文件命名规则由NC系统自动生成,不可修改。5、手动加载界面支持压缩传输与非压缩传输两种传输模式,如果机器性能较差但网络状况很好(比如局域网内),可以采用非压缩传输,相反,则采用压缩传输,在远程传输较大的数据文件时,压缩传输能大大提高传输效率。6、发送后可查看回执文件或平台日志,确定是否成功导入,如发送失败,可根据提示修改基础设置、交换规则定义文件或数据文件,重新发送。,常见发送失败提示及解决方案,1、提示:数据文件超长,请重新整理后再发送,数据文件位置:0。解决方案:报该错误原因为日志参数设置中单篇最大传输上限值小于数据文件大小,如不需整理文件,可把单篇最大传输上限值改大。2、提示:1101不是一个合法的发送方,请在接收公司注册。解决方案:在外部系统信息设置中添加编码为1101的档案。3、提示:根据基础档案人员类别无法翻译pk_psncl字段,待翻译值:管理人员,翻译方式:按名称.解决方案:一些基本档案中有一些字段需要参照其他基本档案中的信息,在导入数据文件时,就需要保证上级档案中有数据文件中要参照的相应档案,如没有,须手工增加。或在基本档案对照表中增加档案,使数据文件中要参照的档案和NC基本档案中已有的档案相对应。4、提示:Error:凭证内部错误号:10046 凭证日期与会计年度、期间不匹配。Error:凭证内部错误号:10033 会计期间不合法!解决方案:此问题是通过U8数据交换EAI系统导出凭证的XML文件,再导入NC系统时报的错误。原因为U8导出数据文件中小于10的月份显示为一位数,但NC会计期间显示为两位数(前面补一个0),总账判断制单的会计期间时按两位数进行判断,请用户在确认会计年度、期间等匹配都没有问题的情况下,自行修改数据文件字段accounting_period(会计期间)中值,在前面补一个0。(如7改为07)。,常见发送失败提示及解决方案,5、提示:凭证内部错误号:10008 使用的凭证号已存在,不允许重复!解决方案:此提示是正确提示。产生原因是发送的数据文件中的凭证号字段值和NC已有凭证号重复,如用户仍想导入凭证,可将数据文件的凭证号字段值置为0,由NC自动生成凭证号。或将交换规则定义文件的凭证号字段在外系统中的名称修改为任意值(不要和数据文件中字段重复),并增加默认值0,这样就由NC自动生成凭证号了。6、提示:业务插件处理错误:插件类=nc.bs.bd.pfxx.plugin.accsubj.AccsubjPfxxPlugin,异常信息:保存会计科目时出现异常,异常信息:ORA-02291:违反完整约束条件(JLF50_JJH1110.F_BD_ACCS_BD_SBJT)-未找到父项关键字 解决方案:此提示是在发送集团会计科目时报的错。支持集团按科目方案发送会计科目后,翻译科目类型字段时,需要根据科目方案进行翻译,为避免出现错误,科目方案不支持按匹配规则翻译,只能在基础数据对照表中增加参照。在基础数据对照表中增加参照后,如对应的基本档案数据被删除,其他档案回执中会有明确提示,但集团会计科目不能给出明确提示,只给出找不到外键的提示,即上面报的错。,