Schlüsselbefehl Define (Makros)
Ein sehr alter Schlüsselbefehl ist DEFINE, bzw. END-OF-DEFINITION.
Der Befehl ist heute nicht mehr üblich, aber man findet es gelegentlich noch in alten Programmen oder es gibt vereinzelt Entwickler, die gern mit diesen Makros arbeiten.
Vorsicht: Verwendung von Makros
- Makros können dem Entwickler Schreibarbeit sparen, aber Makros sind vielen SAP-Entwicklern nicht oder kaum bekannt, verwirren sie und die Syntax ist ungewohnt.
- Makros können nicht debuggt werden. Man kommt beim Debuggen nur bis zum Aufruf des Makros, aber nicht in die eigentliche Ersetzung der Parameter im Makro.
- Empfehlung: Man solte eher auf die Verwendung von Makros verzichten. Meist überwiegen die Nachteile der Verständlichkeit und mangelnde Debugbarkeit den Vorteilen eines Makros. SAP rät auch in modernen Programmen von der Verwendung von Makros ab.
Makros in SE80
- In der Transaktion SE80 gibt es innerhalb von einem Report einen eigenen Ordner "Makros". In diesem Projektbeispiel gibt es 5 Makros zum Programm SAPMZQMSDM (Modulpool).
- Im Makro sollte man vor allem auf die Platzhalter/Parameter achten, wie hier "&1" und "&2", die zur Laufzeit im Makro durch die Aufrufparameter ersetzt werden.
Auf das Makro kann man auch einen Verwendungsnachweis machen.
Hier sieht man den mehrfachen Aufruf vom Makro SET_WERKS mit der Übergabe von jeweils 2 Parametern.
Beispiel Typgruppe ICON
In der Typgruppe ICON ist ein Include >ICON< eingebunden.
In einer Befehlszeile stehen nun lediglich 3 Werte hintereinander, z. B.
ICON_2 ICON_DUMMY '@00@'. "PlaceholderIcon
Die Bedeutung dieser Syntax wird erst ersichtlich, wenn man das Include >ICON< öffnet.
Es wird hier u. a. ein Makro mit dem Namen ICON_2 erzeugt.
DEFINE ICON_2. ... END-OF-DEFINITION.
Im Makro wird eine Konstante angelegt mit dem Namen des ersten Platzhalters, typisiert auf das Datenelement ICON_L2 und hat den Wert des zweiten Platzhalters.
CONSTANTS: &1 TYPE ICON_L2 VALUE &2.
Also
*NameMakro 1.Platzhalter 2.Platzhalter Kommentar ICON_2 ICON_DUMMY '@00@'. "PlaceholderIcon
Wird nun im Report die Typgruppe ICON eingebunden, dann können die Ikonen mit den Konstantennamen ICON_SONDERZEICHEN, ICON_DUMMY etc. angesprochen werden.
Type-Pools: Icon. ... ikonenwert = icon_sonderzeichen.
Anwendungsbeispiel Makro
- Im Tricktresor gibt es ein sinnvolles Beispiel für die Anwendung eines Makros.
Tabelle TRMAC
- In der Tabelle TRMAC sieht man die global definierten Makros, wie z. B. das globale Makro "BREAK", dem der Benutzernamen als Parameter übergeben wird.
- Auch wenn es einen Warnhinweis gibt, kann die Tabelle TRMAC mit der Tabellenpflege SM30 editiert werden, bzw. um global gültige Makros ergänzt werden.