U811.1接口EAI系列之一--通用把XML传送给EAI处理方法--PowerBuilder语言
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语言的更多相关文章
- U811.1接口EAI系列之一-通用访问EAI方法--统一调用EAI公共方法--VB语言
1.现在做的项目是关于业务系统与U811.1的接口项目. 2.那么就需要调整通过EAI调用生成U8业务单据. 3.下面就一个通用的向U8-EAI传递XML的通用方法 4.肯定有人会问怎么还用VB调用呢 ...
- U811.1接口EAI系列之二--生成销售出库单调用U8的EAI通用处理方法--PowerBuilder语言
1.销售系统销售出库,更新U811.1材料库存的EAI的XML生成. 2.主要根据U8配置会生成出库单和同时是否更新库存量,还是更新现存量等等. 3.具体参考代码如下: 作者:王春天 2013-11- ...
- RobotFrameWork接口项目分层及通用控制方式
1. 前言 上一篇文章介绍了在设计接口用例之前应遵守的设计规范,详见<RobotFramework接口设计规范>,当然读者公司的内部规范也不一定非得完全遵循笔者所提到的,适合自己公司内部的 ...
- 【转】24Cxx 系列EEPROM通用程序及应用
关于I2C 学习的时候介绍得最多的就是24C02 这里存储EEPROM了,但学的时候基本只是讲讲简单的I2C 的总线数据传输而已,即使先gooogle上搜索也绝大部分这这样的文章,很少有说到如何在实际 ...
- Jmeter系列(12)- 上传接口压测
step-1上传接口分析 上传接口源码分析:分析上传文件类型.有无大小限制.存放上传文件服务器 没有源码通过抓包工具,或者Chrome查看框架源代码 接口路径/uploadfile,接口请求POST, ...
- JAVA反射系列之Field,java.lang.reflect.Field使用获取方法
JAVA反射系列之Field,java.lang.reflect.Field使用获取方法. 转载https://my.oschina.net/u/1407116/blog/209383 摘要 ja ...
- [CXF REST标准实战系列] 一、JAXB xml与javaBean的转换(转)
转自:[CXF REST标准实战系列] 一.JAXB xml与javaBean的转换 文章Points: 1.不认识到犯错,然后得到永久的教训. 2.认识JAXB 3.代码实战 1.不认识到犯错,然后 ...
- Mybatis系列(三)XML
Mybatis系列(三)XML 1.pom.xml依赖: <?xml version="1.0" encoding="UTF-8"?> <pr ...
- 【spring源码系列】之【xml解析】
1. 读源码的方法 java程序员都知道读源码的重要性,尤其是spring的源码,代码设计不仅优雅,而且功能越来越强大,几乎可以与很多开源框架整合,让应用更易于专注业务领域开发.但是能把spring的 ...
随机推荐
- Go语言使用Beego的ORM插入Mysql后,时区不一致的解决方案
一.解决方案: 方案一: orm.Debug = false orm.DefaultTimeLoc = time.UTC orm.RegisterDriver("mysql", o ...
- java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.endsWith(Ljava/lang/String;Ljava/lang/String;)Z
这是一个包冲突的典型错误,今天搞了一天.从错误信息就能看出是commons.lang出现的问题,解决方案:去掉新增加的conmons.lang依赖,加载其他的版本. 1.在编译之后的目录查看加载的包版 ...
- 算法笔记_228:信用卡号校验(Java)
目录 1 问题描述 2 解决方案 1 问题描述 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证 ...
- ES6学习笔记二:各种扩展
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7242967.html 一:字符串扩展 1:字符串遍历器 for (let char of str) { // ...
- Tomcat上文件的绝对路径访问笔记
部署到Tomcat上的web项目的文件在代码中访问,可以先通过request获取到项目的根目录绝对路径,然后自己拼接子目录路径,直到文件.方法如下: String realpath=request.g ...
- 批处理/命令行合并js,递归合并子目录js文件
for /r %%i in (*.js) do type "%%i">>xxx-all.js java -jar yuicompressor.jar --type js ...
- java导出excel工具类
java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar 工具类调用例如以下: package com.qlwb.business.util; i ...
- http://blog.csdn.net/u011277123/article/details/53665302
导读:Oracle中,除Exp命令可进行一般的全库.全用户导出外,还可通过增加相关参数条件实现对部分库表或数据的导出. 测试环境 在如下图的测试环境中,当前登录用户名为“jck”,该用户下有200多张 ...
- 【转】Linux定时任务之 【crontab】
Linux定时任务Crontab命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另 外, ...
- Kafka流处理平台
1. Kafka简介 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性 ...