[英]Connect Excel with SAP using RFC
我需要知道如何使用 RFC 將 Excel 與 SAP 連接起來。 到目前為止,我還沒有設法使用找到的代碼將任何 SAP 數據導入 Excel。
我希望能夠從任何已知交易中導入數據(例如來自交易 CO03 的物料清單)。 由此我將嘗試了解如何提取其他類型的表。
我的目標是能夠使用 RFC 在 Excel 電子表格中導入任何 SAP 數據。 那將是一個好的開始。
我需要一個特殊的 SAP 帳戶嗎? 如何驗證我的帳戶是否可以執行此類任務?
不可能遠程調用任何標准事務,因為它們中的大多數都是類似遺留的並且不直接返回任何內容。 有幾種方法可以從任何事務中獲取數據,但它們超出了本問題的范圍。
從 SAP 檢索數據到 Excel 的最實用方法是找到合適的 BAPI 或遠程啟用的 FM,(包括編寫自己的包裝器 FM),這就是我將在此處描述的方式。
您不需要特殊帳戶,您只需要對 RFC 調用有適當的授權,主要包括S_RFC
授權對象
如果使用 BAPI,則可以省略這一點。 如果您創建了自己的包裝器,那么您必須確保它是遠程啟用的。
然后您可以在 VBA 代碼中調用您的 FM 並將結果返回到 Excel 工作簿。 這是示例代碼:
' Logging in Dim retcd As Boolean Dim SilentLogon As Boolean Set LogonControl = CreateObject("SAP.LogonControl.1") Set objBAPIControl = CreateObject("SAP.Functions") Set R3Connection = LogonControl.NewConnection R3Connection.Client = "700" R3Connection.ApplicationServer = "server_address" R3Connection.Language = "EN" R3Connection.User = "sap_user" R3Connection.Password = "sap_pass" R3Connection.System = "system_id" R3Connection.SystemNumber = "sys_num" R3Connection.UseSAPLogonIni = False retcd = R3Connection.Logon(0, SilentLogon) If retcd <> True Then MsgBox "Logon failed": Exit Sub ' Declaring FM interface objBAPIControl.Connection = R3Connection Set objgetaddress = objBAPIControl.Add("ZNM_GET_EMPLOYEE_DETAILS") Set objkunnr = objgetaddress.Tables("ET_KUNNR") Set objaddress = objgetaddress.Tables("ET_CUST_LIST") ' Filling select-options values table from sheet Dim sht As Worksheet Set sht = ThisWorkbook.ActiveSheet If sht.Cells(6, 2).Value <> " " Then objkunnr.Rows.Add objkunnr.Value(1, "SIGN") = sht.Cells(6, 2).Value objkunnr.Value(1, "OPTION") = sht.Cells(6, 3).Value objkunnr.Value(1, "LOW") = sht.Cells(6, 4).Value objkunnr.Value(1, "HIGH") = sht.Cells(6, 5).Value R3Connection.Logoff
PS 要在您的 VBA 項目中使用所有這些,您應該添加對 SAP ActiveX 控件的引用,這些控件位於%ProgramFiles%\\SAP\\FronEnd\\SAPgui目錄中:
所以你的 VBA 項目的參考列表應該是這樣的
除了 Excel 解決方案,您還可以嘗試我很久以前創建並多次使用的開源 MS Access 應用程序: https : //blogs.sap.com/2013/08/16/read-data-from-sap-tables-into -ms-access-2003-database/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.