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 M.Carl  
#1 Geschrieben : Dienstag, 17. September 2019 13:31:56(UTC)
M.Carl

Beiträge: 6
Germany
Wohnort: SL
Moin.
Ich beschäftige mich nun seit einiger Zeit mit dem Thema GUIXT und stehe nun an einem Punkt an dem ich nicht weiter komme.

Ich muss immer wieder einzelne markierte Zeilen in einem Auftrag (IW32) bearbeiten.
Zur Zeit muss ich manuell die Anzahl der markierten Zeilen eingeben.
Dieses würde ich gerne automatisieren.

z.B. markiere ich in der IW32 die Zeile 2,5,7 und 10.
Bei diesen möchte ich dann eine Änderung durchführen.
Wie kann SAP automatisch erkennen wie viele Zeilen ich markiert habe?
(In diesem Fall 4)

Vielen Dank für die Hilfe
Micha
Jobangebote

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

Offline ScriptMan  
#2 Geschrieben : Mittwoch, 18. September 2019 06:32:54(UTC)
ScriptMan

Beiträge: 274
Hallo Micha,

wenn du uns ein Beispiel liefern würdest, könnten wir uns es hier im Forum mal ansehen. Es ist nämlich auch nicht ganz klar, ob es sich tatsächlich um GuiXT oder SAP GUI Scripting handelt.

Grüße, ScriptMan
Offline M.Carl  
#3 Geschrieben : Mittwoch, 18. September 2019 06:49:53(UTC)
M.Carl

Beiträge: 6
Germany
Wohnort: SL
Zitat von: ScriptMan Gehe zum zitierten Beitrag
Hallo Micha,

wenn du uns ein Beispiel liefern würdest, könnten wir uns es hier im Forum mal ansehen. Es ist nämlich auch nicht ganz klar, ob es sich tatsächlich um GuiXT oder SAP GUI Scripting handelt.

Grüße, ScriptMan


Hallo Scriptman.

Ich habe die Thematik etwas schlecht beschrieben.
Zur Zeit habe ich folgenden Ablauf:
1. Markieren der zu bearbeitenden Zeilen im Auftrag (IW32)
2. Manuelle Eingabe der Zeilen Zahl als Scriptvariable V[AnzZeilen] (Guixt erstelltes Eingabefeld)
3. Ausführen des Bearbeitungsscriptes z.B. Setzen des Steuerschlüssels

Ich würde gerne den Schritt 2 Automatisieren so das GUIXT erkennt das z.B. 4 Zeilen markiert sind und diese als V[AnzZeilen] setzt.

In Schritt 3 erfolgt dann ein "Herunterzählen" dieser Variable bis alle markierten Zeilen bearbeitet sind.

Gruss Micha

Bearbeitet vom Benutzer Mittwoch, 18. September 2019 06:50:40(UTC)  | Grund: Nicht angegeben

Offline ScriptMan  
#4 Geschrieben : Mittwoch, 18. September 2019 07:04:46(UTC)
ScriptMan

Beiträge: 274
Ich arbeite leider nicht mit IW32. Könntest du uns ein Bild liefern, das es deutlich macht, ob es sich um ein Grid oder eine einfache Tabelle handelt.

Grüße, ScriptMan
Offline M.Carl  
#5 Geschrieben : Mittwoch, 18. September 2019 07:49:36(UTC)
M.Carl

Beiträge: 6
Germany
Wohnort: SL
Dieses Bild ist aus dem Internet von Community WIKI.
Sieht aber genauso aus wie bei mir ;)

[img=https://wiki.scn.sap.com/wiki/display/PLM/Open+Catalog+Interface]https://wiki.scn.sap.com/wiki/display/PLM/Open+Catalog+Interface[/img]
Offline ScriptMan  
#6 Geschrieben : Mittwoch, 18. September 2019 10:09:45(UTC)
ScriptMan

Beiträge: 274
Hallo Micha,

ich habe mal da einen Ausflug in die Vergangenheit getan:

http://www.synactive.com/examples/example0018.html

Eine abgespeckte Version dessen würde dann die Anzahl der markierten Sätze ermitteln.

z.B.

Pushbutton (toolbar) "@9E\QAnzahl markierter Sätze anzeigen@Anzahl" process="Table_Anzahl.txt"

InputScript "Table_Anzahl.txt":

set V[TableName] ""
set V[marked] ""

set V[TableName] "&V[_cursortabtechname]"
if V[TableName=]
message "W: Der Cursor muss sich innerhalb einer Tabelle befinden." -statusline
goto script_ende
endif


// scroll to first line
Screen *
Enter "/ScrollToLine=1" Table="T[&V[TableName]]"


// Variables
Set V[absrow] 1 // Absolute row number
set V[Anzahl] 0

Screen *

GetTableAttribute T[&V[TableName]] FirstVisibleRow=FVisRow LastVisibleRow=LVisRow LastRow=LastRow


label new_row


// end of screen?
if V[absrow>&V[LVisRow]]
Enter "/ScrollToLine=&V[absrow]" Table="T[&V[TableName]]"
goto end_of_screen
endif

Set V[selected] "&cell[&V[TableName],0,&V[absrow]]"


// Selected?
if V[selected=X]
set V[Anzahl] "&V[Anzahl]" + 1
set V[marked] "X"
endif

Set V[absrow] &V[absrow] + 1
goto new_row


label end_of_screen


if V[marked=]
message "S: Es wurden keine selektierten Sätze gefunden." -statusline
else
message "S: Die Anzahl der markierten Sätze: &V[Anzahl]" -statusline
endif

// Back to line 1
Enter "/ScrollToLine=1" Table="T[&V[TableName]]"

label script_ende

Grüße, ScriptMan
Offline M.Carl  
#7 Geschrieben : Mittwoch, 18. September 2019 11:11:53(UTC)
M.Carl

Beiträge: 6
Germany
Wohnort: SL
Zitat von: ScriptMan Gehe zum zitierten Beitrag
Hallo Micha,

ich habe mal da einen Ausflug in die Vergangenheit getan:

http://www.synactive.com/examples/example0018.html

Eine abgespeckte Version dessen würde dann die Anzahl der markierten Sätze ermitteln.

z.B.

...script_ende

Grüße, ScriptMan




Moin. Das klingt doch sehr gut.
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Ich werde es ausprobieren und dann wieder ein Feedback geben.
Vielen Dank
Offline M.Carl  
#8 Geschrieben : Mittwoch, 18. September 2019 11:53:22(UTC)
M.Carl

Beiträge: 6
Germany
Wohnort: SL
Zitat von: ScriptMan Gehe zum zitierten Beitrag
Hallo Micha,

ich habe mal da einen Ausflug in die Vergangenheit getan:

http://www.synactive.com/examples/example0018.html

Eine abgespeckte Version dessen würde dann die Anzahl der markierten Sätze ermitteln.

z.B.
....

Grüße, ScriptMan


Vielen Dank.
Es funktioniert Wunderbar.
Jetzt muss ich mir nur noch einen Rückzähler einbauen damit ich eine "unbegrenzte" Zeilen bearbeiten kann und dann ist es perfekt.
Das sollte ich aber hinbekommen.

Vielen Dank dafür

Bearbeitet vom Benutzer Donnerstag, 19. September 2019 06:26:18(UTC)  | Grund: Nicht angegeben

Offline M.Carl  
#9 Geschrieben : Donnerstag, 26. September 2019 11:52:21(UTC)
M.Carl

Beiträge: 6
Germany
Wohnort: SL
Hallo.

Bis jetzt hat das Skript super funktioniert.
Aber nun habe ich ein Limit festgestellt.

Ich habe manchmal Aufträge mit ca 50 Einträgen/Vorgängen.
Jedoch hört das Skript nach ca. 28 Einträgen auf zu arbeiten.

Weis jemand Rad?

Es wird quasi bis Vorgang 280 (Immer 10er schritte bei uns) alles bearbeitet und danach nicht mehr.
Ich habe das oben angeschriebene Skript verwendet und ihm darunter gesagt was er tun soll.

Hoffe auf weitere Hilfe.
Vielen Dank

MfG Micha
Benutzer, die gerade dieses Thema lesen
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 -