U811.1接口EAI系列之一-通用访问EAI方法--统一调用EAI公共方法--VB语言

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

相关XML参考文件下载 

其它关于具体如何调用EAI接口请看各个业务单据具体实现。

作者:王春天 2013-10-28

地址:http://www.cnblogs.com/spring_wang/p/3393147.html

 

posted @ 2013-10-28 21:18  王春天  阅读(10899)  评论(2编辑  收藏
云推荐