Zeilennumer in Code

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

Zeilennumer in Code

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
Hallo, ich möchte für ein Error Handling gern die Zeilennummer an eine Fehlernachricht mit anhängen.
Leider finde ich in der SYST kein Feld mit der Aktuellen Zeilennummer im Sourcecode.
Auch über die TPDA_PRG_INFO-Line komme ich nicht an den WErt heran.

Aber irgendwie muss es ja gehen - in einer normalen Dump-Analyse steht ja auch die Zeilennummer des Auftretens dabei.


Vielen Dank schon mal im Voraus
RIG

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


Re: Zeilennumer in Code

Beitrag von ewx (Top Expert / 4905 / 330 / 649 ) »
Du musst mit Ausnahmeklassen arbeiten. Dort hat jede Ausnahmeklasse die Methode GET_SOURCE_POSITION.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
RIG


Re: Zeilennumer in Code

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
Danke, stimmt ja, dort wird einem gleich vieles mitgegeben.
Leider fehlt mir zu den Klassenbasierten Ausnahmen eine gute Hilfe / tutorial.
Auch vom Konzeptionellen her.

Was ist die beste Taktik bzw an welchen gesichtpunkten entscheide ich mich für eine variante.
Z.B.: Eine Methode kann 2 verschiedene Fehler verursachen.
- 2 Ausnahmeklassen erstellen die in Abhängigkeit vom Fehler erstellt werden
- eine Ausnahmeklasse unterschiedliche mit Attributen belegen
- ohne Ausnahmeklassen sondern mit Ausnahmen arbeiten

Gibt es dazu nicht ordentliche Beispiele irgendwo? Gern alls mit Globalen Klassen aus dem Class-Builder.

THX und grüße aus Dortmund

Re: Zeilennumer in Code

Beitrag von ewx (Top Expert / 4905 / 330 / 649 ) »
Beispiel gibt's genug. Aber davon weißt du noch nicht, wie du sie am besten einsetzt...
Ob du nun Methode 1 oder zwei nimmst, ist wahrscheinlich gehupft wie gesprungen.
Wenn es wirklich zwei komplett unterschiedliche Fehler sind, dann zwei Ausnahmeklassen.
Wenn die Fehler gleich sind, aber sich durch ein Attribut genauer beschreiben lassen, dann Variante 2.

Vorteil von Variante 2 ist, dass du einfach einen neuen Fehlerfall einbauen kannst, ohne dass du die aufrufenden Klassen ändern musst. In denen müsstest du ja eine neue Ausnahmeklasse abfangen.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
RIG


Re: Zeilennumer in Code

Beitrag von a-dead-trousers (Top Expert / 4477 / 229 / 1203 ) »
ewx hat geschrieben:Vorteil von Variante 2 ist, dass du einfach einen neuen Fehlerfall einbauen kannst, ohne dass du die aufrufenden Klassen ändern musst. In denen müsstest du ja eine neue Ausnahmeklasse abfangen.
Es sei denn, die neue Klasse ist eine Subklasse der bestehenden, denn auch bei den Ausnahmeklassen funktioniert die Vererbung.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
RIG

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Zeilennumer in Code

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
Noch eine Frage:

Kann ich auch mehrere Nachrichten mitgeben wenn mir der Langtext nicht ausreicht?
Bzw. wenn ich eine Ausnahmeklasse mit Nachrichtenklasse anlge und bei der Nachricht den Haken bei Selbsterklärend raus nehme, hilft mir das dann weiter?

Viele Grüße aus dem Pott

Re: Zeilennumer in Code

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
RIG hat geschrieben:Noch eine Frage:

Kann ich auch mehrere Nachrichten mitgeben wenn mir der Langtext nicht ausreicht?
Bzw. wenn ich eine Ausnahmeklasse mit Nachrichtenklasse anlge und bei der Nachricht den Haken bei Selbsterklärend raus nehme, hilft mir das dann weiter?

Viele Grüße aus dem Pott

Gerade getestet:
Funktioniert!!! Is ja der Wahnsinn. :-)

Der Langtext wird selbst fürs Ballog und auch beim Ausgeben der Meldung verwendet.

Super Sache!

VG

Re: Zeilennumer in Code

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
ewx hat geschrieben:Du musst mit Ausnahmeklassen arbeiten. Dort hat jede Ausnahmeklasse die Methode GET_SOURCE_POSITION.
Noch eine Frage dazu:

Wird die Ausnahme in einer Methode einer Klasse ausgelöst, bekomme ich leider nicht den Namen der Methode zurück geliefert. Mach ich da noch was falsch oder ist das leider so.
PROG_NAME ZCL_TEST======================CP
INCLUDE_NAME ZCL_TEST======================CM001

und noch eine weitere Frage:

wenn ich in meinem Meldungstext schon 4 Variablen brauche, zusätzlich aber gern den Aufruf des Fehlers mit angeben möchte, also Report / klasse / Methode / Zeile,
geht das irgendwie?

Viele Grüße

Re: Zeilennumer in Code

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Concatenate Report klasse Methode Zeile into textvariable. Achtung Laenge ist begrenzt. (gilt fuer die klassichen Fehlermeldungen)

Ist die Rueckgabe der Zeile im Code wirklich so wichtig?

Ich bevorzuge konkrete Meldungen, die man dann ueber den Verwendungsnachweise sehr leicht wiederfindet.
Zuletzt geändert von Unit605 am 04.02.2014 21:40, insgesamt 1-mal geändert.

Re: Zeilennumer in Code

Beitrag von ewx (Top Expert / 4905 / 330 / 649 ) »
Du kannst beliebig viele (??) Platzhalter definieren (als Attribute) und diese beim RAISE mitgeben.
Den Fehlertext kannst du ebenfalls beliebig lang (??) machen und dort die Platzhalter von & umgeben eintragen.
http://musicodez.wordpress.com/2010/09/ ... exception/

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
RIG


Re: Zeilennumer in Code

Beitrag von a-dead-trousers (Top Expert / 4477 / 229 / 1203 ) »
RIG hat geschrieben:Wird die Ausnahme in einer Methode einer Klasse ausgelöst, bekomme ich leider nicht den Namen der Methode zurück geliefert. Mach ich da noch was falsch oder ist das leider so.
PROG_NAME ZCL_TEST======================CP
INCLUDE_NAME ZCL_TEST======================CM001
Das sind die "Namen" der Methoden-Includes. Wenn du z.B. in der SE38 diese eingibst, gelangst du direkt zu der entsprechenden Methode. Das sollte eigentlich reichen.

lg ADT

EDIT: Nach einigem Suchen --> CL_OO_CLASSNAME_SERVICE bietet diverse Methoden zur Namensbestimmung an. Darunter auch GET_METHOD_BY_INCLUDE.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
RIG

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Zeilennumer in Code

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
a-dead-trousers hat geschrieben:
RIG hat geschrieben:Wird die Ausnahme in einer Methode einer Klasse ausgelöst, bekomme ich leider nicht den Namen der Methode zurück geliefert. Mach ich da noch was falsch oder ist das leider so.
PROG_NAME ZCL_TEST======================CP
INCLUDE_NAME ZCL_TEST======================CM001
Das sind die "Namen" der Methoden-Includes. Wenn du z.B. in der SE38 diese eingibst, gelangst du direkt zu der entsprechenden Methode. Das sollte eigentlich reichen.

lg ADT

EDIT: Nach einigem Suchen --> CL_OO_CLASSNAME_SERVICE bietet diverse Methoden zur Namensbestimmung an. Darunter auch GET_METHOD_BY_INCLUDE.

Die Methode ist genau das was ich gesucht habe, Vielen Dank schonmal dafür. Funktioniert super.

Re: Zeilennumer in Code

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
ewx hat geschrieben:Du kannst beliebig viele (??) Platzhalter definieren (als Attribute) und diese beim RAISE mitgeben.
Den Fehlertext kannst du ebenfalls beliebig lang (??) machen und dort die Platzhalter von & umgeben eintragen.
http://musicodez.wordpress.com/2010/09/ ... exception/
Getestet und ebenfalls für gut befunden.

Vielen Dank

Seite 1 von 1

Vergleichbare Themen

6
Antw.
4737
Views
Struktur-Code
von ahartmann » 23.08.2012 09:27 • Verfasst in ABAP® für Anfänger
3
Antw.
3986
Views
Workflow in Code
von bine1011 » 15.04.2014 08:21 • Verfasst in ABAP® für Anfänger
7
Antw.
4775
Views
Code Inspector
von Norbert_Aeq » 10.04.2012 15:54 • Verfasst in ABAP Objects®
4
Antw.
16611
Views
Data to Code vs. Code to Data
von SAP_ENTWICKLER » 06.12.2016 11:36 • Verfasst in SAP HANA für Anfänger
6
Antw.
3037
Views
Code überspringen
von CSelberg » 27.03.2018 15:24 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

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.

Unbeantwortete Forenbeiträge

Benutzerdefinierte Felder PSP
vor 3 Wochen von Rabea1103 1 / 44756
Spool vereinen OTF und PDF
letzen Monat von anna2205 1 / 60879
XSLT und Loipro05 Transformation
December 2025 von Torsten1965 1 / 68301