图2.3.1 手动加载界面
后台预警发送
点击:[开发平台]→[开发配置工具]→[后台任务类型注册]→ [增加],在弹出的后台任务类型注册对话框中配置一个类型为“外部交换数据后台发送”的后台任务条目。
第 8 页
图2.3.2 后台任务类型注册
其预警条件的配置如图2.3.2所示。在该预警条件标签页中内置了四个预警条件:
? 待发送文件目录
该预警条件阈值用于设置用户数据文件目录(不能为空); ? 回执目录
该预警条件阈值用于设置存放单据导入之后的回执信息的目录,每张单据一个回执文件,如果用户不设置这个阈值,系统在待发送文件目录下默认创建目录/logdir作为回执目录; ? 发送后文件转移目录
该预警条件阈值对于想将能够成功加载的文件备份走的用户有用(一般不用设置); ? 发送配置信息
该预警条件阈值是一个可扩展的预警条件阈值,它用于配置将什么样的文件发送到哪个URL地址(不能为空)。这个配置值的格式如下:
第一部分是单据类型:
第二部分是外系统编码:
第三部分是目的URL地址:
上面所列发送配置信息项取值的意思就是将单据类型是“Test1”, 外
第 9 页
部系统编码为“1101”的文件发送到NC外部数据接收的Servlet地址:urladdress=http://localhost:80/service/XChangeServlet?account=0001&groupcode=zz。这个地方如果我们将单据类型的取值设为“XX”或“xx”的话,表示任何单据类型的文件都可以往某个地址发送,相当于通配符的意思,但对于外部系统编码没有通配符。
后台任务配置:
[企业建模平台]→[系统平台]→[后台任务中心] →[后台任务部署]中点击增加按钮
图2.3.3 任务条目部署
发送配置信息是一个可扩展的预警条件阈值,其意思就是用户可以在预警平台的类型注册对话框中修改名为“外部交换数据后台发送”的预警类型定义,增加作为预警条件的发送配置信息项,以实现数据文件的多点发送。
第 10 页
点击:[开发平台]→[开发配置工具]→[后台任务类型注册]→[选中“外部数据交换后台发送”行]→[修改],弹出“类型注册”对话框,如图2.3.4所示,为其增加了一个发送配置信息阈值项。需要注意的是该新增阈值项的名称必须以字符串“postconfig”打头,如“postconfig1”、“postconfig2”,??等。这样配置更多的发送配置信息,使得能有选择地将某个特殊单据类型特殊外部系统的数据文件能够发送到某个指定服务器地址去。
图2.3.4 后台任务类型注册
配置完毕,即可由预警平台调度和执行发送任务。另请注意,在待发送文件目录、回执目录和发送后转移目录的设置上本地客户端和服务器端文件系统的差别,如目录“c:/aaa”指的是服务器端文件系统路径而非客户端文件系统地址。
自定义程序发送
以Java代码为例,介绍外系统作为客户端如何向NC系统发送数据:
为简单起见,以下代码未处理异常,close方法也未放入finally里,具体写代码时请修改。 // 获取Servlet连接并设置请求的方法 String url = \; URL realURL = new URL(url); HttpURLConnection connection = (HttpURLConnection)realURL.openConnection(); connection.setDoOutput(true); 第 11 页
connection.setRequestProperty(\, \); connection.setRequestMethod(\); // 将Document对象写入连接的输出流中 File file = new File(\); BufferedOutputStream out = new BufferedOutputStream(connection.getOutputStream()); BufferedInputStream input = new BufferedInputStream(new FileInputStream(file)); int length; byte[] buffer = new byte[1000]; while ((length = input.read(buffer, 0, 1000)) != -1) { out.write(buffer, 0, length); } input.close(); out.close(); // 从连接的输入流中取得回执信息 InputStream inputStream = connection.getInputStream(); Document resDoc = XMLUtil.getDocumentBuilder().parse(inputStream); // 解析为Doc对象 // 对回执结果的后续处理…
也可以调用nc.vo.pfxx.pub.PostFile来发送
public static int sendFile(File file, String url, String backdir, String movedir, boolean bcompress) // fileQueue 传空即可 public static SendResult sendFileWithResults(File file, String url, String backdir, String movedir, boolean bcompress, FileQueue fileQueue) public static String sendDocument(Document doc, String url,String outputEncoding, boolean bcompress) throws Exception public static String sendDocument (Document doc, String url, String outputEncoding) throws Exception [说明] 关于XML操作可以用XMLUtil类,关于发送的API,如果您的程序可以依赖uap的jar包,也可以直接用PostFile类
4. 回执及异常出错信息
回执格式
加载外部系统数据时,对于导入的数据文件中的每张单据,都会给客户端返
第 12 页