Code: Alles auswählen.
CALL METHOD ref_work->get_outtab_line
EXPORTING
i_node_key = <ls_soko_node>-node_start
IMPORTING
e_outtab_line = ls_line
EXCEPTIONS
NODE_NOT_FOUND = 1
OTHERS = 2 .
IF sy-subrc NE 0.
* hier was machen
ENDIF.
Code: Alles auswählen.
*start deines codings
CALL METHOD ref_work->get_outtab_line
EXPORTING
i_node_key = <ls_soko_node>-node_start
IMPORTING
e_outtab_line = ls_line "hier Punkt weg
*ende deines Codings / start dessen was du anhängen musst
EXCEPTIONS
NODE_NOT_FOUND = 1
OTHERS = 2 .
IF sy-subrc NE 0.
* hier was machen
ENDIF.
Genau das wollte ich auch antworten, das ist wohl die Ursache. Und wenn schon zwei der Meinung sind, kann das so falsch nicht sein.uh hat geschrieben:so wie es DG geschrieben hat, stimmt das. Möglich wäre aber noch, dass deine Methode weitere Methoden/Funktionen aufruft, die die gleiche Ausnahme erzeugen. Wenn dann der Aufrufer diese Ausnahme nicht behandelt, bricht das Programm an der Stelle ab. D.h. die Ausnahme muss vom direkten Aufrufer behnadelt werden.
Wenn du den Dump aus der ST22 postest, könnten wir evtl. erkennen, ob das der Grund ist
In dem Fall, müsstest dann mal das OSS danach durchforstenuh hat geschrieben:Hallo dawns,
so wie es DG geschrieben hat, stimmt das. Möglich wäre aber noch, dass deine Methode weitere Methoden/Funktionen aufruft, die die gleiche Ausnahme erzeugen. Wenn dann der Aufrufer diese Ausnahme nicht behandelt, bricht das Programm an der Stelle ab. D.h. die Ausnahme muss vom direkten Aufrufer behnadelt werden.
Wenn du den Dump aus der ST22 postest, könnten wir evtl. erkennen, ob das der Grund ist.
Grüße
Udo
Code: Alles auswählen.
* read parent-node (with new cons.no)
CALL METHOD ref_work->get_outtab_line
EXPORTING
i_node_key = <ls_soko_node>-node_start
IMPORTING
e_outtab_line = ls_line
EXCEPTIONS
node_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0. "node was deleted
* create folder
CONCATENATE text-007 <ls_soko_node>-node_name INTO
lv_node_text SEPARATED BY space.
<ls_soko_node>-soko-/lot/refnr = <ls_soko_node>-node_name.
ls_node_layout-dragdropid = handle_drop.
* add node
CALL METHOD ref_work->add_node
EXPORTING
i_relat_node_key = <ls_soko_node>-node_start
i_relationship = cl_gui_column_tree=>relat_last_child
is_outtab_line = <ls_soko_node>-soko
i_node_text = lv_node_text
is_node_layout = ls_node_layout
IMPORTING
e_new_node_key = ls_selected_node
EXCEPTIONS
relat_node_not_found = 1
node_not_found = 2
OTHERS = 3.
IF sy-subrc IS NOT INITIAL.
BREAK-POINT.
ENDIF.
Code: Alles auswählen.
000020 METHOD add_model_node .
000030
000040 DATA: ls_nodes_wa TYPE treev_node,
000050 ls_c_p_manager_wa TYPE c_p_manager_line,
000060 l_column_tree_node_key TYPE tv_nodekey,
000070 ls_item_layout_wa TYPE lvc_s_lyin,
000080 l_new_node_key TYPE lvc_nkey.
000090
000100 FIELD-SYMBOLS: <tab1> TYPE STANDARD TABLE.
000110
000120 ASSIGN mt_outtab->* TO <tab1>.
000130
000140 * get new node key
000150 l_new_node_key = m_node_key_count.
000160 m_node_key_count = m_node_key_count + 1.
000170
000180 * check if parent node must be set as folder
000190 IF NOT i_relat_node_key IS INITIAL.
000200 IF i_relationship = cl_gui_column_tree=>relat_first_child OR
000210 i_relationship = cl_gui_column_tree=>relat_last_child.
000220 READ TABLE mt_c_p_manager INTO ls_c_p_manager_wa
000230 WITH TABLE KEY node_key = i_relat_node_key.
000240 IF sy-subrc <> 0.
> RAISE relat_node_not_found.
000260 ENDIF.
000270 IF ls_c_p_manager_wa-layout-isfolder IS INITIAL OR
000280 ls_c_p_manager_wa-layout-expander IS INITIAL.
000290 ls_c_p_manager_wa-layout-isfolder = 'X'.
000300 ls_c_p_manager_wa-layout-expander = 'X'.
000310 MODIFY TABLE mt_c_p_manager FROM ls_c_p_manager_wa
000320 TRANSPORTING layout-isfolder
000330 layout-expander.
000340 CALL METHOD me->queue_append_node
000350 EXPORTING i_node_key = i_relat_node_key
000360 i_mode = 'U'.
000370 ENDIF.
000380 ENDIF.
000390 ENDIF.