如何使用 .NET 提供程式從 SAP 中提取資料。
要透過 SSIS 提取,你需要有權訪問後端系統。你可以使用 .NET 連結器並編寫 Windows 應用程式,該應用程式會使用函式模組從 SAP 系統中提取資料。
如需瞭解如何使用 .NET 連結器連線 SAP 的更多資訊,你可以參考這篇部落格- https://blogs.sap.com/2013/02/14/connecting-to-sap-with-nco-3/

藉助 BAPI,你可以允許外部應用程式訪問 R/3 系統中的業務流程和資料。以下程式碼用於呼叫 BAPI。首先,需要建立一個 IDestinationConfiguration 實現類-。
Imports SAP.Middleware.Connector Public Class ECCDestinationConfig Implements IDestinationConfiguration Public Event ConfigurationChanged(ByVal destinationName As String, ByVal args As RfcConfigurationEventArgs) Implements IDestinationConfiguration.ConfigurationChanged Public Function GetParameters(ByVal destinationName As String) As RfcConfigParameters Implements IDestinationConfiguration.GetParameters Dim parms As New RfcConfigParameters Select Case destinationName Case "ECDCLNT140" parms.Add(RfcConfigParameters.AppServerHost, "10.1.1.1") parms.Add(RfcConfigParameters.SystemNumber, "00") parms.Add(RfcConfigParameters.SystemID, "ECD") parms.Add(RfcConfigParameters.User, "username") parms.Add(RfcConfigParameters.Password, "secret") parms.Add(RfcConfigParameters.Client, "140") parms.Add(RfcConfigParameters.Language, "EN") parms.Add(RfcConfigParameters.PoolSize, "5") parms.Add(RfcConfigParameters.MaxPoolSize, "10") parms.Add(RfcConfigParameters.IdleTimeout, "600") Case Else End Select Return parms End Function Public Function ChangeEventsSupported() As Boolean Implements IDestinationConfiguration.ChangeEventsSupported Return False End Function End Class
接下來,需要建立一個使用 .Net 3.0 連結器來呼叫 RFC 函式模組的 Web 服務。
Imports SAP.Middleware.Connector
Module Driver
Private _ecc As RfcDestination
Sub Main()
RfcDestinationManager.RegisterDestinationConfiguration(New ECCDestinationConfig)
Try
_ecc = RfcDestinationManager.GetDestination("ECDCLNT140")
GetCompanyName()
Catch ex As Exception
System.Console.WriteLine(ex.Message)
System.Console.ReadLine()
End Try
End Sub
Private Sub GetCompanyName()
System.Console.WriteLine(String.Format("Successfully connected to System {0} Client {1}.", _ecc.SystemID, _ecc.Client))
System.Console.WriteLine("Enter a company ID:")
Dim companyID As String = System.Console.ReadLine()
While Not String.IsNullOrEmpty(companyID.Trim)
Dim companyAPI As IRfcFunction =
_ecc.Repository.CreateFunction("BAPI_COMPANY_GETDETAIL")
companyAPI.SetValue("COMPANYID", companyID)
companyAPI.Invoke(_ecc)
Dim companyName As String =
companyAPI.GetStructure("COMPANY_DETAIL").GetString("NAME1")
If String.IsNullOrEmpty(companyName.Trim) Then
companyName = "Not found"
End If
System.Console.WriteLine(companyName)
companyID = System.Console.ReadLine()
End While
End Sub
End Module
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP