SAP之RFC_READ_TABLE
RFC_READ_TABLE 是SAP系统自带的RFC函数,用于读取SAP数据库表的结构和数据。使用方法如下:
IMPORTING
QUERY_TABLE:读取的表名
DELIMITER:输出字段(DATA参数)之间的分隔符
NO_DATA:输入’X’时,不向传出表DATA输出数据
ROWSKIP:输出的第一条数据的行号(从0开始)
ROWCOUNT:从ROWSKIP开始,一共输出的数据行数(0代表所有数据)
TABLE
OPTIONS:表查询条件,比如SKA1表,KTOPL = 'Z900’表示查收Z900账目表的会计科目数据,留空 代表所有数据。
FIELDS:输出的表字段,留空代表输出所有字段。
DATA:输出的数据记录。
假设我们要读取 Z900 账目表有所有会计科目,只需要输出 KTOPL (账目表)和 SAKNR (会计科目)两个字段
------------------------------------------------
Public Sub Read_Table_SKA1()
Dim functions As SAPFunctionsOCX.SAPFunctions
Dim options As SAPTableFactoryCtrl.Table
Dim fields As SAPTableFactoryCtrl.Table
Dim data As SAPTableFactoryCtrl.Table
Call Logon
Set functions = New SAPFunctions
Set functions.Connection = sapConnection
Dim fm As SAPFunctionsOCX.Function
Set fm = functions.Add("RFC_READ_TABLE")
fm.Exports("QUERY_TABLE").Value = "SKA1" ' 要查询的表
fm.Exports("DELIMITER").Value = "," ' Data表要存储的数据以逗号分割
Set options = fm.Tables("OPTIONS")
Set fields = fm.Tables("FIELDS")
Set data = fm.Tables("DATA")
' 以下是表参数填充的方法
' options表参数限定要选择的数据
options.FreeTable
options.AppendRow
options(1, "TEXT") = " KTOPL = 'Z900' " '第一行列名为TEXT的列增加选择条件
' fields表参数限定要输出的列,如果不限定
' 默认输出所有列
' 我只想输出KTOPL和SAKNR两列
fields.FreeTable
fields.AppendRow
fields(1, "FIELDNAME") = "KTOPL"
fields.AppendRow
fields(2, "FIELDNAME") = "SAKNR"
fm.Call
' 如果有Exception , 说明有错误产生
If fm.Exception <> "" Then
Debug.Print fm.Exception
Exit Sub
End If
' 将DATA输出到立即窗口
Dim row As SAPTableFactoryCtrl.row
Dim col As SAPTableFactoryCtrl.Column
' 按行读取,DATA表只有一列
For Each row In data.Rows
Debug.Print row.Value("WA")
Next
Call Logoff
End Sub
------------------------------------------------
表填充的方法:
填充第一行第一列: sometable(1, 1) = “XXX”
或者根据列名:sometable(1, “FIELDNAME”) = “XXX”
因为table有一个RowCount属性,我们总是可以将RowCount用于代码中,增加灵活性。比如上面的代码可以写成:
------------------------------------------------
fields.FreeTable
fields.AppendRow
fields(fields.RowCount, "FIELDNAME") = "KTOPL"
fields.AppendRow
fields(fields.RowCount, "FIELDNAME") = "SAKNR"
------------------------------------------------
文章来源:https://blog.csdn.net/stone0823/article/details/50329257
SAP之RFC_READ_TABLE的更多相关文章
- 纯干货 C# 通过 RFC_READ_TABLE 读取 SAP TABLE
SAP系统又称企业管理解决方案,是全球企业管理软件与解决方案的技术领袖,同时也是市场领导者.通过其应用软件.服务与支持,SAP持续不断向全球各行业企业提供全面的企业级管理软件解决方案. 在实际开发过程 ...
- SAP接口编程 之 JCo3.0系列(03) : Table参数
Table参数作为export parameter BAPI_COMPANYCODE_GETDETAIL是一个适合演示的函数,没有import paramter参数,调用后COMPANYCODE_GE ...
- SAP创建XML 文件
TYPES: BEGIN OF xml_line_type, data(256) TYPE x, END OF xml_line_type, xml_tab_type TYPE TABLE OF xm ...
- SAP CRM 性能小技巧
导言 本页面打算收集SAP CRM实施中可以用于避免性能问题的注意事项,重要的事项会由图标标识. 如果你有其他的技巧想要说出来,别犹豫! 性能注意事项 通用 缓存读取类访问,特别是在性能关键的地方,比 ...
- SAP CRM 树视图(TREE VIEW)
树视图可以用于表示数据的层次. 例如:SAP CRM中的组织结构数据可以表示为树视图. 在SAP CRM Web UI的术语当中,没有像表视图(table view)或者表单视图(form view) ...
- SAP CRM 显示消息/在消息中进行导航
向用户展示消息,在任何软件中都是十分重要的. 在SAP CRM WEB UI中展示消息,不是一项很难的任务,只需要创建消息并在之后调用方法来显示它 消息类和消息号: 我在SE91中创建了如下的消息类和 ...
- BPM与 SAP & Oracle EBS集成解决方案分享
一.需求分析 SAP和Oracle EBS都是作为全球顶级的的ERP产 品,得到了众多客户的青睐.然而由于系统庞大.价格昂贵以及定位不同,客户在实施过程中经常会面临以下困惑: 1.SAP如何实现&qu ...
- 【SAP业务模式】之ICS(四):组织单元的配置
SAP的ICS业务后台配置主要有以下几个配置点: 1.组织单元的配置(公司代码.销售组织.工厂.采购组织等): 2.主数据的部分: 3.订单和开票的定价过程: 4.开票输出类型: 5.公司间发票的配置 ...
- 【SAP业务模式】之ICS(三):前台操作
本片博文开始讲解SAP前台是如何实现ICS业务模式的. 一.VA01开立销售订单 我这里为了方便,创建了一个订单类型ZMIV作为公司间销售的订单类型,其实公司间销售订单跟标准的销售订单是一致的.同时, ...
随机推荐
- python geohash算法逆地址编码原理初探
1.geohash有什么用途呢?这几天刚好有个测试任务是关于设备信息位置处理的,里面提及到geohash:抱着测试的警觉性,打算研读一下这个geohash到底是什么?Geohash 是一种地理编码系统 ...
- Codeforce612C
You are given string s consists of opening and closing brackets of four kinds <>,{}, [], (). T ...
- ACM-ICPC 2018 焦作赛区网络预赛 B题 Mathematical Curse
A prince of the Science Continent was imprisoned in a castle because of his contempt for mathematics ...
- 洛谷 题解 P3385 【【模板】负环】
一.声明 在下面的描述中,未说明的情况下,\(N\) 是顶点数,\(M\)是边数. 二.判负环算法盘点 想到判负环,我们会想到很多的判负环算法.例如: 1. Bellman-Ford 判负环 这个算法 ...
- Java并发:线程限制
最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想,也和大家分享.了解有关Java中的并发问题和线程限制的更多信息. 在此文中,我们将探讨线程限制,它的含义以及如何实现.因此 ...
- 【CSS】329- 非常强!3行核心css代码的rate评分组件
像rate评分组件一般都用javascript写,所以这次将是一个全新的尝试,用css实现一个rate评分 ❗ 核心代码也就三行? 01 效果图 02 原理 主要是借助radio单选框,梳理如下: 去 ...
- vue中通过.sync修饰符实现子组件修改父组件数据
vue父子通讯是单向数据流,也就是子组件不能修改父组件的值,但是在一些情况下是需要这样做的. 先看官方文档: 接下来举例实现 1.实现一个双向数据绑定,子组件改变的时候,父组件也在改变 父组件 < ...
- 【hibernate】常用注解
[hibernate]常用注解 转载:https://www.cnblogs.com/yangchongxing/p/10357118.html 目录 ======================== ...
- harbor客户端证书问题
自己搭了个harbor来托管private docker image,按照官方的教程非常顺利,最后通过jenkins打包后push docker image 的时候发现证书信任有问题了 Error r ...
- Python的小整数池
此处经常会作为面试题!!! 小整数池目的:节省内存,提高执行效率 需要注意的是:Python实现int的时候有个小整数池.为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器 ...