Implizite Erweiterung. Include. Anweisung ist n. erreichbar

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

Implizite Erweiterung. Include. Anweisung ist n. erreichbar

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Hallo,

ich habe in einer Methode eine implizite Erweiterung angelegt und möchte meine Erweiterung in einem Include ablegen.

Code: Alles auswählen.

METHOD get_required_objects .
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Klasse CL_ISU_IDE_DRGSCEN_GEN_POD, Methode GET_REQUIRED_OBJECTS, Anfang     ....
ENHANCEMENT 1  ZEBI_NET_ENH_I01.    "active version
*

  include ZEBI_NET_ENH_I01_01.

ENDENHANCEMENT.
*$*$-End:   (1)---------------------------------------------------------------------------------$*$*
Doch leider erhalte ich die folgende Fehlermeldung, wenn ich das Include und die Erweiterung aktivieren will:
Anweisung ist nicht erreichbar.
Was mache ich falsch?

Vielen Dank!

Gruß

K.

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


Re: Implizite Erweiterung. Include. Anweisung ist n. erreich

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Manchmal ist das ein Bug der Syntaxprüfung.
Kopier mal zum Testen den include code an die Stelle der Include Anweisung und sterne die Include - Anweisung selbst aus.
Sichern, aktivieren. Dann noch mal die Syntaxprüfung .
Wenn es nun geht, alles zurück und Fehlermeldung ignorieren.

Ansonsten ist das include nicht geeignet (dann bitte mal posten).
lg Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
kbit100

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Implizite Erweiterung. Include. Anweisung ist n. erreich

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Wenn es um "Wiederverwendbarkeit" von Code geht, würde ich zumindest eine statische Methode anstatt eines Includes empfehlen. Besser wäre es sogar immer mit Instanzen zu arbeiten.
Includes haben in Klassen je nach Umfeld bestimmte Vorgaben die es einzuhalten gilt. (Strengere Syntax, Nicht erlaubte Anweisungen usw.) Wenn man nun das Include in einem Programmumfeld bearbeitet, kann es zu Inkompatibilitäten kommen, weil die Prüfungen der Klasse beim Aktivieren evtl. nicht durchlaufen werden.

lg ADT

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

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: Implizite Erweiterung. Include. Anweisung ist n. erreich

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Das Problem mit der Nichterreichbarkeit des Codings stellt sich plötzlich nicht mehr. Allerdings kann ich auch nicht sagen, warum das so ist.

Dafür gibt es ein anderes Problem:

In der ursprünglichen Methode gibt es ein Include, welches diverse Definitionen von Macros beinhaltet.

Die implizite Erweiterung habe ich ja am Anfang der Methode eingefügt. Das sieht jetzt so aus:

Code: Alles auswählen.

ENHANCEMENT 1  ZEBI_NET_ENH_I01.    "active version
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(2) Klasse CL_ISU_IDE_DRGSCEN_GEN_POD, Methode GET_REQUIRED_OBJECTS, Anfang, Erweiterung ZEBI_NET_ENH_I01, Anfang     ...
  INCLUDE eedmmsg01.

  include ZEBI_NET_ENH_I01_01.

  return.

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(3) Klasse CL_ISU_IDE_DRGSCEN_GEN_POD, Methode GET_REQUIRED_OBJECTS, Anfang, Erweiterung ZEBI_NET_ENH_I01, Ende          ...
*$*$-End:   (1)---------------------------------------------------------------------------------$*$*

  INCLUDE eedmmsg01.                                       "#EC INCL_OK

  DATA lw_service     TYPE ederegscenserv.
  DATA lw_servicetxt  TYPE ederegscenservt.
  DATA lw_contract    TYPE ederegscencontr.
  DATA lw_contracttxt TYPE ederegscencontrt.
(...) usw. usw.
Im Include eedmmsg01 sind die Makros enthaten. Wenn ich versuche das Ganze zu aktivieren, erhalte ich die Fehlermeldug "MSG_DATEI ist bereits deklariert." Das liegt wohl daran, dass das betreffende Include zweimal angesprochen wird (in und außerhalb der Erweiterung). Kommentiere ich aber das Include in der Erweiterung aus und versuche das Ganze zu aktivieren, kommt die Fehlermeldung "Feld MSG_EXT_UI unbekannt. Es ist weder in einer der angegebenen Tabellen enthalten noch durch eine DATA-Anweisung definiert".
Füge ich nur diese DATA-Aneisung ein, dann heißt es, dass MSG_EXT_UI bereits deklariert ist.
Es ist zum Haare-ausraufen...

