Zum Hauptinhalt springen
Nicht aus der Schweiz? Besuchen Sie lehmanns.de

SAP Schnittstellen Programmierung mit RFC und VBA (eBook)

SAP Daten mit MS Access bearbeiten
eBook Download: EPUB
2022 | 1. Auflage
117 Seiten
tredition (Verlag)
978-3-347-55881-6 (ISBN)

Lese- und Medienproben

SAP Schnittstellen Programmierung mit RFC und VBA -  Karl Josef Hensel
Systemvoraussetzungen
19,99 inkl. MwSt
(CHF 19,50)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Die Migration von Daten ist ein wichtiger Prozess bei der Einführung von SAP Systemen oder der Übernahme neuer Daten aus Fremdsystemen. Dies nimmt einen großen Anteil der Zeit und damit auch der Kosten in Migrations- Projekten in Anspruch. Dieses Buch gibt Ihnen praktische Tipps und Beispiele wie man unter Zuhilfenahme von Microsoft Produkten und der Programmiersprache VBA schnell und preiswert nützliche Tools zur Migration selbst erstellen kann. Eine Installation der Soft-ware auf den SAP Systemen ist dabei nicht erforderlich. Dies erspart das aufwendige Prozedere der Softwareimplementation in SAP Systemen. Entwicklungen mit ABAP Code, aufwendigen Dokumen-tationen, Tests in Development, Quality und Produktiv - Systemen sind nicht erforderlich und spa-ren Zeit und Geld. Die Batch-Input-Schnittstelle sowie die Tools LSMW und CATT werden nicht mehr benötigt. Das Buch eignet sich für Administratoren, technische Berater und Entwickler. Auch Power User aus den Fachabteilungen sind nach der Lektüre in der Lage, produktiv Daten aus den Systemen zu extrahieren oder hochzuladen. Die nach meiner Methode erstellten Programme lassen sich für alle SAP Module verwenden. Als Beispiel verwende ich Funktionalitäten der SAP Module IM und PS. Durch Nutzung fertiger SAP Funktionen und BAPI's können Funktionalitäten wie zum Beispiel das Anlegen und Ändern von Investitions-Programmen, Maßnahmenanforderungen und Projekten durchgeführt werden.

Kapitel 3

Kapitel 3.1 – Funktionen der SAP-BAPI’s nutzen

Mit der Transaktion BAPI in Ihrem SAP-System eröffnet sich mit dem BAPI-Explorer die Welt aller für RFC freigegebenen BAPI’s und deren Funktionen. Um alle Informationen zu einem Objekt wie z.B. einem PSP Element zu erhalten werden zusätzlich zu Informationen aus der führenden Tabelle PRPS, Informationen aus weiteren Tabellen benötigt. Die einfachste Methode dafür ist, einen passenden BAPI oder dessen Funktionalitäten zu nutzen.

Um die Funktionen eines BAPI zu nutzen, öffnet man den gewünschten BAPI mit dem Function Builder, den man im BAPI Explorer unter den Werkzeugen findet.

Kapitel 3.2 – Den Status von PSP Elementen ermitteln

Zu unserer Datei PRPS benötigen wir als zusätzliche Information den Status der PSP Elemente. Extern wird der Status für den Anwender in der jeweils im Logon gewählten Sprache dargestellt. Die SAP-Bapi’s nutzen ausschließlich die englische Sprachversion. Intern wird der Status als Schlüssel in der Tabelle JEST geführt. Die jeweilige Textversion findet man in den Tabellen TJ02 für den Systemstatus und TJ30 für den Anwenderstatus.

Funktionalität

Mit dem BAPI BAPI_BUS2054_GET_STATUS können die aktiven Systemstatus sowie Anwenderstatus zu einer Liste von PSP-Elementen (BAPI_WBS_ELEMENTS) gelesen werden. Aktive Systemstatus werden dabei über den englischsprachigen Schlüssel ausgegeben. Aktive Anwenderstatus werden über den Schlüssel in der jeweiligen Anmeldesprache ausgegeben, falls eine Übersetzung des Status im zugrundeliegende Statusschema in die Anmeldesprache existiert bzw. die Pflegesprache des Statusschema der Anmeldesprache entspricht. Existiert der Status im Statusschema nicht in der Anmeldesprache, so wird der Schlüssel in der Pflegesprache des Statusschemas ausgegeben.

Im Rückgabeparameter RETURN steht eine Fehlermeldung, wenn bei der Verarbeitung ein Fehler aufgetreten ist. In der Tabelle BAPI_STATUS_RESULT stehen nach dem Aufruf die Meldungen, die während der Verarbeitung erzeugt wurden.

