SAP接口编程-RFC系列13 : Table Parameter作为输入参数

2024-02-05 13:58

本文主要是介绍SAP接口编程-RFC系列13 : Table Parameter作为输入参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在之前VBA代码中,我们已经介绍过table parameter作为输入参数的要点。本篇主要演示c#使用table parameter作为importing parameter的语法。以RFC_READ_TABLE为例。

using System.Data;
using SAPLogonCtrl;
using SAPFunctionsOCX;
using ConnectionProvider;
using SAPTableFactoryCtrl;// Table parameter作为importing parameter时的使用方法
namespace SAPRfcCall
{public class RFC3{private Connection connection;// get table SKA1 contentspublic DataTable GetSKA1(){DataTable ska1 = null;bool isSuccessful = SAPConnection.SilentLogon("192.168.65.100", "D01", 00, "001", "STONE", "sappwd", "ZH");if (isSuccessful) {connection = SAPConnection.Connection;ska1 = DoGetTableLines();SAPConnection.Logoff();}return ska1;}public DataTable DoGetTableLines(){if (connection.IsConnected != CRfcConnectionStatus.tloRfcConnected) {return null;}SAPFunctions functions = new SAPFunctions();functions.Connection = connection;Function fm = functions.Add("RFC_READ_TABLE");fm.Exports["QUERY_TABLE"].Value = "SKA1";fm.Exports["DELIMITER"].Value = "~";// criterial to filter data retrievedTables tables = fm.Tables;Table options = tables.get_Item("OPTIONS");options.AppendGridData(1, 1, 1, "KTOPL = 'Z900' ");// only cares for two fieldsTable fields = tables.get_Item("FIELDS");fields.AppendGridData(1, 1, 1, "KTOPL"); // first rowfields.AppendGridData(2, 1, 1, "SAKNR"); // second rowfm.Call();Table data = fm.Tables["DATA"];DataTable tableLines = Utils.ToDataTable(data);return tableLines;}}
}

说明:
向table参数添加行时,与VBA语法不同,使用AppendGridData()方法。
另外,获取importing参数、exporting参数、table参数,可以有以下两种方法:

fm.get_Exports("QUERY_TABLE").Value = "SKA1";// 或者
fm.Exports["QUERY_TABLE"].Value = "SKA1"
Tables tables = fm.Tables;
Table options = tables.get_Item("OPTIONS");
// or : Table options = fm.Tables["OPTIONS"];

单元测试

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using SAPRfcCall;
using System.Data;namespace UnitTestProject
{[TestClass]public class TestRFC3{[TestMethod]public void TestRFCReadTable(){RFC3 rfc = new RFC3();DataTable ska1 = rfc.GetSKA1();Utils.ConsolePrint(ska1);}}
}

Utils.ConsolePrint()方法在Output窗口打印dataTable,代码如下:

public static void ConsolePrint(DataTable dataTable)
{// function: print dataTable contents in consoleforeach (DataRow row in dataTable.Rows) {foreach (DataColumn col in dataTable.Columns) {Console.Write(row[col.Caption].ToString() + "\t");}Console.WriteLine();}
}

VBA版对照:http://blog.csdn.net/stone0823/article/details/50329257

这篇关于SAP接口编程-RFC系列13 : Table Parameter作为输入参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/681138

相关文章

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL的ALTER TABLE命令的使用解读

《MySQL的ALTERTABLE命令的使用解读》:本文主要介绍MySQL的ALTERTABLE命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、查看所建表的编China编程码格式2、修改表的编码格式3、修改列队数据类型4、添加列5、修改列的位置5.1、把列

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos