Extract data from SAP system using ERPConnect

When extracting data from SAP systems using ERPConnect, you have two primary approaches to consider. As per my understanding of your requirements, the better option for you will be to code the selection in ABAP. Then you can wrap this selection in a function module which will be remote function call enabled. Then go ahead and use this module.

But let's say you are not able to use it, then only remaining option for you will be 'RFC_READ_TABLE' but it has got its own problems.

Method 1: Custom RFC Function Module (Recommended)

This approach involves creating a custom Remote Function Call (RFC) enabled function module in SAP. This gives you full control over the data selection and formatting ?

FUNCTION Z_CUSTOM_DATA_EXTRACT.
*"----------------------------------------------------------------------
*"*"Remote Function Call Interface
*"----------------------------------------------------------------------
  IMPORTING
    VALUE(IV_SELECTION) TYPE STRING
  EXPORTING
    VALUE(ET_RESULTS) TYPE TABLE
*"----------------------------------------------------------------------
  
  " Your custom ABAP selection logic here
  SELECT * FROM your_table
    INTO TABLE et_results
    WHERE field = iv_selection.
    
ENDFUNCTION.

Using the Custom Function Module with ERPConnect

using ERPConnect;

// Create connection
R3Connection con = new R3Connection("host", 00, "user", "password", "EN", "800");
con.Open();

// Create RFC function
RFCFunction func = con.CreateFunction("Z_CUSTOM_DATA_EXTRACT");
func.Exports["IV_SELECTION"].ParamValue = "your_criteria";

// Execute function
func.Execute();

// Get results
RFCTable results = func.Tables["ET_RESULTS"];
foreach(RFCStructure row in results)
{
    Console.WriteLine(row["FIELD_NAME"].ToString());
}

Method 2: RFC_READ_TABLE (Limited Use)

The RFC_READ_TABLE function module is a standard SAP function that allows reading from any table, but it has significant limitations including row count restrictions and field length limits ?

// Create RFC_READ_TABLE function
RFCFunction readTable = con.CreateFunction("RFC_READ_TABLE");
readTable.Exports["QUERY_TABLE"].ParamValue = "MARA"; // Table name
readTable.Exports["DELIMITER"].ParamValue = "|";

// Add field selection
RFCTable fields = readTable.Tables["FIELDS"];
fields.Rows.Add();
fields[0, "FIELDNAME"] = "MATNR";

// Execute and get data
readTable.Execute();
RFCTable data = readTable.Tables["DATA"];

Conclusion

For reliable data extraction from SAP using ERPConnect, creating custom RFC-enabled function modules in ABAP is the preferred approach as it provides better performance and flexibility compared to the limited RFC_READ_TABLE function.

Updated on: 2026-03-13T18:29:39+05:30

463 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements