Eigene Makros aus der TRMAC benutzten

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
33 Beiträge • Seite 1 von 3 (current) Nächste
33 Beiträge Seite 1 von 3 (current) Nächste

Eigene Makros aus der TRMAC benutzten

Beitrag von danielA. (ForumUser / 97 / 0 / 0 ) »
Hallo Leute,

na ja, ich hab so ein kleines Programm nä!? In meinem Programm habe einen Loop denn ich gern in die TRMAC schreiben möchte bzw. es getan hab.
Nun will ich das Makro aufrufen, aber es kommt eine Fehlermeldung:

Eine Anweisung "EXPORTING" ist nicht vorgesehen. Eine korrekte ähnliche Anweisung ist "EXPORT".

Ich gebe dem Makro 4 Parameter mit, lasse ich nun ein weg, kommt folgende Fehlermeldung:

Aufruf von Makro $POPUP ohne 4. Aktualparameter.

Mein Makro heißt übrigen $POPUP. Ich habe in der Hilfe gelesen, dass man Sonderzeichen an 1. Stelle benutzen soll. Ist aber egal, mit Z gibt es den gleichen Fehler.

Gruß
danielA.

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


Beitrag von Flo (Specialist / 161 / 0 / 0 ) »
Du kannst ein Makro das die Parameter in der Form &1 &2 &3 &4 beinhaltet nicht einfach ohne den Parameter aufrufen.
Für deine erste Fehlermeldung braucht man noch bischen mehr Coding um zu sehen was da falsch läuft.

Hier die Fingerübung

Beitrag von danielA. (ForumUser / 97 / 0 / 0 ) »
Hallo Flo,

das ging ja schnell ;-).

Hier mal mein Coding für die TRMAC:
000 *DA
001 loop at &1.
002 CALL FUNCTION 'TH_POPUP' destination &2
003 EXPORTING
004 CLIENT = &3
005 USER = &2-low
006 MESSAGE = &4
007 exceptions
008 user_not_found = 1
009 others = 2.
010 IF SY-SUBRC <> 0.
011 message i000(zpopup).
012 ENDIF.
013 endloop.

Die 1. Spalte kann ich mir wohl schenken, da steht immer $POPUP.

Der Aufruf im Programm sieht so aus:
$popup p_user destination '005' mess.

Die Parameter:
P_User ist eine I-Tab ohne Kopfzeile bzw. ein Selektionsrange, ich habe es mit
p_user for blabla no intervals deklariert.
destination = sy-sysid.
'005' ist hier mal hart der Mandant.
mess ist ein CHAR 128.

Ich hoffe man kann jetzt mehr damit anfangen.

Gruß
danielA.

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

da dürfte ein Schreibfehler vorliegen:
Zeile 005:

Code: Alles auswählen.

005 USER = &1-low
statt

Code: Alles auswählen.

005 USER = &2-low
Gruß
Ereglam


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

Beitrag von danielA. (ForumUser / 97 / 0 / 0 ) »
Hallo ereglam,

danke für die Antwort. Du hast recht ;-) ......aber nützen tut´s mir nix.

Der Fehler ist noch der Gleiche.

Gruß
danielA.

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

hast Du denn das Macro mal lokal getestet?
Gruß
Ereglam


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

Beitrag von danielA. (ForumUser / 97 / 0 / 0 ) »
Hallo Ereglam,

was meinst du mit lokal getestet?

Ich habe den Report geschrieben und mich später dazu entschieden ein Teil als Makro laufen zu lassen. Es ging und auch in ein anderes System. Den Makro hab ich nur nicht zum laufen bekommen.

Gruß
danielA.

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
ich meine damit, dass Du das Macro in einem Report mal lokal mit DEFINE anlegst und ausprobierst.
Wenn dann alles funktioniert, sollte man es entsprechend in der TRMAC anlegen können.

Grundsätzlich ist natürlich auch so, damit zu rechnen, dass ein Fehler auftreten kann.

PS:
ich bin kein Freund von Macros und vermeide daher die Arbeit mit Jenen, zumal man sie nicht debuggen kann.
Gruß
Ereglam


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

Beitrag von donny (Specialist / 253 / 0 / 2 ) »
Jetzt muss ich mich auch noch einmischen :wink:

In der TRMAC müssen zusammenhängende Zeilen mit einem Folgezeichen * gekennzeichnet werden.

Im vorliegenden Fall "denkt" ABAP sonst, daß bei EXPORTING ein neues Kommando kommt. Siehe o.g. Fehlermeldung.

Gruß
Donny

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Damit müsste es dann in etwa so aussehen?

Code: Alles auswählen.

000	*DA
001	loop at &1.
002	CALL FUNCTION 'TH_POPUP' destination &2 *
003	EXPORTING *
004	CLIENT               = &3 *
005	USER                 = &1-low *
006	MESSAGE              = &4 *
007	exceptions *
008	user_not_found       = 1 *
009	others               = 2.
010	IF SY-SUBRC <> 0.
011	message i000(zpopup).
012	ENDIF.
013	endloop.
@donny
besser spät als nie.
Danke. Somit habe auch was dazugelernt.
Gruß
Ereglam


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

Beitrag von donny (Specialist / 253 / 0 / 2 ) »
ich glaub, die Sternchen müssen ganz rechts stehen.
Ist jedenfalls bei den anderen Kommandos in der TRMAC immer so.

Ansonsten sieht's schon ganz gut aus.

Donny

Beitrag von danielA. (ForumUser / 97 / 0 / 0 ) »
HI :D ,

also der Tipp ist goldrichtig. Und ja, die * müssen an der letzten Stelle stehen.

Vielen Dank + Gruß

danielA.

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

schaue nur kurz mal vorbei.
Zu dem Thema hätte ich einen Funktionsbaustein geschrieben. Der ist besser dokumentiert und besser zu testen.

Die TRMAC ist doch nicht mehr so aktuell...

Gruß
babap

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
babap hat geschrieben:Zu dem Thema hätte ich einen Funktionsbaustein geschrieben. Der ist besser dokumentiert und besser zu testen.
Ich persönlich halte Makros ohnehin für eine ziemlich dämliche Erfindung. Meine ersten Begegnungen mit Makros war "huch, gibts einen neuen ABAP-Befehl?".

Ich finde dass die die Lesbarkeit des Programms negativ beeinflussen, auch wenn sie auf den ersten Blick praktisch wirken.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von black_adept (Top Expert / 4080 / 125 / 934 ) »
ralf.wenzel hat geschrieben:
babap hat geschrieben:Zu dem Thema hätte ich einen Funktionsbaustein geschrieben. Der ist besser dokumentiert und besser zu testen.
Ich persönlich halte Makros ohnehin für eine ziemlich dämliche Erfindung. Meine ersten Begegnungen mit Makros war "huch, gibts einen neuen ABAP-Befehl?".

Ich finde dass die die Lesbarkeit des Programms negativ beeinflussen, auch wenn sie auf den ersten Blick praktisch wirken.


Ralf
Es gibt Leute, die ähnliche Aussagen über Feldsymbole machen.

Grundsätzlich auf bestimmte Aspekte einer Programmiersprache zu verzichten bedeutet fast immer auch nicht das vollständige Spektrum der Sprache auszunutzen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Vergleichbare Themen

4
Antw.
1610
Views
dynamisches ABAP mit der TRMAC?
von donny » 17.10.2008 14:43 • Verfasst in ABAP® Core
4
Antw.
758
Views
OO ALV - Liste der zuletzt benutzten Mat.Nrn. anzeigen
von kkauerau » 07.08.2019 11:04 • Verfasst in ABAP® für Anfänger
2
Antw.
5405
Views
IDocs: Segmente mit benutzten Feldern ausgeben
von adazip » 19.06.2007 14:32 • Verfasst in ABAP® für Anfänger
5
Antw.
4679
Views
Makros
von io » 26.07.2005 15:10 • Verfasst in ABAP® für Anfänger
5
Antw.
2149
Views
HR-Funktionsbaustein und Makros
von Ranganga » 04.07.2007 16:14 • Verfasst in ABAP® Core

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.