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. HOW TO: Synchronize changes when completing a P2V or V2V with VMware vCenter Converter Standalone 5.1

    http://www.experts-exchange.com/Software/VMWare/A_11489-HOW-TO-Synchronize-changes-when-completing-a ...

  2. mybatis+spring配置

    可参考:http://www.javacodegeeks.com/2014/02/building-java-web-application-using-mybatis-with-spring.htm ...

  3. vue build后运行错误

    events.js:141 throw er; // Unhandled 'error' event 这个是端口占用的问题 $ http-server dist events.js:141 throw ...

  4. mule学习笔记

    mule学习笔记 1.安装&配置 版本:mule 2.2.1 操作: 1) 下载.解压 2)配置环境变量:MULE_HOME.PATH 3)如果网络环境使用代理,找到%MULE_HOME%/c ...

  5. C++ 函数返回局部变量的std::move()的适用场景(转)

    作者:神奇先生链接:https://www.zhihu.com/question/57048704/answer/151446405来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  6. fiddlescript 操作

    什么是 JScript .NET Fiddler Script 是用JScript.NET语言写的 http://docs.telerik.com/fiddler/KnowledgeBase/Fidd ...

  7. shell脚本read -t 超时输入测试

    [root@server0 shellStudy]# cat timeout.sh #!/bin/bash TIMEOUT=3 #超时间隔 echo "What is your name?& ...

  8. Window查看系统激活状态

    Window小技巧 #快捷键 Win+G --录像 psr --问题记录器 #查看系统激活信息 WIN键+R调出运行框,在运行框中cmd winver 回车后就能看到当前系统的版本 slmgr.vbs ...

  9. [转载]virtual&nbsp;box如何生成新的UUID

    原文地址:virtual box如何生成新的UUID作者:阿昭 问题描述:在为Virtual Box加载多台虚拟机器(显然这些虚拟机器都来自一个模板)的时候,出现如下错误: "Cannot ...

  10. 内存问题排查工具 --- valgrind

    1. 概述 2. Valgrind 3. 内存泄漏监测 3.1. 示例代码 3.2. 编译它 3.3. 用Valgrind监测进程的内存泄漏 4. 悬挂指针 4.1. 示例代码 4.2. Valgri ...