Programmbeurteilung: Textpool durchsuchen

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

Programmbeurteilung: Textpool durchsuchen

Beitrag von Murdock (Specialist / 126 / 60 / 10 ) »
Hallo zusammen,

ich hab einen Report geschrieben, der den Textpool durchsucht.

Das Programm funktioniert - so weit, so gut.

Da ich ABAP Anfänger bin, bitte ich mal um konstruktive Kritik.
Was ist wie besser zu machen?

Code: Alles auswählen.

REPORT  ztext_suche LINE-SIZE 255.

TYPES: BEGIN OF ty_progs,
         name TYPE trdir-name,
*         id type textpool-id,
         key TYPE textpool-key,
         entry TYPE textpool-entry,
       END OF ty_progs.

DATA: gt_text_read  TYPE TABLE OF textpool,
      gt_prog_found TYPE TABLE OF ty_progs, "Fundstellen
      gt_prog_read  TYPE TABLE OF trdir-name, " Alle Programmnamen
      gv_prog_name  TYPE trdir-name,
      gs_prog_found TYPE ty_progs.

FIELD-SYMBOLS: <fs_prog> TYPE trdir-name,
               <fs_text> TYPE textpool,
               <fs_text_found> TYPE ty_progs.

PARAMETER: p_text TYPE trdir-name.

SELECT-OPTIONS: s_prog FOR gv_prog_name.


START-OF-SELECTION.
* Alle Programmnamen lesen

  SELECT name
    INTO TABLE gt_prog_read
    FROM trdir
    WHERE name IN s_prog.

* Textpool von den einzelnen Programmen lesen
  LOOP AT gt_prog_read ASSIGNING <fs_prog>.
    READ TEXTPOOL <fs_prog> INTO gt_text_read LANGUAGE 'D'.

* Tab. mit Textpool durchsuchen
    LOOP AT gt_text_read ASSIGNING <fs_text> WHERE entry CP p_text.
* Wenn gefunden, dann Daten in die "gefunden" Struktur schieben
      MOVE-CORRESPONDING <fs_text> TO gs_prog_found.
* Um Programmnamen anreichern
      gs_prog_found-name = <fs_prog>.
* An die Tabelle für gefundene Textstellen anhängen
      APPEND gs_prog_found TO gt_prog_found.
      CLEAR gs_prog_found.
    ENDLOOP. "loop at gt_text_read

  ENDLOOP. "LOOP at gt_prog_read

  UNASSIGN <fs_prog>.
  UNASSIGN <fs_text>.
* Ausgabe

  LOOP AT gt_prog_found ASSIGNING <fs_text_found>.
    WRITE: / <fs_text_found>-name(40), <fs_text_found>-key,  <fs_text_found>-entry(60).
  ENDLOOP. "LOOP at gt_prog_found

  UNASSIGN <fs_text_found>.
END-OF-SELECTION.
Danke,
Murdock.

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


Re: Programmbeurteilung: Textpool durchsuchen

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Sieht doch gut aus.

Aenderungen sind wohl nur "Vorlieben" des einzelnen Developers.

END-OF-SELECTION. <--- wird nicht benoetigt. Nur bei Verwendung einer logischer Datenbank

Folgende Benutzer bedankten sich beim Autor Unit605 für den Beitrag:
Murdock


Re: Programmbeurteilung: Textpool durchsuchen

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Hallo Murdock,

das sieht doch sehr gut aus was du da hast. Sinnvolle Namensgebung, kommentiert, gut strukturiert...

Somit höchstens ein paar Kleinigkeiten die ich schöner fände.


1.) Statt "TYPE TABLE OF" das vollständige "TYPE STANDARD TABLE OF ... WITH NON-UNIQUE DEFAULT KEY"
2.) <fs...> ist eine Tautologie. Auch die Sichtbarkeit (global) ist nicht erkennbar.
3.) Das abschließende END-OF-SELECTION ist überflüssig. Da dies aber der Defaultzeitpunkt von ABAP ist, würde ich all dein Coding hinter END-OF-SELECTION statt hinter START-OF-SELECTION stellen. ( Und da dein Programm recht einfach strukturiert ist. Stelle nur deinen Select... hinter START-OF-SELECTION und den Rest hinter END-OF-SELECTION. Das ist zwar nicht der eigentliche Sinn dieser Zeitpunkte, aber könnte evtl. eine weitere Strukturierung des Programms darstellen ).
4.) Die UNASSIGNs sind überflüssig. Wir leben nicht mehr in Zeiten wo jedes Bit richtig Gold kostet.
5.) Jetzt muss ich schon suchen - aber was solls. Du wolltest es ja. Schönheitskorrektur: Die TYPEs der Feldsymboldefinitionen stehen nicht untereinander.
6.) Die Deklaration "PARAMETER" ist zwar erlaubt - aber offiziell heißt das "PARAMETERS"
7.) Reine Geschmackssache und ich kenne Andere, die so etwas aus anderen Überlegungen nicht machen würden. Deine Feldsymbole <fs_prog> und <fs_text> werden ledlich für deine LOOP ... ASSIGNING verwendet. In so einem Fall deklariere ich die Feldsymbole mittels "<...> LIKE LINE OF tabelle" um diesen Sachverhalt darzustellen.
8.) CLEAR gs_prog_found. ist wie 4.) theoretisch überflüssig in so einem kurzen Programm - aber für längere Programm ist eine Variableninitialisierung in Schleifen sehr löblich. Wenn ich aber einen CLEAR mache würde ich ihn immer an den Anfang meiner Vearbeitung denn ans Ende stellen (leichtere Lesbarkeit)

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Murdock

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Programmbeurteilung: Textpool durchsuchen

Beitrag von Murdock (Specialist / 126 / 60 / 10 ) »
@Unit605: Danke für's angucken und den Kommentar.

@black_adept: Danke für's die ausführlichen Kommentare.
black_adept hat geschrieben: 1.) Statt "TYPE TABLE OF" das vollständige "TYPE STANDARD TABLE OF ... WITH NON-UNIQUE DEFAULT KEY"
Ok. Aber nur wegen der besseren Lesbarkeit, oder?
black_adept hat geschrieben: 2.) <fs...> ist eine Tautologie. Auch die Sichtbarkeit (global) ist nicht erkennbar.
Das stimmt. Beides. Sollte ich hier im Betrieb mal anmerken, so steht's nämlich in unseren Entwicklungsrichtlinien. :shock:
black_adept hat geschrieben: 4.) Die UNASSIGNs sind überflüssig. Wir leben nicht mehr in Zeiten wo jedes Bit richtig Gold kostet.
Wer's dreckig macht, räumt auch wieder auf :) Hast natürlich trotzdem Recht.
black_adept hat geschrieben: 5.) Jetzt muss ich schon suchen - aber was solls. Du wolltest es ja. Schönheitskorrektur: Die TYPEs der Feldsymboldefinitionen stehen nicht untereinander.
:D
black_adept hat geschrieben: 6.) Die Deklaration "PARAMETER" ist zwar erlaubt - aber offiziell heißt das "PARAMETERS"
Ach guck, wieder was gelernt. :up:
black_adept hat geschrieben: 7.) Reine Geschmackssache und ich kenne Andere, die so etwas aus anderen Überlegungen nicht machen würden. Deine Feldsymbole <fs_prog> und <fs_text> werden ledlich für deine LOOP ... ASSIGNING verwendet. In so einem Fall deklariere ich die Feldsymbole mittels "<...> LIKE LINE OF tabelle" um diesen Sachverhalt darzustellen.
Das gefällt mir. Ich denke, das werde ich in Zukunft auch so machen.


Danke und Gruß,
Murdock.

Re: Programmbeurteilung: Textpool durchsuchen

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Murdock hat geschrieben:
black_adept hat geschrieben: 1.) Statt "TYPE TABLE OF" das vollständige "TYPE STANDARD TABLE OF ... WITH NON-UNIQUE DEFAULT KEY"
Ok. Aber nur wegen der besseren Lesbarkeit, oder?
Jein, es trainiert für ABAP-OO (da ist die Syntaxprüfung etwas strenger). SAP macht zwar aus TYPE TABLE OF impliziet ein TYPE STANDARD TABLE OF, aber es wird kein Schlüssel definiert. Für manche Dinge braucht man dann aber wieder diese Schlüsseldefinition z.B. wenn Deep-Structure definiert werden sollen.
Gruß Hendrik

Re: Programmbeurteilung: Textpool durchsuchen

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
black_adept hat geschrieben:Hallo Murdock,

Somit höchstens ein paar Kleinigkeiten die ich schöner fände.

1.) Statt "TYPE TABLE OF" das vollständige "TYPE STANDARD TABLE OF ... WITH NON-UNIQUE DEFAULT KEY"

7.) Reine Geschmackssache und ich kenne Andere, die so etwas aus anderen Überlegungen nicht machen würden. Deine Feldsymbole <fs_prog> und <fs_text> werden ledlich für deine LOOP ... ASSIGNING verwendet. In so einem Fall deklariere ich die Feldsymbole mittels "<...> LIKE LINE OF tabelle" um diesen Sachverhalt darzustellen.
Finde ich gut :up:

Hast Du noch mehr von diesen semantischen Regeln?

Viele Grüße,
...entwickelnder Berater...beratender Entwickler

Re: Programmbeurteilung: Textpool durchsuchen

Beitrag von Murdock (Specialist / 126 / 60 / 10 ) »
erp-bt hat geschrieben: Finde ich gut :up:

Hast Du noch mehr von diesen semantischen Regeln?
Ich war zwar nicht angesprochen, aber guck doch mal hier: klick

Gruß,
Murdock.

Re: Programmbeurteilung: Textpool durchsuchen

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
Hi,

ja, stimmt. Ich wollte eigentlich black_adept ansprechen.

Trotzdem danke für den Link.

Viele Grüße,
Tapio
...entwickelnder Berater...beratender Entwickler

Seite 1 von 1

Vergleichbare Themen

4
Antw.
2995
Views
Varianten durchsuchen?
von ginotico » 22.07.2008 15:40 • Verfasst in Human Resources
6
Antw.
2693
Views
Dateipfad durchsuchen
von SKAMS » 24.01.2005 11:33 • Verfasst in ABAP® Core
5
Antw.
4457
Views
Verzeichnis durchsuchen
von Daniel01 » 17.01.2005 08:11 • Verfasst in ABAP® Core
2
Antw.
2167
Views
Jobketten in SAP BW durchsuchen
von vman » 05.08.2014 08:54 • Verfasst in Sonstige Module
21
Antw.
12615
Views
PDF Inhalt durchsuchen Abap
von Amar90 » 25.06.2012 11:59 • Verfasst in Tips + Tricks & FAQs

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 5 Stunden von Bright4.5 3 / 1476
Regex in where
vor 6 Stunden von tar 6 / 143
Programm anlegen mit Vorlage
vor 21 Stunden von DeathAndPain 2 / 126
IT0024 Qualifikationen CP-ID
vor 21 Stunden von DeathAndPain 2 / 355

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

Daten an Tabelle binden
vor 5 Stunden von Bright4.5 3 / 1476
Regex in where
vor 6 Stunden von tar 6 / 143
Programm anlegen mit Vorlage
vor 21 Stunden von DeathAndPain 2 / 126
IT0024 Qualifikationen CP-ID
vor 21 Stunden von DeathAndPain 2 / 355

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 23 Stunden von snooga87 1 / 86
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821