http xml 调用综合管理系统提供的服务 webservice

  • 相关链接: 开发 脚本 sql工具 库表字段 web service 自定义报表


  • 功能入口:配置管理=》脚本工具=》辅助工具=》erbservice调用

  • 通过http+xml可以调用后台提供的webservice服务,采用这种方式,可以在excel、java、或者其他任何程序中访问综合管理系统提供的服务,用来获取需要的数据或者调用相应的服务。

  • 这种方式通过xml文件传入参数给后台服务,后台服务处理后返回一个xml文件。

  • 采用的xml文件需要遵循特定的格式来组织。调用方按照规定格式编写好xml文件,通过httpxml调用传给后台服务,后台服务从该xml文件中提取出相关参数进行处理,处理完毕后再把结果信息组织成一个xml文件返回给调用方,完成一个调用过程。

  • 调用入口 http_xmp_call?func_id=后台服务名&call_key=应用通行码,后台服务名必须是综合管理系统提供的有效名称,应用通行码(call_key)由系统管理员分配,用于确保调用请求来自合法的应用。

  • 应用通行码在webservice示例窗口中定义。每次调用必须传入一个预先定义的应用通行码,否则服务器不会进行响应。通行码建议长度>12位。

  • 每次完成调用后,如果服务器在执行过程中发生错误,则会返回一个非0的变量,标志为 _r_ec_ ,未返回该变量或者该变量为0表示成功完成,当 _r_ec_ 不为0时,_r_em_ 里面记录了错误的信息。

  • 每次完成调用后,_r_ 变量是一个后台返回值,取决于具体的服务,大部分情况下不使用。

  • 特殊字符的编写:
    ☉xml里把 < > 作为标签的字符,因此如果内容里有这2个字符的时候要用 &<; &>; 来代替 < 和 >
    ☉<>作为一种特殊情况不需要替换,可以直接使用


  • excel里进行调用的例子: (假定服务模块在本机127.0.0.1)

  • 传入内容的字符编码:
    ☉encoding='utf-8' 表示传入为 utf-8编码
    ☉encoding='GB2312' 表示传入为 简体汉字编码


  • 返回内容的字符编码:
    ☉调用http_xml_call返回GB2312编码的结果
    ☉调用http_xml_call_utf_8返回utf-8编码的结果


  • excel2003: 打开excel,点击工具=》宏=》Visual Basic编辑器,粘帖下面的代码后点击运行子过程/窗体。

    excel2007: 打开excel,主图标菜单=》excel选项=》常用=》在功能区显示'开发工具'选项卡。

    Sub webservice_test()

    Dim objHttp, xmlDoc, sText, sXml

    Set objHttp = CreateObject("MSXML2.XMLHTTP")
    Set xmlDoc = CreateObject("MSXML.DOMDocument")

    strWebserviceURL = "http://127.0.0.1:8088/http_xml_call?func_id=sf_upper&call_key=11"
    strRequest = "<?xml version='1.0' encoding='utf-8'?> <para_mgr type='para'> <str type='string'>ki112ftereDE</str> </para_mgr>"
    objHttp.Open "POST", strWebserviceURL, False
    objHttp.SetRequestHeader "Content-Type", "text/xml"

    objHttp.Send (strRequest)

    If objHttp.Status = 200 Then
    xmlDoc.Load (objHttp.responseXML)
    sText = xmlDoc.XML
    Else
    sText = "调用WebService出错,请检查"
    End If

    Range("A1").Value = sText

    End Sub