Einen einfachen Baustein aufrufen: BAPI EMPLOYEE GETDATA 
From Theobald Software
|
|
Der Baustein BAPI_EMPLOYEE_GETDATA ist ein BAPI für RFC-Anwendungen, der in jedem SAP-System vorhanden ist. Er empfängt als Eingabeparameter in unserem Beispiel einen Nachnamen oder den Anfangsbuchstaben des Nachnamens und gibt eine Liste an Personen in Form einer Tabelle zurück, die zu dem Suchschlüssel passen.
Der folgende Code zeigt zunächst die Anmeldung am SAP-System. Ein RFCFunction-Objekt wird dann mit Hilfe der Funktion CreateFunction() gebildet. Der Import-Parameter LASTNAME_M wird mit der Benutzereingabe gefüllt. Execute() führt den Baustein aus. Nach dem Aufruf muss dann nur noch der zurückgegebene Tabellen-Parameter PERSONAL_DATA ausgewertet werden. Das Element PERNO der Tabelle enthält die Personalnummer, des weiteren werden noch der Vorname und der Nachname ausgegeben.
[C#]
static void Main(string[] args) { R3Connection con = new R3Connection("Host", 05, "User", "Password", "DE", "800"); con.Open(false); // Create a function object RFCFunction func = con.CreateFunction("BAPI_EMPLOYEE_GETDATA"); Console.WriteLine("Please enter Lastname of Employee..."); Console.WriteLine("(you can also use Wildcard Characters * ...)"); // fill the export parameter string EmployeeLM = Console.ReadLine(); func.Exports["LASTNAME_M"].ParamValue = EmployeeLM; func.Exports["DATE"].ParamValue = ERPConnect.ConversionUtils.NetDate2SAPDate(System.DateTime.Now); try { func.Execute(); } catch (ERPException e) { Console.WriteLine(e.Message); Console.ReadLine(); return; } // Output the result of the function module RFCTable EmployeeDataTable = func.Tables["PERSONAL_DATA"]; if (EmployeeDataTable.RowCount > 0) { for (int i = 0; i < EmployeeDataTable.RowCount; i++) { Console.WriteLine( EmployeeDataTable.Rows[i]["PERNO"].ToString() + " " + EmployeeDataTable.Rows[i]["LAST_NAME"].ToString() + " " + EmployeeDataTable.Rows[i]["FIRSTNAME"].ToString()); } } else { Console.WriteLine("No Employee found"); } Console.ReadLine(); } }
[VB]
Sub Main() Dim con As New R3Connection("host", 5, "User", "Password", "DE", "800") con.Open(False) Dim sii As String = con.Codepage() ' Create a function object Dim func = con.CreateFunction("BAPI_EMPLOYEE_GETDATA") Console.WriteLine("Please enter Lastname of Employee...") Console.WriteLine("(you can also use Wildcard Characters * ...)") ' fill the export parameter Dim EmployeeLM As String = Console.ReadLine() func.Exports("LASTNAME_M").ParamValue = EmployeeLM func.Exports("DATE").ParamValue = ERPConnect.ConversionUtils.NetDate2SAPDate(System.DateTime.Now) Try func.Execute() Catch e As ERPException Console.WriteLine(e.Message) Console.ReadLine() Return End Try Dim EmployeeDataTable As RFCTable = func.Tables("PERSONAL_DATA") If EmployeeDataTable.RowCount > 0 Then For i As Integer = 0 To EmployeeDataTable.RowCount - 1 Console.WriteLine(EmployeeDataTable.Rows(i)("PERNO").ToString() + _ " " + EmployeeDataTable.Rows(i)("LAST_NAME").ToString() + _ " " + EmployeeDataTable.Rows(i)("FIRSTNAME").ToString()) Next i Else Console.WriteLine("No Employee found") End If Console.ReadLine() End Sub

