1.現在做的項目是關於業務系統與U811.1的接口項目。
2.那么就需要調整通過EAI調用生成U8業務單據。
3.下面就一個通用的向U8-EAI傳遞XML的通用方法
4.肯定有人會問怎么還用VB調用呢?為什么不用C#等? 這是因為現在客戶的老系統用的是VB6.0開發的,所以要結合老系統開發新業務再與U8業務一起動作。
5.還有朋友會有疑問全用U8不就行了,U8是標准產品又不是“神”,在企業管理上不是所有的U8業務流程都是最好的、最優的、最先進的。所以有些業務必須要客開。並用U8二開還是會被限制的。
6.下面的代碼是我們在實際項目中用到的,是經過測試的。如下步驟:
第一步:需要配置一下U8服務器上的EAI接口配置環境:
1.u8服務器:是安裝u8那台服務器的名或IP。
2.用戶名和密碼、還有EAI的數據庫源帳套。
1.增加一個外部系統注冊碼。這個系統編碼在業務系統中調用EAI時會用到。
2.這個選擇的數據源要與EAI基本設置的數據源一致。也就是U8賬套選擇的是一個賬套。
注:要確保安裝的服務器上有EAI服務。因為沒有這個服務的話是傳不上去的。會利用U8EAI的import.asp這個服務。
第二步:直接把一面的代碼放到項目當中
ls_http:參數是上面U8配置的。規則:http://u8服務器名/IIS服務的訪問名/import.asp
'向EAI傳遞的Xml數據/////////////////////////////////////////////////////////////////////// Public Function SendToEAI(ls_xml As String, ByRef as_dsc As String) As Boolean Dim obj As Object Dim strRet As String ' //EAI返回的Xml數據 Dim domAll As New DOMDocument Dim strTemp As String Dim ls_http As String ls_http = "http://u8/u8eai/import.asp" SendToEAI = True Dim xmlhttp As Object Set xmlhttp = CreateObject("MSXML2.XMLHTTP") '創建XMLHTTP對象 Call xmlhttp.Open("POST", ls_http, False) '使用XMLHTTP對象打開 網絡連接,URL中的u8appsrv填U8應用服務器 Dim requestXml As String requestXml = ls_xml 'domAll.xml xmlhttp.send (requestXml) '發送Request消息 Dim responseXml As String responseXml = xmlhttp.responseText '獲取返回Response消息 domAll.loadXML responseXml Dim ls_temp As String Dim ls_succeed As String '成功失敗標識 Dim ls_dsc As String '出錯時描述 ls_succeed = Trim(domAll.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("succeed").Text) If ls_succeed = "0" Then '成功 ls_temp = Trim(domAll.selectSingleNode("ufinterface").Attributes.getNamedItem("request-roottag").Text) If ls_temp = "voucher" Then '憑證獲取憑證號 as_dsc = Trim(domAll.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("u8voucher_id").Text) Else '其它獲取U8 KEY as_dsc = Trim(domAll.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("key").Text) End If Else '失敗 SendToEAI = False as_dsc = Trim(domAll.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("dsc").Text) '出錯時錯誤信息 End If Set xmlhttp = Nothing '釋放資源 End Function
其它關於具體如何調用EAI接口請看各個業務單據具體實現。
作者:王春天 2013-10-28
地址:http://www.cnblogs.com/spring_wang/p/3393147.html