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