SAP Jobsuche bei DV-Treff
juma74
  • juma74
  • SAP Forum - Neuling Thema Starter
vor 4 Jahre
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

Förderer

ScriptMan
vor 4 Jahre
juma74
  • juma74
  • SAP Forum - Neuling Thema Starter
vor 4 Jahre
Servus,

danke für deine Nachricht!

Zitat von: ScriptMan 

Hallo Uli,

hast du bereits den folgenden Link gesehen?

https://www.dv-treff-community.de/sap-hilfe/Variante-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.

ScriptMan
vor 4 Jahre
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

juma74
  • juma74
  • SAP Forum - Neuling Thema Starter
vor 4 Jahre
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 😉

ScriptMan
vor 4 Jahre
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/studio/lang-de/docs/enabling-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

gerd
  • gerd
  • SAP Forum - Neuling
vor 4 Jahre
Hallo zusammen,

es gibt zu dem "Variante holen" ein kleines Beispiel in den "Tips&Tricks" auf den Synactive Seiten. Dabei wird die "Native Control Schnittstelle" verwendet:

http://www.synactive.com 

-> Support

-> Tips, Tricks and Samples (English)

-> Native Control Interface

-> Select a grid row

Synactive Tips&Tricks 

Voraussetzung: Lizenz für "GuiXT Controls" und die "guinet.dll" in das unter VBDirectory im GuiXT Profile genannte Verzeichnis kopiert.

Schöne Grüße,

Gerd

Benutzer, die gerade dieses Thema lesen