methode ist unbekannt, protected oder private

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

methode ist unbekannt, protected oder private

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo,

ich hab eine lokale klasse und da hab ich die methode show_message.

wenn ich die methode aufrufe dannn kommt die Fehlermeldung, dass sie nicht bekannt sei.
ich verstehe das nicht!
Meines Wissens habe ich die Schritte beachtet. Oder ich hab ein Verständnisproblem was lokale Klassen betrifft.
Hier die Schritte die ich gemacht habe:

Im Topinclude:

Code: Alles auswählen.

CLASS: lcl_message DEFINITION DEFERRED.
DATA: go_mes        TYPE REF TO lcl_message.

Code: Alles auswählen.

CLASS lcl_message DEFINITION.
  PUBLIC SECTION.
    METHODS show_message.
ENDCLASS.               "LCL_MESSAGE

Code: Alles auswählen.

CLASS lcl_message IMPLEMENTATION.
  METHOD show_message.
    CREATE OBJECT go_mes.
    IF gv_ebeln IS NOT INITIAL.
      SHIFT gv_ebeln BY 1 PLACES LEFT.
      MESSAGE i017(06) WITH text-006 gv_ebeln.
    ENDIF.
    IF gv_nast IS NOT INITIAL.
      SHIFT gv_nast BY 1 PLACES LEFT.
      MESSAGE i900(06) WITH gv_nast.
    ENDIF.
  ENDMETHOD.                    "show_message
ENDCLASS.               "LCL_MESSAGE
Und in einem anderen Include will ich die Methode aufrufen:

Code: Alles auswählen.

CALL METHOD go_mes->show_message.
Und hier kommt dann die Fehlermeldung dass show_message unbekannt ist.
Aber ich habe sie als öffentliche Methode definiert, da muss sie doch jedem bekannt sein oder?

Viele Grüße
coco

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


Re: methode ist unbekannt, protected oder private

Beitrag von ewx (Top Expert / 4889 / 321 / 644 ) »
Also ich bekomme einen Kurzdump... OBJECTS_OBJREF_NOT_ASSIGNED

Die Instanzerzeugung muss ausserhalb deiner Klasse erfolgen (CREATE OBJECT go_mes).
Es sei denn, du baust eine Factory-Methode.

Ansonsten ist bei deinem Coding was anderes verkehrt.
Folgendes funktioniert bei mir einwandfrei:

Code: Alles auswählen.

CLASS: lcl_message DEFINITION DEFERRED.
DATA: go_mes        TYPE REF TO lcl_message.


CLASS lcl_message DEFINITION.
  PUBLIC SECTION.
    METHODS show_message.
ENDCLASS.               "LCL_MESSAGE
CLASS lcl_message IMPLEMENTATION.
  METHOD show_message.
    MESSAGE i000(oo) WITH 'HALLO'.
  ENDMETHOD.                    "show_message
ENDCLASS.               "LCL_MESSAGE


START-OF-SELECTION.
*create object go_mes.
  CREATE OBJECT go_mes.
  CALL METHOD go_mes->show_message.

Re: methode ist unbekannt, protected oder private

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo EWX,
ewx hat geschrieben:Die Instanzerzeugung muss ausserhalb deiner Klasse erfolgen (CREATE OBJECT go_mes).
daran lags. Ich hab die Instanzerzeugung in der Klassenimplementierung gemacht :(

Vielen Dank für den Hinweis!

Viele Grüße
coco

Seite 1 von 1

Vergleichbare Themen

5
Antw.
4747
Views
1
Antw.
4196
Views
Private Methode aufrufen
von an4kh4 » 05.02.2007 15:58 • Verfasst in ABAP Objects®
1
Antw.
1804
Views
F1 Hilfe ALV --> Methode ist private
von c oco » 03.12.2012 14:19 • Verfasst in ABAP® für Anfänger
3
Antw.
3733
Views
private section und Protected section
von Gast » 05.12.2005 08:44 • Verfasst in ABAP Objects®
3
Antw.
2488
Views
Protected Attribut füttern
von JohnLocklay » 12.10.2018 14:06 • Verfasst in ABAP Objects®

Ü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.