需要帮助从SAP获取数据到C#
我想在VisualStudio中从SAP服务器向我的C#程序获取一些数据。SAP和程序之间的连接已经在工作,但我真的不知道如何将数据从服务器获取到程序中需要帮助从SAP获取数据到C#,c#,.net,sap,sap-dotnet-connector,saprfc,C#,.net,Sap,Sap Dotnet Connector,Saprfc,我想在VisualStudio中从SAP服务器向我的C#程序获取一些数据。SAP和程序之间的连接已经在工作,但我真的不知道如何将数据从服务器获取到程序中 namespace ConsoleApp1 { class Program //: IDestinationConfiguration { static void Main(string[] args) { fn f = new fn(); Rfc
namespace ConsoleApp1
{
class Program //: IDestinationConfiguration
{
static void Main(string[] args)
{
fn f = new fn();
RfcDestination destination = f.GetRfcDestination("vhcalnplci", "brachi", "Abap2017", "001", "EN", "vhcalnplci", "00", "20", "10");
RfcSessionManager.BeginContext(destination);
destination.Ping();
IRfcFunction function = destination.Repository.CreateFunction("/BODS/RFC_READ_TABLE");
IRfcTable addresses = function["ADDRESSES"].GetTable();
Console.WriteLine("STREET");
for (int index = 0;
index < addresses.RowCount;
++index)
{
Console.WriteLine(addresses[index]["STREET"].GetString());
}
}
}
}
我知道错误是因为RFC_READ_TABLE模块中不存在该元素,但正如我所说的,我不知道如何获取数据,也不知道该部分程序真正需要什么代码。我已经阅读了SAP的编程指南,但可能会有人帮助我:从我的角度来看,您的问题太广泛,无法在这里简单回答。 您似乎缺乏有关SAP系统及其功能和数据模型的基本知识。 使用SAP系统的推荐方法是使用适合您需要的特定功能模块(BAPI),如果这种功能模块无法现成提供,请在ABAP中开发您自己的功能模块。 如果选择任何RFC_READ_TABLE功能模块,则表明您希望像访问数据库一样访问SAP系统,而事实并非如此。它是一个数据库(使用数据库)。对于所有RFC_READ_表变体,您甚至需要了解SAP的内部数据库表设计及其表依赖关系,并且必须在函数调用中指定适当的SQL语句。这种方法容易出错,不是从SAP系统访问数据的推荐方法。 举个例子,如果您想读取存储的客户数据(包括其地址),请使用远程功能模块BAPI_customer_GETLIST。 最后是您的源代码:
RfcSessionManager.BeginContext(destination)
创建了连接资源泄漏,但没有再次结束上下文。只有在执行有状态调用序列时确实需要它时才调用它。你在这里不需要它函数。调用(目标)
这回答了你的问题吗?
IRfcTable addresses = function["ADDRESSES"].GetTable();