Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1360to1364
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SAP - EXCEL VBA

SAP - EXCEL VBA
27.05.2014 10:27:57
Freunthaler

Hallo,
ich müsste die aktive Transaktion von SAP auslesen oder das aktive Fenster um eine BANF zu generieren.

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SAP - EXCEL VBA
27.05.2014 11:47:21
Mike
Eine Beispiel...
Public Function fnSAP_Connection_CallService(lAnzahl&, iAnzahl%, sMeldung$, sWinText$, sAuArt$,  _
sSysStat$) As Boolean
'*** Voraussetzungen:
'*** - SAP:             verbunden
'*** - Transaktion:     IW32
'*** - Auftragsarten:   ZCS1;ZSM2
'*** - Auftragsstatus:  nicht TABG;ABGS
'*** - Fenstertext:     '*Auftrag*ändern: Kopf zentral'
'*** - Anzahl TA:IW32:  1
Dim iCon, iSes, GRID As Object
Dim lRow       As Long
Dim bAuftragOK As Boolean
Dim sessionTemp As Object
On Error GoTo fnSAP_Connection_CallService_Error
Set SAPGUIAUTO = GetObject("SAPGUI")
Set SAP = SAPGUIAUTO.GetScriptingEngine
fnSAP_Connection_CallService = False
bAuftragOK = False
' Alle Verbindungen durchlaufen
For iCon = 0 To SAP.Children.Count - 1
Set CONNECTION = SAP.Children(Int(iCon))
' Alle Sessions durchlaufen
For iSes = 0 To CONNECTION.Children.Count - 1
Set sessionTemp = CONNECTION.Children(Int(iSes)) 'Session.info.systemname = P02
'Debug.Print Session.info.Systemname & " - " & Session.info.transaction & " - " &  _
Session.findById("wnd[0]").Text
' Nach finden der Transaktion...
If sessionTemp.info.transaction = "IW32" Then
' Anzahl der Transaktionen ermitteln
iAnzahl = iAnzahl + 1
' Rückmeldetext zusammensetzen
sMeldung = sMeldung & iAnzahl & ") " & sessionTemp.findById("wnd[0]").Text & Chr(13) _
' Variablen initialisieren (Fenstertext, Auftragsart, Systemstatus)
sWinText = sessionTemp.findById("wnd[0]").Text
sAuArt = sessionTemp.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL: _
SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/ctxtCAUFVD-AUART").Text
sSysStat = sessionTemp.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL: _
SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/txtCAUFVD-STTXT").Text
' Fenstertext prüfen
If sWinText Like "*Auftrag*ändern:*Kopf zentral*" And _
"ZCS1|ZSM2" Like "*" & sAuArt & "*" And _
(sSysStat Like "*ABGS*" Or sSysStat Like "*TABG*") = False Then
' gefundene Session verwenden
If bAuftragOK = False Then
bAuftragOK = True
fnSAP_Connection_CallService = True
Set SESSION = sessionTemp
'sSAP_Fenster = Replace(sWinText, "Kopf zentral", "Komponentenübersicht")
sSAP_Fenster = Left(sWinText, InStr(1, sWinText, "änd") + 2)
End If
End If
Else
lAnzahl = lAnzahl + 1
End If
If bAuftragOK = False Then Set sessionTemp = Nothing
Next
If bAuftragOK = False Then Set CONNECTION = Nothing
Next
fnSAP_Connection_CallService_Exit:
If bAuftragOK = False Then Set SAP = Nothing
If bAuftragOK = False Then Set SAPGUIAUTO = Nothing
On Error GoTo 0
Exit Function
fnSAP_Connection_CallService_Error:
Select Case Err.Number
Case -2147221020
Debug.Print "Error " & Err.Number & " (" & Err.Description & ") in procedure  _
fnSAP_Connection_CallService of Modul mdlSAP"
Case 619
Resume Next
Case Else
Debug.Print "Error " & Err.Number & " (" & Err.Description & ") in procedure  _
fnSAP_Connection_CallService of Modul mdlSAP"
End Select
Resume fnSAP_Connection_CallService_Exit
End Function

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige