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. 微信 js api[转]

    rainbow661314 微信api /**! * 微信内置浏览器的Javascript API,功能包括: * * 1.分享到微信朋友圈 * 2.分享给微信好友 * 3.分享到腾讯微博 * 4.新 ...

  2. SQL与SQL Server

    SQL--关系数据库的国际标准语言. SQL Server--著名的数据库管理系统.其他著名的数据库管理系统还有Oracle.Sybase等,它们都实现了SQL语言.   在SQL中,完成所有核心功能 ...

  3. JERSEY中文翻译(第三章、JAX-RS Application, Resources and Sub-Resources)

    JAX-RS Application Resource and Sub-Resource 本章要介绍的是JAX-RS的核心概念——Resouce.Sub-Resource JAX-RS的2.0的jav ...

  4. go语言生成uuid

    操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 问题描述 golang没有提供生成uuid的接口,但开发中确实需要uuid. 这里把看到的代码记录下,也方便我以后查阅. 解决方案 ...

  5. Ulua_toLua_基本案例(二)_ScriptsFromFile

    在Untiy中用Lua.必需要LuaInterface. LuaInterface的介绍请看:点击打开链接 能够先光写Lua,生成.lua的纯文件. 再Unity中通过,luaState.DoFile ...

  6. docker 实战---多台物理主机的联网,容器桥接到物理网络拓扑图(四)

    非常多朋友说上一篇中对网络的描写叙述不够清楚,感谢热心的群友彩笔程序猿: 提供了他理解的图,在这里贴一下: 我自己也补画了一副多台机器互联的图,欢迎大家留言讨论: 主机A和主机B的网卡一都连着物理交换 ...

  7. Android开发之将拍摄的图片传至服务器

    package com.example.oldtab; import java.io.ByteArrayOutputStream; import java.io.File; import java.i ...

  8. django之创建第10-1个项目-图片上传并记录上传时间

    1.百度云盘:django之创建第10-1个项目-图片上传并记录上传时间 2.主要修改的配置文件有3个,forms.views和models3个文件以及html 3.forms.py文件修改 #cod ...

  9. Centos7新装配置, 并使用openvpn client长连接远程备份

    1. 修改本机hostname // 查看本机hostname hostnamectl //永久性的修改主机名称, 修改完后新开的terminal中立刻生效. 也可以直接修改 /etc/hostnam ...

  10. 初始建库SGA该设多大、PGA该设多大的建议

    1.背景情况 非常多新业务系统上线,大部分DBA也不懂业务.就闷着头建库,SGA值设多大,PGA设多大,随便指定一个值就得了,执行一段时间后,或许就由于这个值是随便指定的.比如SGA+PGA大于总物理 ...