SAP Script – Ermittlung der letzten Zeichen bei unterschiedlicher Textlänge

Wer in Formulare bearbeitet, der weiß, dass es mit Script nicht ganz so einfach geht, wie man es aus anderen Programmier- oder Scriptsprachen kennt. Hier möchte ich kurz und knapp einmal zeigen, wie man in Script, also aus dem heraus, die letzten 4 Zeichen abfragt. Das Problem ist, dass der Text dabei eine unterschiedliche Länge haben kann.

Hier ein paar Informationen zum eigentlichen Problem:

In unserem Bestellkopf der Transaktion ZME21N bzw. ME21N gibt es einen Reiter Kundendaten, wo wir über Eigenentwicklung Felder für das Vergabeverfahren anzeigen lassen. Der gewählte Wert wird in der Tabelle EKKO (Einkaufsbelegkopf) im Feld ZZVART gespeichert und kann einen der unterschiedlich langen Werte (Text) aus der Tabelle unten (z.B. FV_VOL) enthalten. Ich möchte per SAP Script im Formular nun auf die letzten 4 Zeichen prüfen und nur dann etwas anzeigen lassen, wenn der Wert _VOL ist bzw. WENN die Bestellung nach Vergabe- und Vertragsordnung für Leistungen erfolgt.

In SAP Script gibt es leider keinen Befehl, mit dem ich die letzten 4 Stellen auslesen kann. Ich muss also folgendermaßen Vorgehen, quasi einen Workaround schaffen:

  1. Über DEFINE eine Variable TempV erstellen, die den Wert aus dem Feld EKKOZZVART bekommt. Da ZZVART eine Tabellenfeldlänge von 10 hat, füllt man das Feld auf diese Zeichenanzahl auf. Nun enthält die Variable TempV schon einmal eine einheitliche Länge, mit der man arbeiten kann.
  2. Durch die Angabe eines Offsets legen wir nun fest, dass nur eine bestimmte Anzahl von Zeichen angezeigt wird. Hier genügt also wenn wir die Zeichenausgabe um 6 Stellen verschieben, also ab dem 7. Zeichen ausgeben, denn bspw. bei einem Variableninhalt vom Wert [****BA_VOL] wird dann nur [_VOL] ausgegeben. Das genügt um sauber und einfach nach VOL, VOB oder VOF abzufragen.

SAP - Vergabeart in Bestellungen

Über die Transaktionen SE11 und SE16 kann man sich den Wert in der Tabelle oder auch die Feldeigenschaften anzeigen lassen. Hier sieht man, dass die Feldlänge 10 Zeichen (Typ Char) beträgt. Über die SE16 sieht man den Inhalt.

SAP Tabelleninhalt anzeigen

Im SAP Formular kann man, wie oben beschrieben, mit den letzten 4 Zeichen des Textes arbeiten und so, zumindest an dieser Stelle, einfache Prüfungen durchführen.

SAP - Textzeichen von rechts auslesen

Hier ist das SAP Script Schnipsel zum Bild:

/*         * Prüfung ob im Reiter Kundendaten VOL gewählt
/*         * Variable TempV erstellen und
/*         * aufgefüllten Inhalt von ZZVART zuweisen
/:         DEFINE &TEMPV& = &EKKO-ZZVART(*R)&
A4         OFFSET 6 : &TEMPV+6&
/:         IF &TEMPV+6& EQ ‚_VOL‘

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.