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_roottag xmlhttp = 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 xmlhttp ixmldom = CREATE OLEObject
ll_return = ixmldom.connecttonewobject( "microsoft.xmldom")//创建DOM对象
if ll_return <> then//创建失败
destroy ixmldom
Return
end if
iXMLDOM.loadXML(ls_return) //需要注意:查询数据成功时,返回的字符串中没有succeed关键字,此时直接取值,会报错
//所以,需要先判断是否成功
if as_proc = 'Query' then
ll_pos = pos(ls_return,'succeed=')
if ll_pos > then
ls_succeed = iXMLDOM.selectSingleNode("ufinterface").childNodes().Attributes.getNamedItem("succeed").Text//获取成功失败标识
end if
else
ls_succeed = iXMLDOM.selectSingleNode("ufinterface").childNodes().Attributes.getNamedItem("succeed").Text//获取成功失败标识
end if if ls_succeed <> '' and not gf_str_isnull(ls_succeed) then
ls_dsc = iXMLDOM.selectSingleNode("ufinterface").childNodes().Attributes.getNamedItem("dsc").Text//获取错误描述
messagebox(ls_succeed,ls_dsc)
destroy ixmldom
//生成失败日志 Return
end if if as_proc = 'Query' then//如果是查询,将数据导入到对应数据窗口中
ls_return = gf_replaceall(ls_return,'<?xml version="1.0"?>','',)//先去掉固定头
ls_return = mid(ls_return,pos(ls_return,'>')+,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' then
ls_voucher_type = iXMLDOM.selectSingleNode("ufinterface").childNodes().Attributes.getNamedItem("voucher_type").Text//凭证类别字
ls_voucher_type = iXMLDOM.selectSingleNode("ufinterface").childNodes().Attributes.getNamedItem("accounting_period").Text//凭证会计期间
ls_u8key = iXMLDOM.selectSingleNode("ufinterface").childNodes().Attributes.getNamedItem("u8accounting_period").Text//凭证号
else
ls_u8key = iXMLDOM.selectSingleNode("ufinterface").childNodes().Attributes.getNamedItem("key").Text//生成U8数据的关键字
end if
//更新日志 end if
destroy ixmldom
as_u8key = ls_u8key
Return

原创:王春天 2013.11.04

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

U811.1接口EAI系列之一--通用把XML传送给EAI处理方法--PowerBuilder语言的更多相关文章

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

    1.现在做的项目是关于业务系统与U811.1的接口项目. 2.那么就需要调整通过EAI调用生成U8业务单据. 3.下面就一个通用的向U8-EAI传递XML的通用方法 4.肯定有人会问怎么还用VB调用呢 ...

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

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

  3. RobotFrameWork接口项目分层及通用控制方式

    1. 前言 上一篇文章介绍了在设计接口用例之前应遵守的设计规范,详见<RobotFramework接口设计规范>,当然读者公司的内部规范也不一定非得完全遵循笔者所提到的,适合自己公司内部的 ...

  4. 【转】24Cxx 系列EEPROM通用程序及应用

    关于I2C 学习的时候介绍得最多的就是24C02 这里存储EEPROM了,但学的时候基本只是讲讲简单的I2C 的总线数据传输而已,即使先gooogle上搜索也绝大部分这这样的文章,很少有说到如何在实际 ...

  5. Jmeter系列(12)- 上传接口压测

    step-1上传接口分析 上传接口源码分析:分析上传文件类型.有无大小限制.存放上传文件服务器 没有源码通过抓包工具,或者Chrome查看框架源代码 接口路径/uploadfile,接口请求POST, ...

  6. JAVA反射系列之Field,java.lang.reflect.Field使用获取方法

    JAVA反射系列之Field,java.lang.reflect.Field使用获取方法.   转载https://my.oschina.net/u/1407116/blog/209383 摘要 ja ...

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

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

  8. Mybatis系列(三)XML

    Mybatis系列(三)XML 1.pom.xml依赖: <?xml version="1.0" encoding="UTF-8"?> <pr ...

  9. 【spring源码系列】之【xml解析】

    1. 读源码的方法 java程序员都知道读源码的重要性,尤其是spring的源码,代码设计不仅优雅,而且功能越来越强大,几乎可以与很多开源框架整合,让应用更易于专注业务领域开发.但是能把spring的 ...

随机推荐

  1. 基于TQ2440开发板的WiFi模块的使用经验总结

    一.软.硬件资源准备: 内核版本:linux-2.6.30.4 交叉编译器版本:4.3.3 wpa_supplicant工具:wpa_supplicant-0.7.3.tar ; openssl-0. ...

  2. JAVA设计模式——第 4 章 多例模式【Multition Pattern】(转)

    一个国家有多个皇帝这种情况有没有?还确实有,就出现在明朝,那三国期间的算不算,不算!因为各自称帝,各有各的地盘,国号不同.大家还记得那首诗<石灰吟>吗?作者是谁?于谦,他是被谁杀死的?明英 ...

  3. Linux多线程同步之相互排斥量和条件变量

    1. 什么是相互排斥量 相互排斥量从本质上说是一把锁,在訪问共享资源前对相互排斥量进行加锁,在訪问完毕后释放相互排斥量上的锁. 对相互排斥量进行加锁以后,不论什么其它试图再次对相互排斥量加锁的线程将会 ...

  4. 【Oracle】RAC下的一些经常使用命令(一)

    节点层: olsnodes -n:显示每一个节点编号. [oracle@rac1 ~]# olsnodes -n rac1    1 rac2    2 -p:显示每一个节点用于private int ...

  5. OpenERP 7中 openerp-server.conf 的解释

    服务器启动配置 – 通用项 程序代码: [选择] # Admin password for creating, restoring and backing up databases admin_pas ...

  6. Java常用的非受检异常

    IllegalArgumentException 非 null 的参数值不正确 IllegalStateException 对于方法调用而言,对象状态不合适 NullPointException 参数 ...

  7. 学习练习SQL的数据库employee文件

    这个地址是一个已经集成了employee的database的sql文件.所以你可以下载这个sql文件,然后执行sql语句到对应的数据库中,这样你就可以练习sql语句了. 第一个链接是用户指导如何使用的 ...

  8. excel主题使文档更加具有专业化

    如上图所示,表格或图表有很多的配色方案. 1.每个主题,会有一套配色方案,而且这些配色方案相对来讲都是比较协调统一的, 2.页面布局----主题,选择好主题之后再套用配色方案

  9. python之模块contextlib 加强with语句而存在

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块contextlib,为加强with语句而存在 #特别注意:python3和python2 ...

  10. 转 php简单伪静态实例

    mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面.下面我详细说说它的使用方法!对初学者很有用的哦! 1.检测Apache是否支持mod_rewrite 通过php提供的p ...