1.前面配置参考:http://www.cnblogs.com/spring_wang/p/3393147.html

2.pb通用调EAI方法代码如下:

//====================================================================
// 函数: .gf_interface_eai( )
//--------------------------------------------------------------------
// 描述:
//--------------------------------------------------------------------
// 参数:
//     value    datawindow    adw_data    查询时,接收数据的数据窗口
//     value    string        as_xml      上传U8 EAI的XML字符串
//     value    string        as_proc     //操作 增、删、改、查
//     value    string        as_u8key //返回的U8关键字,有时候返回不回来最新的
//--------------------------------------------------------------------
// 返回:  integer成功返回1,失败返回0
//--------------------------------------------------------------------
// 修改历史:
//
//====================================================================

oleobject ixmldom//接收XML文件,分析数据用
OLEObject xmlhttp//EAI连接及发送数据用

integer li_result//返回值
string ls_return
string ls_succeed//0:成功,其它:失败
string ls_dsc//错误描述
string ls_u8key//U8关键字,对于凭证,为U8凭证号
string ls_voucher_type//凭证字
string ls_u8period//凭证U8会计期间
long ll_return
string ls_data//从数据窗口读取的XML数据
long ll_pos
string ls_roottagxmlhttp = CREATE OLEObject
xmlhttp.ConnectToNewObject("MSXML2.XMLHTTP") //创建XMLHTTP对象
xmlhttp.open("POST", "http://localhost/u8eai/import.asp", False)
xmlhttp.send (as_xml)   //发送Request消息

ls_return = xmlhttp.responseText   //获取返回Response消息

destroy xmlhttpixmldom = CREATE OLEObject
ll_return = ixmldom.connecttonewobject( "microsoft.xmldom")//创建DOM对象
if ll_return <> 0 then//创建失败
    destroy ixmldomReturn 0
end if
iXMLDOM.loadXML(ls_return)//需要注意:查询数据成功时,返回的字符串中没有succeed关键字,此时直接取值,会报错
//所以,需要先判断是否成功
if as_proc = 'Query' thenll_pos = pos(ls_return,'succeed=')if ll_pos > 0 thenls_succeed = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("succeed").Text//获取成功失败标识end if
elsels_succeed = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("succeed").Text//获取成功失败标识
end ifif ls_succeed <> '0' and not gf_str_isnull(ls_succeed) thenls_dsc = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("dsc").Text//获取错误描述
    messagebox(ls_succeed,ls_dsc)destroy ixmldom//生成失败日志
    Return 0
end ifif as_proc = 'Query' then//如果是查询,将数据导入到对应数据窗口中ls_return = gf_replaceall(ls_return,'<?xml version="1.0"?>','',1)//先去掉固定头ls_return = mid(ls_return,pos(ls_return,'>')+1,len(ls_return)-pos(ls_return,'>'))//将参数相关去掉ls_return = '<ufinterface>' + ls_return//增加固定头ls_return = '<?xml version="1.0"?>' + ls_return//增加固定头gf_writefile(blob(ls_return),'Import.xml')//必须先生成XML文件adw_data.ImportFile(XML!,'Import.xml')//将XML文件导入数据窗口
elseif as_proc = 'Delete' then//删除暂不处理
else//如果是修改/新增U8数据,需要更新日志ls_roottag = Trim(iXMLDOM.selectSingleNode("ufinterface").Attributes.getNamedItem("request-roottag").Text)if ls_roottag = 'voucher' thenls_voucher_type = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("voucher_type").Text//凭证类别字ls_voucher_type = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("accounting_period").Text//凭证会计期间ls_u8key = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("u8accounting_period").Text//凭证号elsels_u8key = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("key").Text//生成U8数据的关键字end if//更新日志

end if
destroy ixmldom
as_u8key = ls_u8key
Return 1

原创:王春天 2013.11.04

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

转载于:https://www.cnblogs.com/spring_wang/p/3406230.html