Weiterführende Informationen

Weitere Informationen finden Sie in der SAP-Bibliothek unter Projektsystem -> Strukturen -> Schnittstellen des Projektsystems -> PS-EPS Schnittstelle zu externen Projektmanagementsystemen.

Bei den PSP Elementen arbeiten wir mit den folgenden Status.

'REL' (FREI) Freigegeben (I0002)

setzen

'LKD' (SPER) Gesperrt (I0043)

setzen / zurücknehmen

'TECO' (TABG) Technisch abgeschlossen (I0045)

setzen / zurücknehmen

'CLSD' (ABGS) Abgeschlossen (I0046)

setzen / zurücknehmen

'AALK' (KTSP) Kontierung gesperrt (I0064)

setzen / zurücknehmen

'MDLK' (SDSP) Stammdaten gesperrt (I0065)

setzen / zurücknehmen

'DLFL' (LÖVM) Löschvormerkung (I0076)

setzen / zurücknehmen

Die Status Ermittlung über die zugehörigen SAP-Tabellen JEST und TJ02 für den Systemstatus oder JEST und TJ30 für den Anwenderstatus ist etwas aufwendig.

Eleganter und schneller geht es mit dem zugehörigen BAPI BAPI_BUS2054_GET_STATUS bzw. die Nutzung der enthaltenen Funktionen die wir uns mit dem Function Builder ansehen können.

Wie das geht zeige ich jetzt:

Um komfortabel an den Status eines PSP Elements zu kommen, nutzen wir den Funktionsbaustein BAPI_BUS2054_GET_STATUS.

In unserer Access Datei erstellen wir das Modul SAP_RFC_Status mit den folgenden Routinen:

Option Compare Database

Option Explicit

' *********************************************************************************

' Deklarationen

' *********************************************************************************

Public Const acStatusBack As Boolean = False

Public Const acStatusForward As Boolean = True

Dim IMessage As Object

Dim IEResult As Object

Dim IRETURN As Object

Dim oBAPI_TRANSACTION_ROLLBACK As Object

Dim oBAPI_TRANSACTION_ROLLBACK_RETURN As Object

Dim PI_WBS_SYSTEM_STATUS As Object

Public oBAPI_BUS2054_SET_STATUS As Object

Private oBAPI_BUS2054_GET_STATUS As Object

Public oCOMMIT_WORK_WAIT As Object

Dim oI_WBS_ELEMENTS As Object

Dim oE_USER_STATUS As Object

Dim oE_SYSTEM_STATUS As Object

Public Sub WBS_BAPI_BUS2054_GETDATA_STATUS_SHORT(remaining As Boolean)

' *********************************************************************************

' RFC_Read_Table Download mit umfangreichen Selektions Optionen

' *********************************************************************************

Dim DB As Database

Dim RC As Object

Dim GetDatei As String, StKrit As String, StKritA As String, HWBS As String

Dim RST As Object, RSTA As Recordset

Dim intx As Integer

Dim MDate As Date, Mtime As Date

Dim ANZ_R2 As Long

'**************Export*****************************

Dim oI_MAX_ROWS As Object

'**************Tables*****************************

Dim I, J, J2, m, ANZ_R, Anz_C As Long

On Error GoTo Fehler

'******** RFC LOGON ****************

If Not sapConnection Is Nothing Then

If sapConnection.IsConnected < > 1 Then

If RFC_Connect() = False Then Exit Sub

End If

Else

If RFC_Connect() = False Then Exit Sub

End If

'******** RFC LOGON END ************

Call RemoveFC(FunctionCtrl, "BAPI_BUS2054_GETDATA")

Call RemoveFC(FunctionCtrl, "oBAPI_BUS2054_GET_STATUS")

If Not oBAPI_BUS2054_GET_STATUS Is Nothing Then Set oBAPI_BUS2054_GET_STATUS = Nothing

If Not oE_USER_STATUS Is Nothing Then Set oE_USER_STATUS = Nothing

If Not oE_SYSTEM_STATUS Is Nothing Then Set oE_SYSTEM_STATUS = Nothing

If Not oI_WBS_ELEMENTS Is Nothing Then Set oI_WBS_ELEMENTS = Nothing

If Not oE_USER_STATUS Is Nothing Then Set oE_USER_STATUS = Nothing

If Not oE_SYSTEM_STATUS Is Nothing Then Set oE_SYSTEM_STATUS = Nothing

Set DB = CurrentDb()

Set oBAPI_BUS2054_GET_STATUS = FunctionCtrl.Add("BAPI_BUS2054_GET_STATUS")

