纯干货 C# 通过 RFC_READ_TABLE 读取 SAP TABLE
SAP系统又称企业管理解决方案,是全球企业管理软件与解决方案的技术领袖,同时也是市场领导者。通过其应用软件、服务与支持,SAP持续不断向全球各行业企业提供全面的企业级管理软件解决方案。 在实际开发过程中,通常会遇见其他自主开发的软件系统需要与SAP进行对接,进行数据交互,本文介绍如何通过 C# 语言编写程式访问SAP并查询我们需要的数据。
rfcTable与DataTable
用C#开发的程序,一般采用NCO的方式进行访问数据库,里面涉及到一个rfcTable的类型,这也是一个表,但是跟我们平常工的System.Data里面的DataTable不一样,rfcTable是 SAP 里面返回的一种类型,它也支持循环遍历,我们可以根据实际需要将其转换成DataTable来使用。
SAP为我们提供一个名为【RFC_READ_TABLE】的RFC,我们可以通过这个 RFC 查询表数据,具体使用方法如下:
第一步:定义链接参数
string path="D:\\config.xml"; // 这里是一个配置文件 string SapServer = Common.XmlHelper.GetXmlReader(path, "Config", "SapServer");
string SapClient = Common.XmlHelper.GetXmlReader(path, "Config", "SapClient");
string SapSysNumber = Common.XmlHelper.GetXmlReader(path, "Config", "SapSysNumber");
string SapUser = Common.XmlHelper.GetXmlReader(path, "Config", "SapUser");
string SapPwd = Common.XmlHelper.GetXmlReader(path, "Config", "SapPwd");
string CurrPlant = Common.XmlHelper.GetXmlReader(path, "Config", "Plant");
第二步:实例化参数对象
RfcConfigParameters rfcPar = new RfcConfigParameters();
rfcPar.Add(RfcConfigParameters.Name, "CON");
rfcPar.Add(RfcConfigParameters.AppServerHost, SapServer);
rfcPar.Add(RfcConfigParameters.Client, SapClient);
rfcPar.Add(RfcConfigParameters.User, SapUser);
rfcPar.Add(RfcConfigParameters.Password, SapPwd);
rfcPar.Add(RfcConfigParameters.SystemNumber, SapSysNumber);
rfcPar.Add(RfcConfigParameters.Language, "EN");
dest = RfcDestinationManager.GetDestination(rfcPar);
RfcRepository rfcrep = dest.Repository;
第三步:执行查询
myfun = rfcrep.CreateFunction("RFC_READ_TABLE");
IRfcTable IrfTable = myfun.GetTable("DATA");
myfun.SetValue("QUERY_TABLE", "ZP092"); //ZP092表示需要查询的表名
myfun.SetValue("DELIMITER", "#");//#表示返回数据的分割符号
myfun.SetValue("ROWCOUNT", "");//0表示返回所有的数据 IRfcTable IrfTable2 = myfun.GetTable("OPTIONS"); //OPTIONS为表名,也就是我们需要取数据的表
myfun.Invoke(dest);
此时,IrfTable 里已经有我们需要的数据了,我们可以根据实际需求进行处理。
如果对您有帮助,请帮忙给个推荐,谢谢!
纯干货 C# 通过 RFC_READ_TABLE 读取 SAP TABLE的更多相关文章
- HTML+CSS纯干货就业前基础到精通系统学习2016/9/3
1:HTML纯干货学习后的达到的效果 (1):会使用HTML的基本结构,创建网页 (2):会使用文本字体相关标签,实现文字修饰和布局 (3):会使用图像.超链接相关标签,实现图文并茂的页面 (4):会 ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- IT技术学习指导之Linux系统入门的4个阶段(纯干货带图)
IT技术学习指导之Linux系统入门的4个阶段(纯干货带图) 全世界60%的人都在使用Linux.几乎没有人没有受到Linux系统的"恩惠",我们享受的大量服务(包括网页服务.聊天 ...
- Java程序员的日常——经验贴(纯干货)
工作当中遇到的事情比较杂,因此涉及的知识点也很多.这里暂且记录一下,今天遇到的知识点,纯干货~ 关于文件的解压和压缩 如果你的系统不支持tar -z命令 如果是古老的Unix系统,可能并不认识tar ...
- 数据导入读取read.table函数详解,如何读取不规则的数据(fill=T)
函数 read.table 是读取矩形格子状数据最为便利的方式.因为实际可能遇到的情况比较多,所以预设了一些函数.这些函数调用了 read.table 但改变了它的一些默认参数. 注意,read.ta ...
- 360手机助手内部资料曝光,63张PPT纯干货
360手机助手内部资料曝光,63张PPT纯干货 日前,国内最大的安卓应用商店360手机助手发布了<2016年手机软件行业趋势绿皮书>,这份绿皮书对2015年以来移动互联网的趋势做了总结,展 ...
- (纯干货)最新WEB前端学习路线汇总初学者必看
Web前端好学吗?这是很多web学习者常问的问题,想要学习一门自己从未接触过的领域,事先有些了解并知道要学的内容,对接下来的学习会有事半功倍的效果.在当下来说web前端开发工程师可谓是高福利.高薪水的 ...
- 纯干货:深度学习实现之空间变换网络-part2
https://www.jianshu.com/p/854d111670b6 纯干货:深度学习实现之空间变换网络-part1 在第一部分中,我们主要介绍了两个非常重要的概念:仿射变换和双线性插值,并了 ...
- Excel读取Word Table元素
Option Explicit Sub Mian() Application.ScreenUpdating = False Application.DisplayAlerts = False Appl ...
随机推荐
- 大厂面试题:集群部署时的分布式 session 如何实现?
面试官心理分析 面试官问了你一堆 dubbo 是怎么玩儿的,你会玩儿 dubbo 就可以把单块系统弄成分布式系统,然后分布式之后接踵而来的就是一堆问题,最大的问题就是分布式事务.接口幂等性.分布式锁, ...
- javascript输入用户名,在服务器中显示出了
## 第一个文件 pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra ...
- css手写一个表头固定
Bootstrap,layui等前端框架里面都对表头固定,表格滚动有实现,偏偏刚入职的公司选择了手动渲染表格,后期又觉得表格数据拉太长想要做表头固定.为了避免对代码改动太大,所以决定手写表头固定 主要 ...
- 前端每日实战:42# 视频演示如何用纯 CSS 创作一个均衡器 loader 动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/oybWBy 可交互视频教程 此视频 ...
- 简说Python之图形初体验
针对孩子,最容易引起小孩的感官认知的就是图形.因此,系统运用图形编程,可以更好地让孩子喜欢上编程. turtle叫做,Turtle graphics.是python第三方的画图模块工具.可以通过imp ...
- C++ 别踩白块小游戏练习
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <easyx.h> ...
- 通过CGAL将一个多边形剖分成Delaunay三角网
目录 1. 概述 2. 实现 3. 结果 4. 参考 1. 概述 对于平面上的点集,通过Delaunay三角剖分算法能够构建一个具有空圆特性和最大化最小角特性的三角网.空圆特性其实就是对于两个共边的三 ...
- juery 弹出框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 用 SendGrid 发送免费电子邮件
1. 概述 SendGrid 免费账号可以限额发送 100/天封邮件,虽然比 Mailgun 的每月 10000 封的免费额度少,但胜成注册无需绑定信息卡. 集成 SendGrid 有 SMTP 和 ...
- java输入输出流操作同一资源实现覆盖引发冲突的解析
一.问题发生的场景 题目:把s.txt中大写转成小写,小写转成大写,空格转成下划线,在输入到文件中覆盖之前的 前面的没有问题,问题出现在后面的覆盖文件上,输入流.输出流要操作同一个文件的问题 二.小白 ...