SAP .NET连接器与.NET Core框架不兼容。 在使用.NET Core时,还有其他方法可以从SAP检索数据吗?
我已经在nuget包管理器中搜索了一个替代品,但我没有找到一个。我可以使用任何解决方法吗? 我非常希望从.NET Core的性能中受益,但我还需要能够连接到SAP。
答案 0 :(得分:1)
为了从.NET Core或.NET Framework应用程序进行调用,我开源了一个跨平台的库SapNwRfc。
在NuGet上获取它:
dotnet add package SapNwRfc
或
PM> Install-Package SapNwRfc
优势:
该库已经过全面的单元测试,可以投入生产。
string connectionString = "AppServerHost=MY_SERVER_HOST; SystemNumber=00; User=MY_SAP_USER; Password=SECRET; Client=100; Language=EN; PoolSize=5; Trace=8";
using var connection = new SapConnection(connectionString);
connection.Connect();
class SomeFunctionParameters
{
[SapName("SOME_FIELD")]
public string SomeField { get; set; }
}
using var someFunction = connection.CreateFunction("BAPI_SOME_FUNCTION_NAME");
someFunction.Invoke(new SomeFunctionParameters
{
SomeField = "Some value",
});
有关更多详细信息,请参见README。
答案 1 :(得分:0)
我接受您在SAP端拥有基于SOAP的服务,并尝试通过.NetCore连接此SAP服务。如果这个senerio是真的,不幸的是你不能通过"添加服务参考来连接SOAP服务和.NetCore。"但您可以搜索" .NetCore Wcf客户服务"。
另一种解决方案是使用Rest Service并模拟SOAP协议。
以下是示例问题和解决方案。
答案 2 :(得分:0)
我创建了一个库来轻松地从.NET CORE进行SAP RFC调用 Windows,Linux和macOS支持Libray。 检查它是否满足您的需求 https://github.com/nunomaia/NwRfcNet/
答案 3 :(得分:0)
除了 huysentruitw 的出色工作,我还想提一下我们的图书馆:
dbosoft YaNco(Yet another .NET connector):https://github.com/dbosoft/YaNco
亮点:
许可证: MIT
.NET 版本:.NET 4.7.1 及更高版本、.NET Core 2.0 及更高版本、NET 5.0
支持的平台:Windows、Linux 和 MacOS
Nuget: Dbosoft.YaNco
YaNco 使用函数来映射 SAP RFC RFM 的输入/输出,而不是从 / 映射到 POCOs。这为您映射数据的方式提供了很大的灵活性。
示例:
await context.CallFunction("BAPI_COMPANYCODE_GETLIST",
Output: f => f
.MapTable("COMPANYCODE_LIST", s =>
from code in s.GetField<string>("COMP_CODE")
from name in s.GetField<string>("COMP_NAME")
select (code, name)))
.Match(
r =>
{
foreach (var (code, name) in r)
{
Console.WriteLine($"{code}\t{name}");
}
},
l => Console.WriteLine($"Error: {l.Message}"));