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