Anzeige
Archiv - Navigation
1872to1876
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

Boolean Funktion beenden

Boolean Funktion beenden
19.03.2022 10:09:03
Sori
Hallo Leute, ich habe ein denke ich recht einfaches Problem. Sehe einfach die Lösung nicht.
Im folgenden meine Funktion die eine Verbindung zu SAP aufbaut.
Diese Funktion rufe ich später auf.

Dim W_System
Function Attach_Session() As Boolean
Dim il, it
Dim W_conn, W_Sess
If W_System = "" Then
Attach_Session = False
Exit Function
End If
If Not objSess Is Nothing Then
If objSess.Info.SystemName & objSess.Info.Client = W_System Then
Attach_Session = True
Exit Function
End If
End If
If objGui Is Nothing Then
Set SapGuiAuto = GetObject("SAPGUI")
Set objGui = SapGuiAuto.GetScriptingEngine
End If
For il = 0 To objGui.Children.Count - 1
Set W_conn = objGui.Children(il + 0)
For it = 0 To W_conn.Children.Count - 1
Set W_Sess = W_conn.Children(it + 0)
If W_Sess.Info.SystemName & W_Sess.Info.Client = W_System Then
Set objConn = objGui.Children(il + 0)
Set objSess = objConn.Children(it + 0)
Exit For
End If
Next
Next
If objSess Is Nothing Then
MsgBox "No active session to system " + W_System + ", or scripting is not enabled.", vbCritical + vbOKOnly
Attach_Session = False
Exit Function
End If
If IsObject(WScript) Then
WScript.ConnectObject objSess, "on"
WScript.ConnectObject objGui, "on"
End If
Set objSBar = objSess.FindById("wnd[0]/sbar")
objSess.FindById("wnd[0]").Maximize
Attach_Session = True
End Function

So dann wird die Funktion aufgerufen und ein SAP Script teil ausgeführt.
Wie Folgt:

Public Sub BVsHolen()
W_System = "CXT801"
Dim W_Ret       As Boolean
W_Ret = Attach_Session
If Not W_Ret Then
Exit Sub
End If
On Error GoTo myerr
selectedPfad = ThisWorkbook.Path
Application.ScreenUpdating = True
objSess.FindById("wnd[0]").Maximize
objSess.FindById("wnd[0]/tbar[0]/okcd").Text = "/nmb51"
objSess.FindById("wnd[0]/tbar[0]/btn[0]").Press
objSess.FindById("wnd[0]/usr/ctxtMATNR-LOW").Text = ""
objSess.FindById("wnd[0]/usr/ctxtMATNR-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/ctxtWERKS-LOW").Text = HausnummerStr
objSess.FindById("wnd[0]/usr/ctxtWERKS-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/ctxtLGORT-LOW").Text = ""
objSess.FindById("wnd[0]/usr/ctxtLGORT-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/ctxtCHARG-LOW").Text = ""
objSess.FindById("wnd[0]/usr/ctxtCHARG-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/ctxtLIFNR-LOW").Text = ""
objSess.FindById("wnd[0]/usr/ctxtLIFNR-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/ctxtKUNNR-LOW").Text = ""
objSess.FindById("wnd[0]/usr/ctxtKUNNR-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/ctxtBWART-LOW").Text = ""
objSess.FindById("wnd[0]/usr/ctxtBWART-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/ctxtBWART-HIGH").SetFocus
objSess.FindById("wnd[0]/usr/ctxtBWART-HIGH").CaretPosition = 0
objSess.FindById("wnd[0]/usr/btn%_BWART_%_APP_%-VALU_PUSH").Press
objSess.FindById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,0]").Text = "551"
objSess.FindById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,1]").Text = "552"
objSess.FindById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,2]").Text = "917"
objSess.FindById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,3]").Text = "918"
objSess.FindById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,4]").Text = "925"
objSess.FindById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,4]").SetFocus
objSess.FindById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,4]").CaretPosition = 3
objSess.FindById("wnd[1]/tbar[0]/btn[8]").Press
objSess.FindById("wnd[0]/usr/ctxtSOBKZ-LOW").Text = ""
objSess.FindById("wnd[0]/usr/ctxtSOBKZ-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/txtMAT_KDAU-LOW").Text = ""
objSess.FindById("wnd[0]/usr/txtMAT_KDAU-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/txtMAT_KDPO-LOW").Text = ""
objSess.FindById("wnd[0]/usr/txtMAT_KDPO-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/ctxtSAKTO-LOW").Text = ""
objSess.FindById("wnd[0]/usr/ctxtSAKTO-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/ctxtBUDAT-LOW").Text = meinDatum
objSess.FindById("wnd[0]/usr/ctxtBUDAT-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/txtUSNAM-LOW").Text = ""
objSess.FindById("wnd[0]/usr/txtUSNAM-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/ctxtVGART-LOW").Text = ""
objSess.FindById("wnd[0]/usr/ctxtVGART-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/txtXBLNR-LOW").Text = ""
objSess.FindById("wnd[0]/usr/txtXBLNR-HIGH").Text = ""
objSess.FindById("wnd[0]/usr/radRHIER_L").SetFocus
objSess.FindById("wnd[0]/usr/radRHIER_L").Select
objSess.FindById("wnd[0]/usr/radRFLAT_L").SetFocus
objSess.FindById("wnd[0]/usr/radRFLAT_L").Select
objSess.FindById("wnd[0]/usr/chkDATABASE").Selected = True
objSess.FindById("wnd[0]/usr/chkSHORTDOC").Selected = False
objSess.FindById("wnd[0]/usr/ctxtALV_DEF").Text = "BV TÄGLICH"
objSess.FindById("wnd[0]/usr/chkARCHIVE").SetFocus
objSess.FindById("wnd[0]/usr/chkARCHIVE").Selected = False
objSess.FindById("wnd[0]/usr/chkSHORTDOC").Selected = False
objSess.FindById("wnd[0]/usr/chkSHORTDOC").SetFocus
objSess.FindById("wnd[0]/tbar[1]/btn[8]").Press
objSess.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").SetCurrentCell 8, "MAKTX"
objSess.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").SelectedRows = "8"
objSess.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").ContextMenu
objSess.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").SelectContextMenuItem "&XXL"
objSess.FindById("wnd[1]/tbar[0]/btn[0]").Press
objSess.FindById("wnd[1]/usr/ctxtDY_PATH").Text = selectedPfad & "\"
objSess.FindById("wnd[1]/usr/ctxtDY_FILENAME").Text = "bvtaeglichms.xlsx"
objSess.FindById("wnd[1]/usr/ctxtDY_FILENAME").CaretPosition = 17
objSess.FindById("wnd[1]/tbar[0]/btn[11]").Press
'Attach_Session = False
' An dieser Stelle möchte ich die Verbindung trennen, bekomme es aber einfach nicht geregelt...
'Hoffe Ihr könnt helfen.
Exit Sub
myerr:
MsgBox "Error occured while retrieving data", vbCritical + vbOKOnly
End Sub

Gruß Sori


		

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Boolean Funktion beenden
19.03.2022 11:21:59
Nepumuk
Hallo,
und deine Frage ist?
Gruß
Nepumuk
AW: Boolean Funktion beenden
19.03.2022 12:07:12
marv
Die Frage steht unten in den letzten Zeilen des Codes als Kommentar, dachte man sieht es sorry
AW: Boolean Funktion beenden
19.03.2022 13:16:52
Nepumuk
Hallo,
da habe ich keinen Plan. Ich lass die Frage offen.
Gruß
Nepumuk
AW: Versuch: "Set Attach_Session = Nothing" oT
19.03.2022 13:32:33
JoWE
AW: Boolean Funktion beenden
21.03.2022 08:03:42
marv
Funktioniert leider auch nicht :/
AW: Boolean Funktion beenden
23.03.2022 08:06:21
marv
Funktioniert leider auch nicht :/
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige