Karriere bei Rheinmetall
Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden oder Registrieren.

Mitteilung

Icon
Error

Optionen
Gehe zum aktuellsten Beitrag Gehe zum letzten Ungelesenen
Offline juma74  
#1 Geschrieben : Dienstag, 24. März 2020 07:12:17(UTC)
juma74

Beiträge: 3
Servus,

ich arbeite bei der Bundeswehr mit SAP.

Ich habe mir wie viele andere auch mittels GuiXT ein paar regelmäßig durchzuführende Abfragen per PushButton abgelegt.

Regelmäßig stoße ich auf die Problematik, dass der aufgezeichnete Ablauf nach dem Ansteuern des richtigen TAC bei der Auswahl der abgelegten Variante "hängen" bleibt.
Hier muss ich dann die auftretende Checkbox mit OK bestätigen und danach die korrekte Variante per Doppelklick auswählen.

Gibt es eine Möglichkeit, die Variante per script festzulegen, so dass die Abfrage automatisiert weiterläuft?

Als Beispiel folgendes script:

// SAP Easy Access
Screen SAPLSMTR_NAVIGATION.0100
Enter "/n/ISDFPS/DISP_EQU_SIT"

// Instandhaltungslage
Screen .ISDFPS.DISPLAY_MAT_OR_EQUI.1000
Enter "/17" // Holen...

// Variante suchen
Screen SAPLSVAR.0100
Enter "/8"

// ABAP: Variantenkatalog des Programms /ISDFPS/DISPLAY_MAT_OR_EQUI
Screen SAPLSVAR.0600
Alt Enter control="CONTAINERCTRL.GridViewCtrl" item=" 0000000002;VARIANT;2;1" event="3"
Set F[Variantenname] "FZG/GER 461"
Set F[Erstellt von] "10122106"
Enter "/2"


// Instandhaltungslage
Screen .ISDFPS.DISPLAY_MAT_OR_EQUI.1000
Enter "/8" // Ausführen

// Instandhaltungslage
Screen SAPLSLVC_FULLSCREEN.0500
Enter "%_GS 0 1"


Dieses script hatte sich bei Aufzeichnung so erstellt. Die fetten und kursiven Zeilen habe ich dann ergänzt in der Hoffnung, dass sich dann eben das richtige Verhalten einstellen würde, aber Fehlanzeige ;-)

Kann mir da jemand auf die Sprünge helfen?

Beste Grüße,

Uli
Jobangebote

Nehmen Sie an dieser Diskussion teil! SAP FORUM - SAP Community LoginHier registrieren.

Offline ScriptMan  
#2 Geschrieben : Mittwoch, 25. März 2020 13:13:58(UTC)
ScriptMan

Beiträge: 282
Hallo Uli,

hast du bereits den folgenden Link gesehen?

https://www.dv-treff-com...-holen-per-Button-t18787

Grüße,
ScriptMan
Offline juma74  
#3 Geschrieben : Mittwoch, 25. März 2020 13:19:20(UTC)
juma74

Beiträge: 3
Servus,

danke für deine Nachricht!

Zitat von: ScriptMan Gehe zum zitierten Beitrag
Hallo Uli,

hast du bereits den folgenden Link gesehen?

https://www.dv-treff-com...-holen-per-Button-t18787

Grüße,
ScriptMan


ja, den hatte ich schon gesehen. Aus diesem thread habe ich auch die Anregung des fett gedruckten Zusatzes herausgeholt.

Aber leider weiß ich nicht, wo ich welchen Anteil bei mir einfügen müsste, als dass das Gesuchte funktioniert.
Offline ScriptMan  
#4 Geschrieben : Mittwoch, 25. März 2020 14:39:46(UTC)
ScriptMan

Beiträge: 282
Dann werde ich hier blind einen Versuch basteln:

// SAP Easy Access
Screen SAPLSMTR_NAVIGATION.0100
Enter "/n/ISDFPS/DISP_EQU_SIT"

// Instandhaltungslage
Screen .ISDFPS.DISPLAY_MAT_OR_EQUI.1000
Enter "/17" // Holen...

// Variante suchen
Screen SAPLSVAR.0100
Set F[Erstellt von] ""
Enter "/8"

// ABAP: Variantenkatalog des Programms /ISDFPS/DISPLAY_MAT_OR_EQUI
Screen SAPLSVAR.0600
Enter control="CONTAINERCTRL.GridViewCtrl" item="&FIND" event="10"

// Suchen
Screen SAPLSKBH.0841
Set F[Suchbegriff:] "FZG/GER 461"
Enter

// Suchen
Screen SAPLSKBH.0841
Enter "/12"

start "c:\guixt\scripts\variante.vbs"

Variante.vbs:

If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
set session = Application.ActiveSession

Zeile = session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").currentcellrow
session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").selectedRows = Zeile
session.findById("wnd[1]/tbar[0]/btn[2]").press


