也就是说接收方根据单据类型的需要,可以是公司或者公司下的主体帐簿。当接收方是公司,如编码为“yy”名称为“yk”的公司,其主键为“1046”,那么根据外部交换平台总体参数设置中的接收公司匹配规则的设置(参考2.5节)可设为receiver=yy或者receiver=1046。当接收方是公司下的主体帐簿时,如编码为“yy”名称为“yk”主键为“1046”的公司下有一编码为“yy-0001”名称为“yy公司基准帐簿”的主体帐簿时,根据外部交换平台总体参数设置中的接收公司匹配规则可将接收方属性设置为receiver=yy@yy-0001或者receiver=1046@yy-0001。
【根据需要决定是否设置的属性】:
filename属性,在数据导入过程中,对于每张单据我们都可以记录其原始数据、翻译后数据,对整个文档我们也可以记录其导入后的回执信息,这个filename属性的值就是用于记录上述数据文件时的文件名。当然,如果您没有设置的话,系统会为每个导入的文档默认生成文件名。
isexchange属性,这个属性值决定了在外系统的数据在导入NC系统的过程中,是否使用外部交换平台提供的翻译转换和校验功能。正常情况下应将这个属性设置为“Y”,或者干脆不设。除非从其他NC系统产生的符合NC转换后标准的XML数据直接导入NC系统,并且很多基础档案数据字段直接用的是PK值,此时可以设置属性为“N”和“n”,可避免无谓的翻译转换。
replace 属性,这个属性值决定是否允许将相同单据往同一个接收方重复导入。V50版的插件一般允许相同单据重复导入,除了将第一次导入视作新增之外,其余导入视作更新。关于这方面的具体内容请参见2.6节内容。如果不允许相同单据的重复导入,那么将这个属性值设置为“N”或者“n”。否则将其设置为“Y”或者干脆不设。
总的来说,XML文档头的【必须设置的属性】和【根据Servlet的URL参数设置决定是否必设的属性】,均为在外系统交换文档发送过程中必须得到的初始化信息,可以在Servlet的URL地址参数中设置,也可以在XML文档头属性中设置,但必须进行设置。而对于XML文档头的【根据需要决定是否设置的属性】,也可以在Servlet的URL地址的参数中设置,但一般不推荐这么做。
3. 向NC系统发送数据方式
NC外部交换平台支持客户端以同步和异步两种方式发送(加载)外部数据。其中NC外部交换平台为异步加载方式内置了两类客户端:界面和预警,而对于同步加载方式,外系统需要编写往NC后台Servlet发送文件的代码,下面分别介绍它们:
3.1 手动界面发送
这是外部数据最简单也最常用的一种客户端发送方式,点击:[客户化]→[外
部交换平台]→[外部数据发送],在打开的界面中选择需要发送的文件,如有必要,修改目标URL地址的receiver参数值,选择“发送”菜单即可。详细内容请参考外部交换平台的用户手册。
第 8 页
图2.3.1 外部数据发送界面
3.2 后台预警发送
点击:[客户化]→[预警平台]→[预警条件配置]→[条目配置]→[增加],在弹出的预警条目设置对话框中配置一个类型为“外部交换数据后台发送”的预警条目,其预警条件的配置如图2.3.2所示。在该预警条件标签页中内置了四个预警条件: ? 待发送文件目录
该预警条件阈值用于设置用户数据文件目录(不能为空); ? 回执目录
该预警条件阈值用于设置存放单据导入之后的回执信息的目录,每张单据一个回执文件,如果用户不设置这个阈值,系统在待发送文件目录下默认创建目录/logdir作为回执目录; ? 发送后文件转移目录
该预警条件阈值对于想将能够成功加载的文件备份走的用户有用(一般不用设置); ? 发送配置信息
该预警条件阈值是一个可扩展的预警条件阈值,它用于配置将什么样的文件发送到哪个URL地址(不能为空)。这个配置值的格式如下:
第一部分是单据类型:
第 9 页
第二部分是外系统编码:
第三部分是目的URL地址:
上面所列发送配置信息项取值的意思就是将单据类型是“Test1”, 外部系统编码为“1101”的文件发送到NC外部数据接收的Servlet地址:urladdress=http://localhost:80/service/XChangeServlet?account=0001&receiver=yy。这个地方如果我们将单据类型的取值设为“XX”或“xx”的话,表示任何单据类型的文件都可以往某个地址发送,相当于通配符的意思,但对于外部系统编码没有通配符。
图2.3.2 预警条目配置
发送配置信息是一个可扩展的预警条件阈值,其的意思就是用户可以在预警平台的类型注册对话框中修改名为“外部交换数据后台发送”的预警类型定义,增加作为预警条件的发送配置信息项,以实现数据文件的多点发送。点击:[客户化]→[预警平台]→[预警条件配置]→[在“类型配置”标签页选中“外部数据交换后台发送”行]→[类型配置]→[编辑],弹出“类型注册”对话框,如图2.3.2所示,为其增加了一个发送配置信息阈值项。需要注意的是该新增阈值项的名称必须以字符串“postconfig”打头,如“postconfig1”、“postconfig12”,??等。这样配置更多的发送配置信息,使得能有选择地将某个特殊单据类型特殊外部系统的数据文件能够发送到某个指定服务器地址去。
第 10 页
图2.3.2 预警类型注册
配置完毕,即可由预警平台调度和执行发送任务。另请注意,在待发送文件目录、回执目录和发送后转移目录的设置上本地客户端和服务器端文件系统的差别,如目录“c:/aaa”指的是服务器端文件系统路径而非客户端文件系统地址。
3.3 自定义程序发送
以Java代码为例,介绍外系统作为客户端如何向NC系统发送数据:
// 获取Servlet连接并设置请求的方法
String url = “http://10.7.3.225:8080/service/XchangeServlet”; URL realURL = new URL(url);
HttpURLConnection connection = (HttpURLConnection)realURL.openConnection(); connection.setDoOutput(true);
connection.setRequestProperty(“Contect-type”, “text/xml”); connection.setRequestMethod(“Post”); // 将Document对象写入连接的输出流中 File file = new File(“C:/samples/psndoc.xml”); InputStream input = new FileInputStream(file);
Document doc =XMLUtil.getDocumentBuilder().parse(input);
Writer writer = new OutputStreamWriter(connection.getOutputStream(), “UTF-8”); XMLUtil.printDOMTree(writer, doc, 1); // 按照XML文件格式输出 // 从连接的输入流中取得回执信息
InputStream inputStream = connection.getInputStream();
Document resDoc = XMLUtil.getDocumentBuilder().parse(inputStream); // 解析为Doc对象 // 对回执结果的后续处理 …
[说明] 关于XML操作可以用XMLUtil类,关于发送的API,可以直接用PostFile类
第 11 页
4. 回执及异常出错信息
4.1 回执格式
加载外部系统数据时,对于导入的数据文件中的每张单据,都会给客户端返回一个回执信息,记录单据导入成功与否,以及失败的原因。回执信息也是一个XML文件,其一般格式如下:
图2.4.1 回执文档的一般格式
回执信息中还可以嵌套单据,这个时候可以将外部交换平台看作简单的信息中心,外系统发送过来一个消息,NC系统回应一个消息。如查询类的单据,外系统发送一个表示查询条件的信息,NC系统返回所有符合查询条件的单据,这些单据就是内嵌在回执信息中的。再如,用这个功能来实现NC系统和外系统在某种程度上的流程集成,外系统发送一张走流程平台的单据,然后再由外部交换平台返回流程平台处理后得到的单据。
4.2 异常和错误编码
异常信息对于使用外部交换平台是极为重要的,有助于实施人员分析数据导入结果,查找数据导入失败原因。外部交换平台中的异常分类:环境初始化异常、单据转换异常和业务插件处理异常。这个划分是基于一个外系统某单据类型的XML交换文档在导入NC系统过程中所需处理阶段而给出的。如果单据导入失败,那么在回执信息的
错误编码则直接定位于发生错误的分类:配置错误、数据错误、系统错误,然后在某种错误下再进行细分。这些错误信息都通过错误编码的方式在单据导入
第 12 页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库NCV5-外部交换平台技术红皮书(3)在线全文阅读。
相关推荐: