织字段,用于确保往某个接收方,比如说A公司做加载数据时,导入的数据能真正进入A公司,这个组织字段一般是公司或者主体账簿。为单据定义组织字段之后,如果数据里相应组织字段的值不为空,则要求其值与接受方保持一致,如果数据里相应组织字段的值为空,则取接受方的内容为组织字段的值。 10) 易用性改进。【手动加载界面】对文件目录、回执目录、目标URL地址、
加载成功转移目录的配置增加记忆功能,就是说以相同公司相同用户登陆时,上述各项的配置内容默认显示为最后一次用户设置的值,避免用户每次都需要重新设置。【交换规则定义】增加了查找、定位字段的功能,单据交换规则树上的右击菜单也更加简练明确,同时为字段的导入导出公式定义增加新版本的公式编辑器,定义公式更加方便简洁。
上述功能我们在接下来的内容中会具体提到。
4. 信息交换平台V55版新增功能
1) 最大传输上限界面最大20M
2) 业务插件扩展功能 见第七章 扩展
3) 基础数据对照界面EXCEL内外对照数据导入分为两列,其中第一列为
外系统值,第二列为NC所对应值,系统会自动检查NC值的合法性,不合法则置空。
4) 交换规则增加合并功能
5) Ufinterfacevo填充NC操作员信息
6) 增加日志统计和输入流监控,便于进行日志分析,定位网络错误
5. 信息交换平台V60版新增功能
1) 2) 3) 4)
信息交换平台全面支持NCV60元数据进行数据处理。 增加自定义翻译器注册界面,可以建立自定义的翻译器。 插件开发向导支持通过元数据和VO类生产交换规则。 对枚举类型数据的自动转换。
第 3 页
第二章 实施简介及相关注意点
NC信息交换平台的主要功能就是将不同外系统的数据导入NC系统。由于不
同系统之间对于相同单据的数据在表示上千差万别,需要信息交换平台对单据的XML格式的外系统数据进行格式转换和数值翻译,然后将转换后生成的XML格式的NC标准数据实例化为NC系统对应单据的数据对象,并调用业务模块的接口(服务)进行保存或者更新。
NC系统在后台有一个Servlet伺候服务,等待并处理客户端的POST方法请求(信息交换平台提供界面客户端和预警客户端,对于同步集成方式,外系统可以自定义发送客户端)。客户端往根据Servlet的URL建立的连接的输出流中写待发送数据文件的内容,而后台服务端则从请求的输入流中读取数据文件内容,然后再进行后续处理。关于客户端发送数据的具体内容请参考2.3节。
2.1节介绍了要将某个外系统的某种单据类型的数据文件导入至NC系统的最简单方法。其余小节介绍了在实施数据导入过程中容易混淆而需要注意的地方,或者是一些常用的工具等。
1. 实施方法简介
外系统数据导入的一般步骤
外系统根据单据类型将相同单据类型的数据组织在一个XML文件中,然后将其发送到NC系统的某个账套下的某个组织中。一般来说,如果需要发送某种单据类型的数据至NC系统中,需要如下几步:
一、注册外部系统。如果不存在可用的外系统的话,请在“外部系统信息设置”界面中注册一个外部系统。
二、准备外系统数据。这份数据可能是外系统直接输出的,也可能是二次开发人员通过写程序从第三方系统数据库中抓出来的,或者由Excel格式或其他格式文件转换过来的。写这份数据时,可以参考NC安装盘附带的XML模板,XML文件头或者说文档头的属性项请参照2.2节详细说明。
三、配置辅助信息(可选)。如果要导入的单据数据需要辅助信息配置,在“辅助信息配置”界面根据外部系统、单据类型、接收组织为此次文件发送配置辅助信息。
四、设置基础数据对照(可选)。如果要导入的单据数据需要作基础数据对照(对于需要参照基本档案的字段,如果其值不能按名称或者编码自动翻译过来的话,在导入过程中系统会自动提示必须为该值做基础数据对照),在“基础数据对照”界面根据需要参照的外部系统、需要参照的基本档案、组织为需要对照
第 4 页
的值做基础数据对照。
六、配置Servlet的URL地址。将要发送至的帐套编码作为account属性值写入要发送到的Servlet的URL中(或者写入XML文件的头中);将接收集团编码作为groupcode属性写入要发送到的Servlet的URL中(或者写入XML文件的头中);将接收组织的代码作为orgcode属性写入要发送到的Servlet的URL中(或者XML文件的头中)。详细说明请参见2.2节。
最后,就可以利用客户端触发该单据类型的数据文件的发送了。
NC信息交换平台内置了常用单据类型数据的导入功能,对于这些单据类型, 如果外系统数据遵照了这些单据类型的交换规则定义(即如果外系统的数据严格按照NC安装盘附带的相应单据的XML模板生成),那么按上述步骤相对比较简单地就可以导入数据。但是如果外系统数据未能遵照单据类型的交换规则定义,则需要修改该单据类型的交换规则定义。做法就是将该单据的普通交换规则定义文件另存为特定该外部系统的交换规则定义文件,并根据单据交换规则定义规范修改该特定交换规则定义文件,具体需要参见第三章[单据交换规则定义],然后再行导入。对于非系统内置或者自定义的单据的导入,需要基于信息交换平台做二次开发,这部分内容可参见第四章。
信息交换平台服务器端文件目录结构
信息交换平台服务端的目录结构安排如图2.1.1所示,其中NC_COMMON为安装盘根目录,也是中间件的工作目录。
从上图可以看出,信息交换平台配置文件目录pfxx与webapps一样同在安装盘根路径下,其中:
pfxxtemp目录,存贮信息交换平台接受到的原始数据文件、转换翻译完毕的标准XML文件、传送失败的文件。
exportbills 目录,存放信息交换平台发送给外系统的数据文件。 billdefine目录,存放所有需要交换的档案和单据的交换规则文件。 auxiregister目录,每个模块在这个目录下注册一个文件,文件的内容是模块所涉及单据的辅助信息格式。详细情况参考4.3节辅助信息项设置。
businessprocessor目录,每个模块在这个目录下注册一个文件,文件的内容是模块所涉及单据在信息交换平台的注册信息,如单据类型、业务插件类名称、元数据ID、单据加锁级别等。详细内容参考4.1节注册单据相关信息。
globalset.xml 用于存放信息交换平台的全局参数,如默认帐套、单篇最大传输上限等。
第 5 页
图 2.1.1 信息交换平台服务端文件目录结构
2. Servlet的URL地址参数与XML交换文档头属性的关系
在外系统的单据数据的导入过程中需要用到一些初始化信息,如帐套、接收集团、数据所属外部系统(发送方)、单据类型等。这部分数据可以在Servlet的URL地址的参数中指定,也可以在XML数据文件的文档头属性中指定,但是在Servlet的URL地址的参数中指定的信息比在XML数据文件的文档头属性中指定的信息有更高的优先级别。比如在Servlet的URL地址参数中指定groupcode=yk,而在XML数据文件的文档头属性中指定groupcode=yy,则最终还是将数据发送到yk组织。
下面我们依据实例来逐一介绍各个常用属性。图2.2.1是一个典型的NC服务器的Servlet的URL地址,“http://10.7.3.226:80/service/XChangeServlet”是后台Servlet的服务名。“?”号之后的“account=0001&groupcode=xx&orgcode=yy”就是设置的URL地址参数,一般情况下这个地方只设置帐套编码(account)、接收集团(groupcode),接收组织(orgcode)。至于这些属性的含义下面会介绍到。
图2.2.1 典型Servlet的URL地址
图2.2.2是一个典型的XML文档头,文档头的根标签名是ufinterface,后面跟着就是各种初始化信息的设置。我们将这些属性分为三类:必须设置的属性、根据Servlet的URL参数设置决定是否必设的属性和根据需要决定是否设置的属性。
图2.2.2 典型XML文档头
【必须设置的属性】:
billtype属性,这个属性值决定了这个XML文件(文档)中所有单据的单据类型,信息交换平台所有的处理都是围绕单据类型的。
sender属性,这个属性值设置的是外系统编码,指定的是数据的来源系统,即习惯上所说的发送方。
【根据Servlet的URL参数设置决定是否必设的属性】:
这些属性其实也是必设属性,但如果Servlet的URL参数里面设置了这几个属性的话,XML文档头里面可以不设置这几个属性值,即使设置了也不会起作用。
account属性,这个属性指定要将数据导入至NC系统的哪个帐套。
第 6 页
groupcode属性,这个属性值指定接收集团的编码。 orgcode属性,这个属性值指定接收组织的编码。 【根据需要决定是否设置的属性】:
filename属性,在数据导入过程中,对于每张单据我们都可以记录其原始数据、翻译后数据,对整个文档我们也可以记录其导入后的回执信息,这个filename属性的值就是用于记录上述数据文件时的文件名。当然,如果您没有设置的话,系统会为每个导入的文档默认生成文件名。
isexchange属性,这个属性值决定了在外系统的数据在导入NC系统的过程中,是否使用信息交换平台提供的翻译转换和校验功能。正常情况下应将这个属性设置为“Y”,或者干脆不设。除非从其他NC系统产生的符合NC转换后标准的XML数据直接导入NC系统,并且很多基础档案数据字段直接用的是PK值,此时可以设置属性为“N”和“n”,可避免无谓的翻译转换。
replace 属性,这个属性值决定是否允许将相同单据往同一个接收方重复导入。V50版的插件一般允许相同单据重复导入,除了将第一次导入视作新增之外,其余导入视作更新。关于这方面的具体内容请参见2.6节内容。如果不允许相同单据的重复导入,那么将这个属性值设置为“N”或者“n”。否则将其设置为“Y”或者干脆不设。
operator属性, 这个属性指定当前发送方对应的nc操作员pk,在手工加载界面会自动使用当前登陆用户pk,无需设置。对于外系统发送到NC系统,需要在其发送url里加上对应得NC操作员pk
总的来说,XML文档头的【必须设置的属性】和【根据Servlet的URL参数设置决定是否必设的属性】,均为在外系统交换文档发送过程中必须得到的初始化信息,可以在Servlet的URL地址参数中设置,也可以在XML文档头属性中设置,但必须进行设置。而对于XML文档头的【根据需要决定是否设置的属性】,也可以在Servlet的URL地址的参数中设置,但一般不推荐这么做。
3. 向NC系统发送数据方式
NC信息交换平台支持客户端以同步和异步两种方式发送(加载)外部数据。其中NC信息交换平台为异步加载方式内置了两类客户端:界面和预警,而对于同步加载方式,外系统需要编写往NC后台Servlet发送文件的代码,下面分别介绍它们:
手动界面发送
这是外部数据最简单也最常用的一种客户端发送方式,点击:[集成平
台]-[数据交换管理]-[手动加载界面],在打开的界面中选择需要发送的文件,如有必要,修改目标URL地址的groupcode参数值,选择“发送”菜单即可。详细内容请参考信息交换平台的用户手册。
第 7 页