Makros

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Makros

Beitrag von io ( / / 0 / 3 ) »
Hallo,

in einem Hinweis taucht irgendwas von Makros auf.
Was ich damit machen soll steht allerdings nirgends... -> tolle Sache!
Deshalb die Frage an euch: Was mache ich mit Makros?
Wie verwende ich die?

Danke!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo io,

Macro's werden mit DEFINE (=> Hilfe) angelegt.
Es wird aber an diversen Stellen dringend von deren Verwendung abgeraten, weil sie den Code sehr undurchsichtig machen und im Debugger nicht aktiv durchlaufen werden können. Soll heißen, man steht an der Aufrufstelle und landet bei Einzelschritt danach immer an der nächsten Anweisung danach.

In einigen Fällen lassen sich jedoch recht einfach Vereinfachungen der Programmierung erreichen...
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Gast ( / / 0 / 3 ) »
Das ist ja mal wieder traumhaft. Ich gebe DEFINE ein, klick auf F1 und was kommt?! Nichts.

Gibt es dazu keine Hilfe?
Bzw. könntest du mir die Zeilen bitte hier rein posten, wenn du kurz Zeit hast?!

Laut Hinweis ist es ja erforderlich die Makros einzubauen. Was ich letztendlich damit machen soll ist mir nicht so klar... Aber irgendwie muss ich ja hier weiterkommen mit dem Kram. :evil: :cry:

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Dass Du keine Hilfe dazu angezeigt bekommst, wundert mich doch sehr... :shock:

Code: Alles auswählen.

DEFINE 


Grundform 
DEFINE macro. 



Wirkung 
Definition eines unter dem Namen macro ansprechbaren Quelltext-Abschnitts (Makro). Ein als DEFINE-Makro abgelegter Quelltext-Abschnitt darf nur aus vollständigen Sätzen der Sprache ABAP bestehen. 

Alle Makroverwendungen werden zur Übersetzungszeit textuell aufgelöst. Die Makrotechnik ist also ein Textersatz-Mechanismus zur Übersetzungszeit, kein Modularisierungs-Mechanismus zur Laufzeit. 

Der Abschluß des Makros erfolgt durch die Anweisung END-OF-DEFINITION. 

Bei der Definition eines Makros können Stellungsparameter mittels &n angesprochen werden (n = 1, 2, ..., 9). Bei der Auflösung einer Makroverwendung wird &n durch den n-ten aktuellen Parameter textuell ersetzt. 


Beispiel 
Es wird ein Makro namens "INCREMENT" definiert und anschließend im Programm verwendet. 


DEFINE INCREMENT. 
  ADD 1 TO &1. 
END-OF-DEFINITION. 

DATA: NUMBER TYPE I VALUE 1. 
... 
INCREMENT NUMBER. 



Hinweise 
Im allgemeinen ist die Verwendung von Unterprogrammen ( FORM, FUNCTION) der Verwendung von Makros vorzuziehen, weil Unterprogramme - im Gegensatz zu Makros - durch alle Werkzeuge der Entwicklungsumgebung (Workbench, Debugging, Laufzeitanalyse, Laufzeitfehlerbehandlung, ...) unterstützt sind. 


Es ist nicht möglich, innerhalb einer Makrodefinition ein weiteres Makro mit DEFINE zu definieren. 


Es ist nicht zulässig, ABAP-Schlüsselworte als Makronamen zu verwenden. 


Die Gültigkeit einer Makrodefinition wird ausschließlich durch ihre Position im Quelltext bestimmt. Ein Makro kann in allen auf die Definition folgenden Quelltextzeilen verwendet werden. Es gibt keine Unterscheidung zwischen globalen und lokalen Makros. Ob ein Makro außerhalb oder innerhalb eines Unterprogramms definiert ist, hat keine Bedeutung für seine Gültigkeit. 


Wird ein Makro redefiniert, d.h. ein schon vorher verwendeter Makroname mit einer neuen Bedeutung versehen, so zieht ab der Redefinitionsstelle das Makro in seiner neuen Bedeutung. 
der Vollständigkeit halber...

Code: Alles auswählen.

END-OF-DEFINITION 


Grundform 
END-OF-DEFINITION. 



Wirkung 
Die Anweisung END-OF-DEFINITION schließt eine mit DEFINE eingeleitete Makrodefinition ab. 


Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Gast ( / / 0 / 3 ) »
Danke! Ich kuck mal ob zurecht komme...

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

ganz kurz:

Makros sind im Prinzip eine Hilfe, die ein Stück Quellcode an die Stelle schreibt wo das Makro aufgerufen wird.

Die genaue Ausgestaltung des Quellcodes kann durch Parameter gesteuert werden.

Code: Alles auswählen.

* kleines Makro
DEFINE MYINIT.
IF &1 IS INITIAL.
   &1 = &2.
ENDIF.
END-OF-DEFINITION.

* Verwendung:
MYINIT s-zick 'X'.
MYINIT s-zack 123.
MYINIT s-murks 'Hallo'.

* Ausgeführt wird:
IF s-zick IS INITIAL.
   s-zick = 'X'.
ENDIF.
IF s-zack IS INITIAL.
   s-zack = 123.
ENDIF.
IF s-murks IS INITIAL.
   s-murks = 'Hallo'.
ENDIF.

Das Makro schreibt mir 3 mal diese Abfragesequenz in den Quellcode (aber leider unsichtbar und mit allen Vor- und Nachteilen wie schon oben geschrieben wurde).

Gruß
babap

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1513
Views
Makros und Feldsymbole
von kleiner SAPler » 26.06.2006 10:53 • Verfasst in ABAP® Core
5
Antw.
2149
Views
HR-Funktionsbaustein und Makros
von Ranganga » 04.07.2007 16:14 • Verfasst in ABAP® Core
3
Antw.
2528
Views
RMAC-Makros ausführen
von faebl » 17.10.2016 11:06 • Verfasst in Human Resources
32
Antw.
8320
Views
Eigene Makros aus der TRMAC benutzten
von danielA. » 05.04.2006 15:04 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 10 Stunden von DeathAndPain gelöst 22 / 3010
Daten an Tabelle binden
vor 15 Stunden von Lukas Sanders 2 / 982
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 547

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 10 Stunden von DeathAndPain gelöst 22 / 3010
Daten an Tabelle binden
vor 15 Stunden von Lukas Sanders 2 / 982
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 547

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2562
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9141