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

相关文章

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

Pandas透视表(Pivot Table)的具体使用

《Pandas透视表(PivotTable)的具体使用》透视表用于在数据分析和处理过程中进行数据重塑和汇总,本文就来介绍一下Pandas透视表(PivotTable)的具体使用,感兴趣的可以了解一下... 目录前言什么是透视表?使用步骤1. 引入必要的库2. 读取数据3. 创建透视表4. 查看透视表总结前言

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3