繁体   English   中英

如何使用 sap .net 连接器从 SAP 系统获取数据?

[英]How to fetch data from SAP system using sap .net connector?

我正在开发一个 Windows 应用程序,在这里我想从 sap 系统中提取数据并将其显示在 datagridview 中......我已经单独提取了列名,如名称、城市等。

我不知道如何从列中提取数据,有人可以帮我写代码吗?

我正在使用 RFC_READ_TABLE 功能模块和 rfc 目标管理器

提前致谢!!!

未经测试,但这基本上是它的工作原理:

首先创建连接

RfcDestination destination = mDestinationManager.GetDestination("MYDESTINATION");

创建函数

IRfcFunction readTable = destination.Repository.CreateFunction("RFC_READ_TABLE");

调用函数前设置参数

// we want to query table KNA1
readTable.SetValue("QUERY_TABLE", "KNA1");
// fields will be separated by semicolon
readTable.SetValue("DELIMITER", ";");

表参数是通过从函数中检索表来创建的,使用 Append() 函数添加一行并使用 SetValue() 为该行中的各个列设置值

// Parameter table FIELDS contains the columns you want to receive
// here we query 2 fields, KUNNR and NAME1
IRfcTable fieldsTable = readTable.GetTable("FIELDS");
fieldsTable.Append();
fieldsTable.SetValue("FIELDNAME", "KUNNR");
fieldsTable.Append();
fieldsTable.SetValue("FIELDNAME", "NAME1");

// the table OPTIONS contains the WHERE condition(s) of your query
// here a single condition, KUNNR is to be 0012345600
// several conditions have to be concatenated in ABAP syntax, for instance with AND or OR
IRfcTable optsTable = readTable.GetTable("OPTIONS");
optsTable.Append();
optsTable.SetValue("TEXT", "KUNNR = '0012345600'");

调用函数

readTable.Invoke(destination);

处理数据

IRfcTable dataTable = readTable.GetTable("DATA");

foreach(var dataRow in dataTable)
{
    string data = dataRow.GetValue("WA");
    string[] columns = data.Split(';');
}

对于 RFC_READ_TABLE,您可能还需要考虑 sourceforge.net 上的免费 .net ExtracTable 工具它使用 RFC_READ_TABLE 并将报告为 Excel 或 CSV 文件。 由于 RFC_READ_TABLE 可能会给超过 512 个字符的记录带来问题,因此上面的工具会很小心。 或者,您必须为此类 SAP 表编写自己的拆分和连接例程。 但这总是有利有弊。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM