SAP Jobsuche bei DV-Treff
ThomasA
  • ThomasA
  • SAP Forum - User Thema Starter
vor 10 Jahre
Hallo zusammen,

bin bei meinen ersten Schritten im GUIXT gleich auf ein Problem gestoßen.

Ich habe eine Dropdownbox mit drei Werten und Beschreibung.

Der Wert wird in die Variable "Art" geschrieben.

Im Inputfield wird der Wert dazu angezeigt.

Das funzt immer beim ersten Aufruf bzw. Auswahl.

Wähle ich aber einen anderen Eintrag der Dropdown Box bleibt im Feld der alte stehen.

Wie bekome ich den aktualisiert?

hier der Script:

set text[Art] "=--- Auswahl WP_Typ ---;IH=Technik;BB=Betrieb;WW=ZÜS"

dropdownlist (8,1) "Art" refer="V[Art]" width=20

inputfield (8,22) "Art_WP:" (8,30) Name="Art" Size="10"

Danke Thomas

Förderer

ScriptMan
vor 10 Jahre
Hallo Thomas,

willkommen im Forum. Soweit hast du alles richtig gemacht. Das Problem ist, das die Variablen innerhalb von GuiXT immer nur bei einer Aktion / einem Durchlauf neu gesetzt werden. Mit anderen Worten muss man eine Aktion erzwingen, die aber keine unbeabsichtigte Veränderung im jeweiligen Screen auslösen sollte. Sehr oft ist es nur einfach das Enter-Auslösen.

Du kannst z.B. folgendes ausprobieren:

. . .

dropdownlist (8,1) "Art" refer="V[Art]" width=20 process="aktion.txt"

. . .

InputScript aktion.txt sollte es geben, könnte aber vollkommen leer bleiben, da bereits beim Starten dieses Skriptes automatisch ein ENTER von GuiXT ausgelöst wird.

Freundliche Grüße

ScriptMan

ThomasA
  • ThomasA
  • SAP Forum - User Thema Starter
vor 10 Jahre
Hallo,

danke für den Tipp, aber "Enter" bewirkt, das die TA (in dem Fall IP04) weiter verarbeitet wird. Ich will aber noch in Einstiegsbild stehen bleiben. Welche Aktion kann ich da benutzen?

Danke Thomas

ScriptMan
vor 10 Jahre
Hallo,

du kannst in diesem Fall folgendes ausprobieren.

aktion.txt:

return

ScriptMan 😎

ThomasA
  • ThomasA
  • SAP Forum - User Thema Starter
vor 10 Jahre
Hi,

danke, das klappt. Bin aber über die nächste Sache gestolpert.

Ich habe am Anfang meines Scriptes nun die Zeile

set V[Art] eingefügt damit die dropdowns Liste am Anfang nur die Überschrift anzeigt.

Wenn ich nun einen Eintrag auswähle und er über das "Return" geändert wird, wird der gesamte Script neu durchlaufen und damit die Dropdownliste zurück gesetzt. Wie kann ich dem Script sagen, das das Set V(Art) nur für den Anfang gilt?

Muss ich das Set auslagern in einen extra Script?

insgesamt sieht es jetzt so aus:

set V[Art]

set text[Art] "=--- Auswahl WP_Typ ---;IH=Technik;BB=Betrieb;WW=ZÜS"

dropdownlist (8,1) "Art" refer="V[Art]" width=20 process="update.txt"

inputfield (8,22) "Art_WP:" (8,30) Name="Art" Size="10" -readonly

Danke Thomas

ScriptMan
vor 10 Jahre
Hallo,

schön, dass es auch bei dir funktioniert.

1.Das mit dem Auslagern war schon eine gute Intuition. Ich würde es wie folgt realisieren.

saplsmtr_navigation.d0100.txt:

set V[Art] ""

Damit ist z.B. das SAP Easy Access Menü gemeint, wo man sich wahrscheinlich vor dem Einstiegsbild deiner TA befindet. Und dort könnte man die Variable V[Art] einmalig zurücksetzen.

2. z.B.

. . .

set V[Kurztext] "&V[Art] &V[Gew]"

inputfield (10,22) "Kurztext:" (10,32) Name="Kurztext" Size="20" -readonly

. . .

Grüße

ScriptMan

ThomasA
  • ThomasA
  • SAP Forum - User Thema Starter
vor 10 Jahre
Danke, das klappt super.

Wenn ich eine dropdownbox benutzte bewirke ich ja ein Update mit Process="update.txt"

Wie kann ich aber nach einer Änderung in einem Inpufield den neuen Wert sofort in eine Variable schreiben und den zusammengsetzten Kurztext "updaten"?

Noch ein ganz andere Frage:

Wenn ich mich von SAP abmelde und dann wieder anmelde (mit aktivem GUIXT" bleibt beim Aufruf der TA der Script stecken mit der Meldung "Zeile 2:KOmponente Input Assistent erforderlich für 'Set'

Ich habe im Profile aber den Input Assistent aktiviert (allerdings habe ich keinen Lizensschlüssel) ist das der Grund dafür?

Ciao Thomas

ScriptMan
vor 10 Jahre
1.Die Aktualisierung von den entsprechenden Variablen geschieht durch die Auswahl in dropdownlist. Darum muss man sich nicht kümmern. Wenn man die Definition der Variable V[Kurztext] nach den 2 Auswahlboxen platziert, geschieht alles automatisch. Die Skripte werden immer von oben nach unten abgearbeitet.

z.B.:

set text[Art] "=--- Auswahl WP_Typ ---;IH=Technik;BB=Betrieb;WW=ZÜS"

dropdownlist (8,1) "Art" refer="V[Art]" width=20 process="update.txt"

inputfield (8,22) "Art_WP:" (8,30) Name="Art" Size="10" -readonly

set text[Gew] "=--- Auswahl Gew_Typ ---;T=Tischler;H=Heizung;S=Sanitär"

dropdownlist (9,1) "Gew" refer="V[Gew]" width=20 process="update.txt"

inputfield (9,22) "Gew_WP:" (9,30) Name="Gew" Size="10" -readonly

set V[Kurztext] "&V[Art] &V[Gew]"

inputfield (10,22) "Kurztext:" (10,30) Name="Kurztext" Size="20" -readonly

2. Das ist der Grund. Wir arbeiten mit einer 100-er Lizenz für den InputAssistant und haben es seit bereits 4 Jahren nicht ein einziges Mal bereut. 😄

Grüße

ScriptMan

ThomasA
  • ThomasA
  • SAP Forum - User Thema Starter
vor 10 Jahre
Hallo,

habe erstmal einen Testkey beantragt...

Das Update der Texte aus den Dropdownlisten funzt, aber ich habe noch folgenden Eintrag:

inputfield (17,1) "Bemerkung:" (17,50) Name="BEM" size="15" default=""

Also eine Freitextfeld was ich mit in den "KT" gebe

Set V[KT] "&[Art]&[Gew]&[PArt]&[IHArt]&[GL]&[ZUST]&[PUmf]&[Zahl]&[EINH]&[BEM]"

Aber das klappt nur wenn eien Update bewirkt wird, zum Beispiel durch Ändern einer Dropbox, aber ich möchte gern ein update nachdem der Text in der Freitextbox geändert wurde.

CIao Thomas

ScriptMan
vor 10 Jahre
In diesem Fall würde ich folgendes ausprobieren.

z.B.

. . .

on "ENTER" process="Update.txt"

. . .

Das bewirkt aber, dass die TA nicht mehr auf das ENTER-Drücken wie vorher reagiert und weiter prozessiert. Vielmehr wird dadurch nur ein Durchlauf des GuiXT-Skriptes erzwungen. Die weitere Abarbeitung der Transaktion wäre dann nur durch Betätigen eines entsprechenden Schalters möglich, den ich jetzt zwar nicht kenne, den es aber wie immer geben muss.

Grüße

ScriptMan

ThomasA
  • ThomasA
  • SAP Forum - User Thema Starter
vor 10 Jahre
Ja so geht es.

habe dann zum eigentlichen Ausführen der TA

einen pushbutton mit "start.txt" und "return" im Bauch

Damit bin ich einen ganzen Schritt weiter.

Wäre mal interessant zu sehen was Ihr so mit GuiXT macht.

CU Thomas

ThomasA
  • ThomasA
  • SAP Forum - User Thema Starter
vor 10 Jahre
Hi,

@ScriptMan dein Postfach ist voll...

danke für den Tipp mit der Hilfe. Die ist wirklich gut gemacht.

Ich hoffe ich darf trotzdem noch eine Frage stellen 😎

Ich schaffe nun die Felder auszulesen und auf dem Screen zu füllen.

In der Doku stand nicht, wie ich in einen anderen Rider springe.

Ich habe mit dem Input assistenten aufgenommen.

Screen SAPLIWP3.0201

Enter "=T\03" // Zusatzdaten Wartungsplan

das "=T\03" steht für den dritten Rider

Aber wenn ich Daten an Variablen (mit meiner Input.txt)übergeben möchte hat er sie dann nicht.

wie kann ich den dritten Rider ansprechen?

Danke Thomas