Set

Funktion Mit der Set-Anweisung können Sie Werte in Eingabefelder setzen. Die Set-Anweisung ist insbesondere zum Gebrauch in einem InputScript (Einbildtransaktionen) gedacht.

Im Unterschied zu Default prüft Set nicht, ob das Eingabefeld leer ist, sondern überschreibt einen eventuell existierenden Wert. In normalen GuiXT-Skripten ist  Set kaum verwendbar, da der ursprünglich anzuzeigende Wert schon bei Anzeige des Bildes überschrieben wird.

Ausser Eingabefeldern können Sie  durch  Set auch intern benutzten Variablen einen Wert zuweisen: Set V[Varname] “Wert”.

Beispiel Set F[Auftragsart] "BV"

Das Eingabefeld Auftragsart erhält den Wert  "BV".

Häufig wird als Wert ein Parameter des InputScript oder ein vorher definiertes Eingabefeld genannt, z.B.

Parameter AufArt

...

Set F[Auftragsart] "&U[AufArt]"

Format
Set F[Eingabefeld] “Wert” setzt einen Wert für ein Eingabefeld.
Set V[Varname] “Wert” setzt eine globale Variable.
Set V[gnm*] “Wert” setzt einen Wert für alle globalen Variablen bei denen der Name mit “gnm*” beginnt.
Set V[varname](x-y) “Wert” setzt einen Wert in die Stellen x bis y. Falls die bisherige Länge der Variablen kürzer ist als x, wird mit Leerzeichen aufgefüllt. 
Set Text[xxx] “Wert” als Kurzschreibweise für:

Set V[y] “Wert”
CopyText fromString=“y” toText=“xxx”

Analog wird &Text[xxx] in Strings durch den aktuellen Inhalt des Langtextes xxx ersetzt. 

Zusatzoptionen 
-stringlength Die Länge des Strings (in Bytes) wird in der Variablen zur Verfügung gestellt
search= Angabe eines Suchstrings. Wird der String gefunden, so wird das danach angegebene Wort übertragen. Beispiel:

Set V[Belegnr] "&V[_message]" Search="Beleg"

Falls die Systemvariable V[_message] den Inhalt “Es wurde der Beleg 10004003 erzeugt” hat, so wird der Variablen V[Belegnr] der Wert “10004003″ zugewiesen.  Bei der Suche wird Gross/Kleinschreibung ignoriert.

Durch if Q[ok] kann man abfragen, ob der String gefunden wurde.

pattern= Angabe einer Suchmaske, welche die Zeichen
  • ‘%’  beliebiger String bis zum nächsten passenden Zeichen der Suchmaske
  • ‘_’  einzelnes Zeichen

enthalten kann.  Es werden von links nach rechts alle Zeichen in die Variable übertragen, die einem “%” oder “_” entsprechen. Wenn die angegebene Suchmaske nicht mehr mit dem String übereinstimmt, werden keine weiteren Zeichen übertragen.

Durch if Q[ok] kann man abfragen, ob die Suchmaske vollständig den angegebenen String beschrieben hat.

Beispiele:

Set V[x]   “02.05.2007″  pattern=“__.__.____”       //  ok  V[x] = “02052007″
Set V[x]   “[abcd]“      pattern=“[%]“             //  ok  V[x] =”abcd”
Set V[x]   “12″          pattern=“%kg”             // nicht ok   V[x]= “12″
Set V[x]   “Beleg 400000087 hinzugefügt” pattern=“Beleg % hinzugefügt”  // ok   V[x]= “400000087“  

-uppercase Der Wert wird in Grossbuchstaben umgesetzt
-lowercase Der Wert wird in Kleinbuchstaben umgesetzt
-unpack Ein Wert, der aus einem Funktionsbaustein/BAPI als gepackter Dezimalwert geliefert wurde,  wird als normale Ziffernreihe übertragen.
Rechenoperationen und Zusatzoptionen 
Set erlaubt die Angabe von Rechenoperationen +, -, *, / mit jeweils zwei Operanden. Das Ergebnis der Rechenoperation wird in aufbereiteter Form in die Variable gestellt. Die beiden Operanden können als Direktwerte (z.B. 1 oder 5830) oder als Inhalte von Variablen (“&V[...]“) angegeben werden. Beispiele: 

Set V[Wert]           5830 / 365
Set V[Wert]   "&V[Gesamt]" / 365
Set V[Wert]   "&V[Gesamt]" / "&V[Tage]"
Set V[Summe] "&V[Betrag1]" +
"&V[Betrag2]"
Se
t
V[Index]   "&V[Index]" +
1

Das Ergebnis wird kaufmännisch gerundet und mit 2 Dezimalstellen in die Ergebnisvariable gestellt. Dabei wird bei Anmeldung mit Sprache Englisch der Punkt, sonst das Komma zur Abtrennung der Dezimalstellen verwendet (siehe auch die Zusatzoptionen und die Anweisung DecimalSeparator). Ganzzahlige Werte werden ohne Dezimalstellen dargestellt.

decimals= Angabe der Anzahl gewünschter Dezimalstellen zur Aufbereitung des Ergebnisses (0,1,2,3,…). Auch ganzzahlige Werte werden mit der angegebenen Anzahl von Dezimalstellen dargestellt.
decimalseparator= Angabe des Trennzeichens für die Dezimalstellen: “,” oder “.” . Dieses wird sowohl bei der Interpretation der Operanden als auch bei der Darstellung des Ergebnisses berücksichtigt.  
decimalseparator=UserDefault  Der im Benutzerstammsatz abgelegte Default (Punkt oder Komma) wird benutzt. Beim ersten Verwenden dieser Anweisung wird der Defaultwert über einen Remote Function Call (RFC) eingelesen. Es ist daher ein gültiger RFC Benutzer im GuiXT-Profile erforderlich.
groupseparator= Angabe eines Trennzeichens für die Tausendergruppen, meist “,” oder “.”. Es wird zur Darstellung des Ergebnisses verwendet.
groupseparator=UserDefault  Der im Benutzerstammsatz abgelegte Default (Punkt oder Komma) wird benutzt. Beim ersten Verwenden dieser Anweisung wird der Defaultwert über einen Remote Function Call (RFC) eingelesen. Es ist daher ein gültiger RFC Benutzer im GuiXT-Profile erforderlich.
Beispiel
Set V[x]   246824717   Decimals=3   DecimalSeparator=“.”   GroupSeparator=“,”

Die Variable V[x] erhält den Wert “3,526,067.286″. Das exakte Ergebnis ist “3526067,285714…”; es wird auf 3 Dezimalstellen gerundet und gemäss den Optionen aufbereitet.

Tips
&Tricks
  • Das Ankreuzen einer Checkbox ist ebenfalls mit Set möglich. Als Werte sind “X” oder ” “ möglich, oder entsprechend die Angabe eines Parameters, der einen dieser Werte besitzt.
  • Analog aktivieren Sie durch Set einen Radiobutton. Dabei ist es nicht nötig, die übrigen Radiobuttons der gleichen Gruppe zu deaktivieren, das geschieht automatisch bei dem Aktivieren eines einzelnen Radiobuttons. Zum Beispiel werden durch

    Set R[Dokumentation] "X"

    in Transaktion SE38 die weiteren Radiobuttons der gleichen Gruppe, R[Quelltext], R[Varianten], R[Attribute], R[Textelemente], auf nicht aktiv gesetzt.

  • Bitte lesen Sie das Input Assistant Tutorial zur Anwendung von Set.

 

Set