Hallo Community,
ich habe ein interressantes Problem mit meinem Baum der Klasse cl_gui_simple_tree. Es ist weder ein Syntax-, noch ein Laufzeitfehler mit Kurz-Dump. Mein Modus in dem ich das Programm starte friert einfach ein, d.h. er lädt und lädt und es lässt sich nichts mehr machen, nicht einmal die Transaktion lässt sich abbrechen... ich kann den Vorgang nur noch mit dem Windows Taskmanager killen. Die Möglichkeit, dass ich in einer Endlos-Schleife lande habe ich ausgeschlossen, da der Modus sogar aus dem Debugger heraus an einer bestimmten Stelle des Programms einfriert.
Der Zeitpunkt, zu dem das Programm einfriert, ist am Ende des PBO, nachdem ich meinen Baum komplett aufgebaut habe (ich habe komplett debuged und immer sy-subrc = 0).
Zu erwähnen ist noch, dass ich den Aufbau des Baumes komplett in eine eigene KLasse gepackt habe.
Hier ein Ausschnitt meines Quellcodes:
DATA g_0120_con_tree TYPE REF TO cl_gui_custom_container .
DATA g_0120_tree TYPE REF TO cl_gui_simple_tree .
DATA gt_node_table TYPE treev_ntab .
IF g_0120_con_tree IS INITIAL.
CREATE OBJECT g_0120_con_tree
EXPORTING
container_name = g_container_name. "Der Container Name wird korrekt übergeben
ENDIF.
IF g_0120_tree IS INITIAL.
CREATE OBJECT g_0120_tree
EXPORTING
parent = g_0120_con_tree
node_selection_mode = cl_gui_simple_tree=>node_sel_mode_single
EXCEPTIONS
lifetime_error = 1
cntl_system_error = 2
create_error = 3
failed = 4
illegal_node_selection_mode = 5.
IF sy-subrc <> 0.
MESSAGE a007(/wegos/mit). "kein Abbruch, sy-subrc = 0
ENDIF.
CALL METHOD me->create_node_table. "Private Methode meiner Klasse, die die gt_node_table korrekt füllt (sie enthält keine doppelten node_keys, etc)
CALL METHOD g_0120_tree->add_nodes
EXPORTING
table_structure_name = 'MTREESNODE'
node_table = gt_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 a007(/wegos/mit). "auch hier bricht es nicht ab, sy-subrc = 0
ENDIF.
PROCESS BEFORE OUTPUT.
MODULE 0120_tree. "" hier habe ich meinen Baum aufgebaut
CALL SUBSCREEN mit_gesendet_nachr INCLUDING sy-repid '0121'.
"" hier hängt sich das Programm auf
PROCESS AFTER INPUT.
CALL SUBSCREEN mit_gesendet_nachr.
Ich hoffe ihr versteht das Dilemma. Ohne Kurzdump o.Ä. weiß ich einfach nicht was ich tun soll.
Sehr interressant ist auch noch, dass ohne NODEs das Programm durchläuft und mir einen leeren Baum erzeugt (also wenn ich den Aufruf der Methode g_0120_tree->add_nodes auskommentiere)
Vielleicht ist ja schonmal jemand auf ein ähnliches Problem gestoßen.
Vielen dank schon mal fürs Durchlesen
LG Sebastian