C# DataTable to IrfcTable (SAP)

  1. DataTable dtrfc = new DataTable();  
  2. RfcConfigParameters rfc = new RfcConfigParameters();  
  3. rfc.Add(RfcConfigParameters.Name, “mySapName”);  
  4. rfc.Add(RfcConfigParameters.AppServerHost, ConfigurationManager.AppSettings[“SAPIP”].ToString());  
  5. rfc.Add(RfcConfigParameters.Client, “700”);  
  6. rfc.Add(RfcConfigParameters.User, ConfigurationManager.AppSettings[“SAPUSERID”].ToString());  
  7. rfc.Add(RfcConfigParameters.Password, ConfigurationManager.AppSettings[“SAPPWD”].ToString());  
  8. rfc.Add(RfcConfigParameters.SystemNumber, ConfigurationManager.AppSettings[“SYSTEMNO”].ToString());  
  9. rfc.Add(RfcConfigParameters.Language, “EN”);  
  10. rfc.Add(RfcConfigParameters.PoolSize, “5”);  
  11. rfc.Add(RfcConfigParameters.PeakConnectionsLimit, “10”);  
  12. rfc.Add(RfcConfigParameters.ConnectionIdleTimeout, “25000”);  
  13. RfcDestination rfcDest = RfcDestinationManager.GetDestination(rfc);  
  14. RfcRepository rfcRep = rfcDest.Repository;  
  15. IRfcFunction  
  16. function = rfcRep.CreateFunction(“ << RFC Name >> ”);  
  17. //Get reference to table object  
  18. IRfcTable Gt_ReportTable = function.GetTable(“GT_TABLE”);  
  19. DataTable dtTable = new DataTable();  
  20. dtTable = (DataTable) Session[“ << DataTable Object >> ”];  
  21. foreach(DataRow oRow in dtTable.Rows)  
  22. {  
  23.     Gt_ReportTable.Append();  
  24.     Gt_ReportTable.SetValue(“ << Table Field Name >> ”, Convert.ToString(oRow[“ << Field Name >> ”]));  
  25. }  
  26. IRfcTable POReports = function.GetTable(“IT_Output”);  
  27.   
  28. function.SetValue(“IDATE”, << Date Value >> );  
  29.   
  30. function.SetValue(“MATNR”, ddlpublication.SelectedItem.Value);  
  31.   
  32. function.SetValue(“GT_TABLE”, Gt_ReportTable);  
  33.   
  34. function.Invoke(rfcDest);  
  35. int NumberOfRows = POReports.Count;