ANZ_R2 = oBAPI_BUS2054_GET_STATUS.Tables("I_WBS_ELEMENTS").Rows.Count

If ANZ_R2 > 0 Then

oBAPI_BUS2054_GET_STATUS.Tables("I_WBS_ELEMENTS").Rows.Remove

oBAPI_BUS2054_GET_STATUS.Tables("I_WBS_ELEMENTS").FREETABLE

End If

If oBAPI_BUS2054_GET_STATUS.Tables("E_USER_STATUS").Rows.Count > 0 Then

oBAPI_BUS2054_GET_STATUS.Tables("E_USER_STATUS").Rows.Remove

oBAPI_BUS2054_GET_STATUS.Tables("E_USER_STATUS").FREETABLE

End If

If oBAPI_BUS2054_GET_STATUS.Tables("E_SYSTEM_STATUS").Rows.Count > 0 Then

oBAPI_BUS2054_GET_STATUS.Tables("E_SYSTEM_STATUS").Rows.Remove

oBAPI_BUS2054_GET_STATUS.Tables("E_SYSTEM_STATUS").FREETABLE

End If

Set oI_WBS_ELEMENTS = oBAPI_BUS2054_GET_STATUS.Tables("I_WBS_ELEMENTS")

Set oE_USER_STATUS = oBAPI_BUS2054_GET_STATUS.Tables("E_USER_STATUS")

Set oE_SYSTEM_STATUS = oBAPI_BUS2054_GET_STATUS.Tables("E_SYSTEM_STATUS")

ANZ_R2 = oI_WBS_ELEMENTS.RowCount

Application.SetOption "Confirm Action Queries", False

DoCmd.RunSQL "UPDATE PRPS SET PRPS.[SyStat] = '', PRPS.[USRStat] = '';"

‘**************************************************************

' Alle PSP laden

‘**************************************************************

If remaining Then

StKrit = "SELECT PRPS.* " & " FROM PRPS"

Else

StKrit = "SELECT PRPS.* " & " FROM PRPS WHERE SYSTAT = ''"

End If

m = 0

Set RST = DB.OpenRecordset(StKrit)

RST.MoveFirst

While Not RST.EOF()

If Not IsNull(RST!POSID) Then

m = m + 1

oI_WBS_ELEMENTS.Rows.Add

oI_WBS_ELEMENTS(m, "WBS_ELEMENT") = RST!POSID

End If

RST.MoveNext

Wend

ANZ_R = oI_WBS_ELEMENTS.RowCount

RST.Close

oBAPI_BUS2054_GET_STATUS.Call

m = 0

ANZ_R = oE_SYSTEM_STATUS.RowCount

‘**************************************************************

For J = 1 To ANZ_R

HWBS = oE_SYSTEM_STATUS.Value(J, "WBS_ELEMENT")

StKrit = "SELECT PRPS.* " & " FROM PRPS WHERE POSID = '" & HWBS & "'"

Set RST = DB.OpenRecordset(StKrit)

While Not RST.EOF()

RST.Edit

m = m + 1

RST!SYSTAT = RST!SYSTAT & " " & oE_SYSTEM_STATUS.Value(J, "SYSTEM_STATUS")

If oE_SYSTEM_STATUS.Value(J, "SYSTEM_STATUS") = "CLSD" Or _

oE_SYSTEM_STATUS.Value(J, "SYSTEM_STATUS") = "DLFL" Then

RST!FLCLSD = True

Else

End If

RST.Update

RST.MoveNext

Wend

RST.Close

Next J

' *********************************************************************************

ANZ_R = oE_USER_STATUS.RowCount

For J = 1 To ANZ_R

HWBS = oE_USER_STATUS.Value(J, "WBS_ELEMENT")

StKrit = "SELECT PRPS.* " & " FROM PRPS WHERE POSID = '" & HWBS & "'"

Set RST = DB.OpenRecordset(StKrit)

While Not RST.EOF()

RST.Edit

m = m +...

Erscheint lt. Verlag 8.3.2022
Verlagsort Ahrensburg
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Datenbanken
Schlagworte Datenmigration • Funktionalitäten • Funktionen • MS Access • SAP • SAP RFC • VBA
ISBN-10 3-347-55881-2 / 3347558812
ISBN-13 978-3-347-55881-6 / 9783347558816
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Adobe DRM)

Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine Adobe-ID sowie eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Der Leitfaden für die Praxis

von Christiana Klingenberg; Kristin Weber

eBook Download (2025)
Carl Hanser Fachbuchverlag
CHF 48,80