Ich bin ratlos, was ich da noch machen kann. Kann mir jemand einen Tipp geben? Vielen Dank für eure Mühe.

Gruß

K.

Re: Implizite Erweiterung. Include. Anweisung ist n. erreich

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Du solltest den Include kapseln in einen Funktionsbaustein / Form / statische Methode und
anstelle der Include-Anweisung den Baustein, oder Programm, oder Methode aufrufen.
lg Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
kbit100

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Implizite Erweiterung. Include. Anweisung ist n. erreich

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Tron hat geschrieben:Moin.
Du solltest den Include kapseln in einen Funktionsbaustein / Form / statische Methode und
anstelle der Include-Anweisung den Baustein, oder Programm, oder Methode aufrufen.
lg Jens
Das behebt aber nur das Problem mit der nicht erreichbaren Anweisung (was ja nicht mehr besteht) und wohl nicht mein Problem mit dem Include mit den Makros. Das sehe ich doch richtig, oder?

Re: Implizite Erweiterung. Include. Anweisung ist n. erreich

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
kbit100 hat geschrieben:nicht mein Problem mit dem Include mit den Makros. Das sehe ich doch richtig, oder?
Wieso brauchst du das SAP-Include mit den Makros überhaupt?
Verwendest du diese in deinem Coding?
Wenn ja, solltest du dein Coding nicht per Include einbinden, sondern wie von Tron vorgeschlagen in einer eigenen Methode/Form/FuBa. Dort könntest du die Markos/Variablen dann lokal deklarieren und verwenden und nicht wie in der Include-Lösung eine weitere globale Definition verwenden, die natürlich nicht funktioniert.

Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag:
kbit100

Gruß Hendrik

Re: Implizite Erweiterung. Include. Anweisung ist n. erreich

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Wieso brauchst du das SAP-Include mit den Makros überhaupt?
Verwendest du diese in deinem Coding?
Wenn ja, solltest du dein Coding nicht per Include einbinden, sondern wie von Tron vorgeschlagen in einer eigenen Methode/Form/FuBa. Dort könntest du die Markos/Variablen dann lokal deklarieren und verwenden und nicht wie in der Include-Lösung eine weitere globale Definition verwenden, die natürlich nicht funktioniert.
Ja, die Makros werden benötigt. Wenn ich aber eine Methode/Fuba/Form verwende müsste ich alle benötigten Daten auch dahin übergeben.
Alternativ kann ich ja auch die Makros, die Probleme machen, unter anderem Namen definieren und im Source dann so verwenden.
Schaun mer mal (wie die ehemalige Lichtgestalt zu sagen pflegte...).

Ich danke euch auf jeen Fall für eure Mühe und eure Tipps!

Gruß
K.

Re: Implizite Erweiterung. Include. Anweisung ist n. erreich

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
kbit100 hat geschrieben:...
Ja, die Makros werden benötigt. Wenn ich aber eine Methode/Fuba/Form verwende müsste ich alle benötigten Daten auch dahin übergeben.
...
Nicht notwendigerweise - alle globalen Variablen kannst du dir auch über einen dirty assign holen, so dass höchstens lokale Variablen übergeben werden müssten. Und da du dich ja am Anfang einer Routine tummelst sollte das entfallen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

3
Antw.
4070
Views
Anweisung ist nicht erreichbar
von Dyrdek » 07.05.2015 14:35 • Verfasst in ABAP® für Anfänger
2
Antw.
14867
Views
Anweisung nicht erreichbar
von Kerzenlicht » 03.07.2007 15:54 • Verfasst in ABAP® Core
4
Antw.
3888
Views
Anweisung nicht erreichbar
von LittleT » 11.09.2006 10:16 • Verfasst in ABAP Objects®
4
Antw.
462
Views
Implizite Erweiterung - Datendeklaration im Rahmenprogramm
von Pfalz-Zauber » 13.04.2023 15:26 • Verfasst in ABAP® für Anfänger
1
Antw.
1717
Views
Infotyp erweiterung; costumer include schwerwiegender Fehler
von roithi » 29.05.2008 20:02 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Regex in where
vor 8 Stunden von tar 8 / 226
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1521
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 171
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 404

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

Regex in where
vor 8 Stunden von tar 8 / 226
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1521
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 171
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 404

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 117
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3291
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9847