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

相关文章

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

C#异步编程ConfigureAwait的使用小结

《C#异步编程ConfigureAwait的使用小结》本文介绍了异步编程在GUI和服务器端应用的优势,详细的介绍了async和await的关键作用,通过实例解析了在UI线程正确使用await.Conf... 异步编程是并发的一种形式,它有两大好处:对于面向终端用户的GUI程序,提高了响应能力对于服务器端应

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda