EDIT: Tree Problem, bekomme DUMP

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

EDIT: Tree Problem, bekomme DUMP

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
EDIT

Der 4te Post enthält die Fehlerbeschreibung

Gruß
Markus
Zuletzt geändert von MarkusW am 19.04.2007 15:10, insgesamt 2-mal geändert.

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


Beitrag von Asaph (Expert / 580 / 6 / 1 ) »
Hallo,

schau dir mal die demos in SAP an:

se38-Umfeld-reuse library-tree control
a s
s oon
a s
p ossible
h elp
http://www.clv.de/

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Asaph hat geschrieben:Hallo,

schau dir mal die demos in SAP an:

se38-Umfeld-reuse library-tree control
Die kenn ich und habs auch scho am fummeln nebenbei, da ich net soviel Zeit hab. Dachte halt nur das jemand schon was fertig hat und auch kein problem hat das coding weiterzugeben.

Is ja kein muss, aber wenns jemand hat dann bitte melden ;)

Gruß
Markus

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hab mal auf die schnelle so nen teil hingepfrimmelt.

Jetzt kommt so ein :evil: -Fehler, wenn ich über >=60 childs unter root haben will. Woran liegt das?
Unter dem Dump ist Quellcode von mir

Hier der Anfang des DUMPs:

Die laufende Anwendung hat bewußt einen Abbruch mit Kurzdump ausgelöst.


Was ist passiert?


In dem laufenden Anwendungsprogramm wurde eine Situation erkannt, die
eigentlich nicht vorkommen sollte. Deshalb wurde bewußt durch das
Sprachelement MESSAGE (Typ X) ein Abbruch mit Kurzdump ausgelöst.


Was können Sie tun?


Notieren Sie bitte, welche Aktionen und Eingaben zu dem Fehler geführt
haben.

Wenden Sie sich bitte zur weiteren Bearbeitung des Problems an Ihren
SAP-Administrator.

Mit der Transaktion ST22 zur ABAP-Dumpanalyse können Sie
Abbruchmeldungen anschauen und verwalten, insbesondere längere Zeit
aufbewahren.
verwalten, insbesondere längere Zeit aufbewahren.


Fehleranalyse


Kurztext der Fehlermeldung:
ControlFrameWork : Fehler bei der Ansteuerung eines Controls!

Langtext der Fehlermeldung:
Diagnose
Bei der Abarbeitung der Befehle aus der Automation-Queue am
Frontend ist ein Fehler aufgetreten.
Als Ursachen kommen in Frage:
- fehlerhafte oder veraltete Installation des SAPGUI Frontends
- Fehler im Anwendungsprogramm
- Fehler im SAPGUI bzw. eines integrierten Controls
Vorgehen
1.Stellen Sie sicher, dass das Ihrem Release entsprechende Support
Package, der aktuelle Kernel- sowie GUI-Patch eingespielt sind.
2.Überprüfen Sie ob der Fehler lokal auf einzelnen PCs oder
generell auftritt. Beachten Sie dabei ob der Fehler z.B. wegen
Customizing nur bei einzelnen Usern auftritt.
Tritt er nur lokal auf, so weist dies auf ein
Installationsproblem des PCs hin. Überprüfen Sie die Installation
bzw. führen Sie eine Neuinstallation durch. Suchen Sie in dem
Dump nach dem Feld SY-MSGLI, eventuell enthält es einen Hinweis


in gf_database steht der name der DB-Tabelle.

Wenn ich bei dem SELECT an der stelle 'AND position ...' ne Zahl kleiner 60 schreibe, funktioniert alles. Wenn ich den Punkt weglasse bekomm ich auch den Dump, da die Tabelle mehr als 60 Felder hat.

Code: Alles auswählen.


  SELECT fieldname FROM dd03l INTO ls_fields-fieldname
      WHERE tabname  = gf_database
        AND as4local = 'A'
        AND as4vers  = 0
        AND position < 60
        AND datatype <> 'CLNT'.
    APPEND ls_fields TO lt_fields.
  ENDSELECT.



* Node with key 'Root'
  node-node_key = 'Root'.                                   "#EC NOTEXT
  " Key of the node
  CLEAR node-relatkey.      " Special case: A root node has no parent
  CLEAR node-relatship.     " node.

  node-hidden = ' '.        " The node is visible,
  node-disabled = ' '.      " selectable,
  node-isfolder = 'X'.      " a folder.
  CLEAR node-n_image.       " Folder-/ Leaf-Symbol in state "closed":
  " use default.
  CLEAR node-exp_image.     " Folder-/ Leaf-Symbol in state "open":
  " use default
  CLEAR node-expander.      " see below.
  node-text = gf_database.
  APPEND node TO node_table.

  LOOP AT lt_fields INTO ls_fields.

    CLEAR node.
* Node with key Feldname
    node-node_key = ls_fields-fieldname.                    "#EC NOTEXT
    " Key of the node
    " Node is inserted as child of the node with key 'Root'.
    node-relatkey = 'Root'.
    node-relatship = cl_gui_simple_tree=>relat_last_child.
    node-hidden = ' '.
    node-disabled = ' '.
    node-isfolder = ' '.
    CLEAR node-n_image.
    CLEAR node-exp_image.
    node-expander = ' '.
    node-text = ls_fields-fieldname.
    APPEND node TO node_table.

  ENDLOOP.


  CALL METHOD g_tree->add_nodes
    EXPORTING
      table_structure_name           = 'MTREESNODE'
      node_table                     = node_table
    EXCEPTIONS
      failed                         = 1
      error_in_node_table            = 2
      dp_error                       = 3
      table_structure_name_not_found = 4
      OTHERS                         = 5.
  IF sy-subrc <> 0.
    MESSAGE a000.
  ENDIF.


Bin für jeden Tip dankbar...heute nervts echt gewaltig :x

Gruß
Markus

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Gibt es ein maximum an 'Children' welche unter einem Knoten liegen dürfen?

Gruß
Markus

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hab jetzt das Programm etwas umgeschrieben. Unter dem Coding stehen die Erkenntnisse die ich bisher bekommen habe.

Code: Alles auswählen.

FORM build_node_and_item_table.
 
  DATA:
        ls_fields          TYPE                   rsdsfields,
        lt_fields          TYPE STANDARD TABLE OF rsdsfields,
 
        lf_nodekeytxt(12)  TYPE c,
 
        lf_zaehler         TYPE int4,
        lf_zahltxt(3)      TYPE c,
        lf_fullzaehl       TYPE int4,
        lf_feldname(20)    TYPE c.
 
 
 
 
  ls_fields-tablename = gf_database.
 
  SELECT fieldname FROM dd03l INTO ls_fields-fieldname
      WHERE tabname  = gf_database
        AND as4local = 'A'
        AND as4vers  = 0
        AND position < 3
        AND datatype <> 'CLNT'.
    APPEND ls_fields TO lt_fields.
  ENDSELECT.
 
 
  nodekey = 1.
 
 
 
*-- Node with key 'Root'
  CLEAR node.
  node-node_key  = 'Root'.
  node-hidden    = ' '.
  node-disabled  = ' '.
  node-isfolder  = 'X'.
  APPEND node TO node_table.
 
*-- Item to key 'Root'
  CLEAR item.
  item-node_key  = 'Root'.
  item-item_name = '1'.
  item-class     = cl_gui_list_tree=>item_class_text.
  item-alignment = cl_gui_list_tree=>align_auto.
  item-font      = cl_gui_list_tree=>item_font_prop.
  item-text      = gf_database.
  APPEND item TO item_table.
 
 
  CLEAR lf_zaehler.
  CLEAR lf_fullzaehl.
 
 
  LOOP AT lt_fields INTO ls_fields.
 
    lf_feldname = ls_fields-fieldname.
 
    IF lf_zaehler EQ 10 OR lf_zaehler EQ 0.
*-- Verzeichnis "von XX" erstellen
      lf_fullzaehl = lf_fullzaehl + lf_zaehler.
      lf_zahltxt = lf_fullzaehl.
      CONCATENATE 'von' lf_zahltxt
       INTO lf_nodekeytxt
  SEPARATED BY space.
 
      CLEAR node.
      ADD 1 TO nodekey.
      node-node_key   = lf_nodekeytxt.
      nodekeyx        = nodekey.
      node-relatkey   = 'Root'.
      node-relatship  = cl_gui_list_tree=>relat_last_child.
      node-dragdropid = handle_drop.
      node-hidden     = ' '.
      node-disabled   = ' '.
      node-isfolder   = 'X'.
      APPEND node TO node_table.
 
*-- Item zum Verzeichnis
      CLEAR item.
      item-node_key  = node-node_key.
      item-item_name = nodekeyx.
      item-class     = cl_gui_list_tree=>item_class_text.
      item-alignment = cl_gui_list_tree=>align_auto.
      item-font      = cl_gui_list_tree=>item_font_prop.
      item-text      = lf_nodekeytxt.
      APPEND item TO item_table.
 
      CLEAR lf_zaehler.
    ENDIF.
 
 
*-- Nun die Felder anhängen und dem jeweiligen Verzeichnis zuordnen
    CLEAR node.
*    ADD 1 TO nodekey.
    node-node_key   = lf_feldname.
    node-relatkey   = lf_nodekeytxt.
    node-relatship  = cl_gui_list_tree=>relat_last_child.
    node-dragdropid = handle_drag.
    node-hidden     = ' '.
    node-disabled   = ' '.
    node-isfolder   = ' '.
    APPEND node TO node_table.
 
*-- Item "Land"
    CLEAR item.
    item-node_key  = node-node_key.
    item-item_name = '1'.
    item-style     = cl_gui_list_tree=>style_intensified.
    item-class     = cl_gui_list_tree=>item_class_text.
    item-alignment = cl_gui_list_tree=>align_auto.
    item-font      = cl_gui_list_tree=>item_font_fixed.
    item-text      = lf_feldname.
    APPEND item TO item_table.
 
    lf_zaehler = lf_zaehler + 1.
 
  ENDLOOP.
 
ENDFORM.                    "build_node_and_item_table

Code: Alles auswählen.

 
  PERFORM build_node_and_item_table.


 CALL METHOD g_tree->add_nodes_and_items
    EXPORTING
      node_table                     = node_table
      item_table                     = item_table
      item_table_structure_name      = 'MTREEITM'
    EXCEPTIONS
      failed                         = 1
      cntl_system_error              = 3
      error_in_tables                = 4
      dp_error                       = 5
      table_structure_name_not_found = 6.
  IF sy-subrc <> 0.
    MESSAGE a000.
  ELSE.
*-- Knoten "Root" aufklappen
    CALL METHOD g_tree->expand_node
      EXPORTING
        node_key = 'Root'.
  ENDIF.
Das läuft alles ohne Probleme durch, aber nun wird ja vom System aus ein 'FLUSH' ausgeführt, und bei dem bekommt er den Dump.
Ist übrigens immer noch abhängig von der Anzahl der Felder die ich im Tree ausgeben will.

Jetzt ist ja alles ein bisserl ...klarer gestellt... kann mir vllt jetzt einer nen Tip geben? Danke ;)

Gruß
Markus

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Die Node_Keys der einzelnen Childs waren das Problem. Der kommt damit nicht klar, wenn man den Namen als Notekey verwendet...zumindest nicht bei so großer Anzahl.
Mit Numerischen Werten geht das nun bis ins gottweißwohin :roll:

Gruß
Markus

Seite 1 von 1

Vergleichbare Themen

8
Antw.
3517
Views
HTMLB Tree Problem
von Karina » 18.01.2006 10:43 • Verfasst in Web-Dynpro, BSP + BHTML
3
Antw.
2580
Views
Problem bei der Tree-Darstellu ng einer Hierarchie
von khb » 12.10.2018 13:20 • Verfasst in ABAP® für Anfänger
3
Antw.
4124
Views
Wie bekomme ich den Tagesarbeitszeitplan
von danielA. » 25.04.2006 09:03 • Verfasst in Human Resources
1
Antw.
1112
Views
Wie bekomme ich den Tagesarbeitszeitplan
von danielA. » 25.04.2006 09:04 • Verfasst in ABAP® Core
3
Antw.
4207
Views
Doku über ALV Tree / SAP Tree
von SkyHobbit » 14.06.2005 11:56 • 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.