1. 程式人生 > >外系統對接用友U8

外系統對接用友U8

str 不同的 信息 參考 安裝 XML field fin lin

用友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 }

1、OpenAPI模式

  這種模式是相對於EAI比較新的一種集成方式,它比較適合用於外網,比如:你的系統部署在和U8不同的網絡,而你想訪問內網U8系統的數據,那麽就需要用這種方式。我理解的原理是:

  1、U8同網內要安裝UP客戶端,其實這個客戶端就是為了提供供用友OpenApi平臺訪問的服務;

  2、客戶端需要在OpenAPI平臺申請對應的賬戶信息,就可以訪問指定內網U8的數據了,提供的接口有很多,涉及方方面面;

外系統對接用友U8