如何使用 .NET 提供程式從 SAP 中提取資料。
要使用 SSIS 進行提取,需要能夠訪問後端系統。你可以使用 .NET 聯結器並編寫一個使用函式模組從 SAP 系統提取資料的 Windows 應用程式。
若要了解有關如何使用 .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