U811.1接口EAI系列之一--通用把XML传送给EAI处理方法--PowerBuilder语言相关推荐

  1. U811.1接口EAI系列之二--生成销售出库单调用U8的EAI通用处理方法--PowerBuilder语言...

    1.销售系统销售出库,更新U811.1材料库存的EAI的XML生成. 2.主要根据U8配置会生成出库单和同时是否更新库存量,还是更新现存量等等. 3.具体参考代码如下: 作者:王春天 2013-11- ...

  2. Python接口自动化测试系列文章汇总

    2020 05 20 今天距2021年225天 这是ITester软件测试小栈第125次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 07:30准时推 ...

  3. LCD接口设计系列一:基于eDP接口屏的硬件电路设计

    LCD的接口类型较多,主要有RGB接口.LVDS接口.eDP接口.MIPI-DSI接口.HDMI接口等,这些接口的定义/协议/特点等各有不相同,一直想对这些接口电路做一个总结.由于涉及到的内容比较多, ...

  4. LCD接口设计系列二:基于LVDS接口屏的硬件电路设计

    LCD的接口类型较多,主要有RGB接口.LVDS接口.eDP接口.MIPI-DSI接口.HDMI接口等,这些接口的定义/协议/特点等各有不相同,一直想对这些接口电路做一个总结.由于涉及到的内容比较多, ...

  5. 微博开放平台接口整理系列--短链转长链

    前言: 因为工作原因,开始开辟一个新的分类:微博开放接口探究系列,目的是把自己日常使用的一些东东记录下来. 正文: 本文主要是"短链转长链"的接口. 请求地址: http://ap ...

  6. 安装Java的SCIP接口JSCIPOpt系列

    安装python的SCIP接口PySCIPOpt系列 https://blog.csdn.net/qq_40275637/article/details/109702809 1.安装环境 ①cmake ...

  7. 自己用C#写的控制三菱FX5U PLC(三菱任何系列都通用,网口,串口都行)的上位机程序

    自己用C#写的控制三菱FX5U PLC(三菱任何系列都通用,网口,串口都行)的上位机程序,PLC源程序也附上,是学习C#和三菱PLC通信的好例子,有对辅助继电器M,对单字,双子D的读写,IO的监控,报 ...

  8. C#写的控制三菱FX5U PLC(三菱任何系列都通用,网口,串口都行)的上位机程序

    自己用C#写的控制三菱FX5U PLC(三菱任何系列都通用,网口,串口都行)的上位机程序,PLC源程序也附上,是学习C#和三菱PLC通信的好例子,有对辅助继电器M,对单字,双子D的读写,IO的监控,报 ...

  9. [CXF REST标准实战系列] 一、JAXB xml与javaBean的转换(转)

    转自:[CXF REST标准实战系列] 一.JAXB xml与javaBean的转换 文章Points: 1.不认识到犯错,然后得到永久的教训. 2.认识JAXB 3.代码实战 1.不认识到犯错,然后 ...

最新文章

  1. 电脑显示服务器地址无法ping通,网关无法Ping通故障及解决方法
  2. OnInitDialog()函数
  3. 2007注册会计师考试
  4. 前端学习(2863):简单秒杀系统学习之优化cookie
  5. 数十篇推荐系统论文被批无法复现:源码、数据集均缺失!
  6. [LOJ 6485]LJJ 学二项式定理
  7. memcpy-avx-unaligned/strcpy_sse2_unaligned崩溃记录
  8. 斐讯 K2 路由器 无线中继 无线扩展设置教程图文
  9. 多媒体计算机主要有哪些基本特性,多媒体的特点主要包括哪些?
  10. html时间倒计时代码,html网页时间显示代码和倒计时代码大全
  11. Qt 串口调试软件自动发送数据
  12. 武汉大学服务器项目投标函,武汉大学
  13. 你不知道的 Canvas 表格交互
  14. Navicat for MySQL的安装
  15. nginx $remote_addr 详解
  16. “有些委屈如果要一辈子背在身上,那我宁愿犯法。任何事情,你要给我一个说法,你不给我一个说法,我就给你一个说法。”
  17. 驱动中platform resource 和 porbe 之间的关系
  18. 程序员最喜欢说的20句话
  19. 【通信原理】复习笔记
  20. MS | 使用小技巧不完全总结

热门文章

  1. golang中的goredis
  2. golang操作redis
  3. c++ set有序性
  4. getservbyname和getservbyport
  5. MySQL笔记5:如何创建和删除索引?
  6. WordPress导出全静态化网站
  7. AJAX的post请求与上传文件
  8. JavaScript原型彻底理解2---继承中的原型链
  9. iOS8 Size Classes的理解与使用
  10. Redhat7 systemctl命令