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接收参数的19种方式

《详解SpringBoot接收参数的19种方式》SpringBoot提供了多种注解来接收不同类型的参数,本文给大家介绍SpringBoot接收参数的19种方式,感兴趣的朋友跟随小编一起看看吧... 目录SpringBoot接受参数相关@PathVariable注解@RequestHeader注解@Reque

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

spring 参数校验Validation示例详解

《spring参数校验Validation示例详解》Spring提供了Validation工具类来实现对客户端传来的请求参数的有效校验,本文给大家介绍spring参数校验Validation示例详... 目录前言一、Validation常见的校验注解二、Validation的简单应用三、分组校验四、自定义校

SpringBoot中Get请求和POST请求接收参数示例详解

《SpringBoot中Get请求和POST请求接收参数示例详解》文章详细介绍了SpringBoot中Get请求和POST请求的参数接收方式,包括方法形参接收参数、实体类接收参数、HttpServle... 目录1、Get请求1.1 方法形参接收参数 这种方式一般适用参数比较少的情况,并且前后端参数名称必须

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