外系统对接用友U8

用友U8提供的数据集成方式有:1、EAI模式;2、OpenAPI模式;

1、EAI模式

  它是U8早期版本就提供的一种企业数据集成模式,它比较适合用于内网系统与U8之间的数据集成,比如:WMS系统、MES系统等。

  具体的实现方式有两种:

    1、通过调用COM组件的方式实现与U8系统的通信;

    2、通过HTTP的方式,U8提供了一个用于交互的HTTP地址,可以IIS里查看。因为我们系统就是Java语言编写的,不便于通过JNI来调用COM组件,所以,采用了HTTP的方式,

这种方式其实很简单,就是向U8提供的服务地址发送HTTP POST请求,具体请求参数需要参考“企业系统集成”中的模板格式。样例代码如下:

 1 public static void main(String[] args) throws Exception {
 2         String requestXml="";
 3         requestXml+="<ufinterface sender=\"001\" receiver=\"u8\" roottag=\"purchaseorder\"  proc=\"query\" codeexchanged=\"n\" paginate=\"0\">";
 4         requestXml+="    <purchaseorder> ";
 5         requestXml+="   <field name=\"cpoid\" operation=\">\" value=\"0000000003\" />";
 6         requestXml+="    </purchaseorder> ";
 7         requestXml+="</ufinterface>";
 8 
 9         URL url = new URL("http://192.168.1.106/u8eai/import.asp");//服务地址
10         HttpURLConnection con = (HttpURLConnection) url.openConnection();
11         con.setConnectTimeout(3000000);
12         con.setReadTimeout(3000000);
13         con.setDoInput(true);
14         con.setDoOutput(true);
15         con.setAllowUserInteraction(false);
16         con.setUseCaches(false);
17         con.setRequestMethod("POST");
18         con.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
19         // 发送Request消息
20         OutputStream out = con.getOutputStream();
21         DataOutputStream dos = new DataOutputStream(out);
22         dos.write(requestXml.getBytes("UTF-8"));
23         
24         // 获取Response消息
25         InputStream in = con.getInputStream();
26         BufferedReader br = new BufferedReader(new InputStreamReader(in));
27         StringBuilder sb = new StringBuilder();
28         String s = null;
29         while ((s = br.readLine()) != null) {
30             sb.append(s);
31         }
32         String responseXml = sb.toString();
33         System.out.println(responseXml);
34     }

 

2、OpenAPI模式

  这种模式是相对于EAI比较新的一种集成方式,它比较适合用于外网,比如:你的系统部署在和U8不同的网络,而你想访问内网U8系统的数据,那么就需要用这种方式。我理解的原理是:

  1、U8同网内要安装UP客户端,其实这个客户端就是为了提供供用友OpenApi平台访问的服务;

  2、客户端需要在OpenAPI平台申请对应的账户信息,就可以访问指定内网U8的数据了,提供的接口有很多,涉及方方面面;

posted @ 2018-03-07 23:45  /keepgoing/  阅读(6212)  评论(3编辑  收藏  举报