// Instandhaltungslage
Screen .ISDFPS.DISPLAY_MAT_OR_EQUI.1000
Enter "/8" // Ausführen

// Instandhaltungslage
Screen SAPLSLVC_FULLSCREEN.0500
Enter "%_GS 0 1"


Die rot markierten GuiXT - Kommandos müsste man mit dem SAP GUI-Skriptrecorder aufzeichnen und ans Ende von variante.vbs setzen.

Grüße, ScriptMan
Offline juma74  
#5 Geschrieben : Mittwoch, 25. März 2020 17:13:55(UTC)
juma74

Beiträge: 3
Servus,

danke für deine Mühe!

Habe jetzt den gesamten Text in mein script gepackt und jetzt endet er schonmal nicht mit einer Abbruchnachricht, sondern SAP öffnet den gesamten Variantenkatalog und stellt auch meine erstellte Variante in der obersten Zeile zur Auswahl bereit.

Wenn er jetzt diese Zeile noch markieren würde und mit Enter bestätigen würde, dann wäre alles schick ;-)

Vom Gefühl her bleibt er hier stehen:

// SAP Easy Access
Screen SAPLSMTR_NAVIGATION.0100
Enter "/n/ISDFPS/DISP_EQU_SIT"

// Instandhaltungslage
Screen .ISDFPS.DISPLAY_MAT_OR_EQUI.1000
Enter "/17" // Holen...

// Variante suchen
Screen SAPLSVAR.0100
Set F[Erstellt von] ""
Enter "/8"

// ABAP: Variantenkatalog des Programms /ISDFPS/DISPLAY_MAT_OR_EQUI
Screen SAPLSVAR.0600
Enter control="CONTAINERCTRL.GridViewCtrl" item="&FIND" event="10"

// Suchen
Screen SAPLSKBH.0841
Set F[Suchbegriff:] "FZG/GER 461"
Enter

// Suchen
Screen SAPLSKBH.0841
Enter "/12"
______

So ganz verstanden habe ich das .vbs noch nicht: muss ich das als extra Datei im gleichen Ordner anlegen?
Wenn ja, ist der Inhalt nur dieser Anteil?:

f Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
set session = Application.ActiveSession

Zeile = session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").currentcellrow
session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").selectedRows = Zeile
session.findById("wnd[1]/tbar[0]/btn[2]").press

______

Du schriebst, dass das rot Markierte mit dem script-Recorder aufgezeichnet werden sollte. Diese stammen ja aus meiner ersten Aufzeichnung. Was muss ich dann mit denen konkret machen?

Verzeih mir die vielleicht dummen Fragen, aber ich bin nur kleiner Anwender und will mir das Leben ein wenig einfacher machen ;-)
Offline ScriptMan  
#6 Geschrieben : Donnerstag, 26. März 2020 08:25:24(UTC)
ScriptMan

Beiträge: 282
Guten Tag,

das Skript variante.vbs kann man anlegen, wo man will. Hauptsache man startet das VB-Skript von dem Ordner, wo es sich befindet. Dies ist ein workaround, da man mit GuiXT den Doppelklick auf die gefundene Zeile nicht realisieren kann.

Falls du noch nie was von SAP GUI Scripting gehört hast, kannst du dir das hier durchlesen:

https://docs.uipath.com/...abling-sap-gui-scripting

Dort müsstest du vorallem die Passage "SAP GUI Scripting auf der Client-Seite aktivieren" beachten und bei dir im SAP System genauso einstellen.

Der SAP GUI Skriptrecorder hat nichts mit GuiXT-Skriptrecorder zu tun. Der erstere befindet sich unter lokalem Layout ( ALT / F12) im SAP GUI unter "Skript-Aufzeichnung und -Playback..."


Demzufolge würde dein GuiXT-Skript enden mit:

...
// Suchen
Screen SAPLSKBH.0841
Enter "/12"

start "Mein_Pfad" & "\variante.vbs"
...

wobei Mein_Pfad der Speicherort von variante.vbs ist.


Das Skript variante.vbs wird z.B. ergänzt wie folgt:

...
session.findById("wnd[1]/tbar[0]/btn[2]").press

session.findById("wnd[0]/tbar[1]/btn[8]").press

Grüße,
ScriptMan

Bearbeitet vom Benutzer Donnerstag, 26. März 2020 08:32:41(UTC)  | Grund: Nicht angegeben

Benutzer, die gerade dieses Thema lesen
Guest
Ähnliche Themen
Variante holen per Button (GuiXT)
von Savarol 18.10.2017 09:06:10(UTC)
Das Forum wechseln  
Du kannst keine neue Themen in diesem Forum eröffnen.
Du kannst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge nicht löschen.
Du darfst deine Beiträge nicht editieren.
Du kannst keine Umfragen in diesem Forum erstellen.
Du kannst nicht an Umfragen teilnehmen.

- Impressum / Datenschutz -