Besides the great work of huysentruitw, I would also like to mention our library:
dbosoft YaNco (Yet another .NET connector): https://github.com/dbosoft/YaNco
Highlights:
- cross platform
- DI / Unit testing friendly
- based on functional programming (using Language.Ext)
- ABAP callbacks support
- commercial support / consulting services available from dbosoft.eu
License: MIT
.NET Versions: .NET 4.7.1 and higher, .NET Core 2.0 and higher, NET 5.0
Supported platforms: Windows, Linux and MacOS
Nuget: Dbosoft.YaNco
Instead of mapping from / to POCOs YaNco uses functions to map input/output of SAP RFC RFMs. This gives you a lot of flexibility in how you can map your data.
Example:
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}"));