An exception (CX_WD_CONTEXT) occurredMessage no. TPDA430
Code: Alles auswählen.
lv_unique_id = 'CHILD'.
lr_node_info TYPE REF TO if_wd_context_node_info,
lr_attribute_info TYPE wdr_context_attribute_info,
lr_parent_node_info TYPE REF TO if_wd_context_node_info,
lr_item_node_info TYPE REF TO if_wd_context_node_info.
DATA: lv_unique_id TYPE string,
lv_string TYPE string,
lv_bind_name TYPE string,
attribute_name TYPE string,
content type string.
lr_node_info = wd_context->get_node_info( ).
lr_parent_node_info = wd_context->get_node_info( ).
<...>
CONCATENATE lv_unique_id sy-TIMLO INTO lv_unique_id.
lr_node_info = wd_context->get_node_info( ).
CALL METHOD lr_node_info->add_new_child_node
EXPORTING
name = lv_unique_id
is_mandatory = abap_false
is_multiple = abap_true
is_multiple_selection = abap_true
is_singleton = abap_false
is_initialize_lead_selection = abap_true
is_static = abap_false
RECEIVING child_node_info = lr_node_info.
lr_attribute_info-name = attribute_name.
lr_attribute_info-type_name = 'STRING'.
lr_attribute_info-value_help_mode = '0'.
==> lr_node_info->add_attribute( EXPORTING attribute_info = lr_attribute_info ).
lr_node = wd_context->get_child_node( name = 'CHILD' ).
lr_element = lr_node->create_element( ).
lr_element->set_attribute( name = attribute_name value = content ).
lr_node->bind_element( new_item = lr_element set_initial_elements = abap_false ).
lv_bind_name = lv_unique_id.
Code: Alles auswählen.
data:
lx_root type ref to cx_root,
ld_error type string..
try.
lr_node_info->add_attribute( EXPORTING attribute_info = lr_attribute_info ).
catch cx_root into lx_root.
ld_error = lx_root->get_text( ).
endtry.
Mein aktueller Quelltext sieht so aus:Hinweis
Folgender Fehlertext wurde im System DEV prozessiert: Attribut SYSCMHDSC0000100001 konnte nicht gefunden werden.
Der Fehler trat auf dem Applikationsserver cti-2k3-dev_DEV_00 und im Workprozess 0 auf.
Die Abbruchart war: RABAX_STATE
Die ABAP-Aufrufhierarchie war:
Method: IF_WD_CONTEXT_NODE_INFO~GET_ATTRIBUTE of program CL_WDR_CONTEXT_NODE_INFO======CP
Method: GET_ATTRIBUTE_INFO of program CL_WDR_VIEW_ELEMENT_ADAPTER===CP
Method: IF_NW7_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/C0STANDARD==============CP
Method: IF_NW7_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/C8STANDARD==============CP
Method: IF_NW7_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/C8STANDARD==============CP
Method: IF_NW7_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/C8STANDARD==============CP
Method: IF_NW7_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/C7STANDARD==============CP
Method: IF_NW7_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/C8STANDARD==============CP
Method: IF_NW7_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/C8STANDARD==============CP
Method: IF_NW7_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/C8STANDARD==============CP
Code: Alles auswählen.
lv_unique_id = 'SYS'.
CONCATENATE lv_unique_id wd_this->gv_tap_app ls_lay-LAYID wd_this->gv_tap_typ ls_con-conid ls_conp-PARAM INTO lv_unique_id.
lr_node_info = wd_context->get_node_info( ).
CALL METHOD lr_node_info->add_new_child_node
EXPORTING
name = lv_unique_id
is_mandatory = abap_false
is_multiple = abap_true
is_multiple_selection = abap_true
is_singleton = abap_false
is_initialize_lead_selection = abap_true
is_static = abap_false
RECEIVING child_node_info = lr_node_info.
attribute_name = lv_unique_id.
lr_attribute_info-name = attribute_name.
lr_attribute_info-type_name = 'STRING'.
lr_attribute_info-value_help_mode = '0'.
lr_node_info->add_attribute( EXPORTING attribute_info = lr_attribute_info ).
lr_node = wd_context->get_child_node( name = 'CHILD' ).
lr_input = cl_wd_input_field=>new_input_field( bind_value = lv_unique_id ).
lv_field_id = lr_input->get_id( ).
lr_matrix_layout_data = cl_wd_matrix_data=>new_matrix_data( element = lr_input ).
lr_label = cl_wd_label=>new_label( label_for = lv_field_id text = lv_descr ).
lr_matrix_layout_data = cl_wd_matrix_data=>new_matrix_data( element = lr_label ).
lr_group->add_child( lr_label ).
lr_input->set_tooltip( lv_tooltip ).
lr_group->add_child( lr_input ).
lr_header_tray->add_child( lr_group ).
Und, hast Du mal kurz nachdem der Fehler auftrat in die Workprozess-Tracedatei von Workprozess 0 geschaut, ob da etwas Hilfreiches drin stand?Tobias85 hat geschrieben:Nun zeigt er mir folgenden Fehler im Broswer(!) an, obwohl alle Methoden jeweils als TRY ausgeführt werden:Hinweis
Folgender Fehlertext wurde im System DEV prozessiert: Attribut SYSCMHDSC0000100001 konnte nicht gefunden werden.
Der Fehler trat auf dem Applikationsserver cti-2k3-dev_DEV_00 und im Workprozess 0 auf.
Die Abbruchart war: RABAX_STATE
Bist Du sicher, dass die von Dir so erzeugte unique Id wirklich unique ist? (Keine Ahnung, ob das an der Stelle wichtig ist)Mein aktueller Quelltext sieht so aus:Code: Alles auswählen.
lv_unique_id = 'SYS'. CONCATENATE lv_unique_id wd_this->gv_tap_app ls_lay-LAYID wd_this->gv_tap_typ ls_con-conid ls_conp-PARAM INTO lv_unique_id.
der Kernel wäre SAP Kernel: 701_RELFrank Dittrich hat geschrieben: Und, hast Du mal kurz nachdem der Fehler auftrat in die Workprozess-Tracedatei von Workprozess 0 geschaut, ob da etwas Hilfreiches drin stand?
Wenn das fragliche Zeitfenster jetzt nicht mehr in der aktuellen Tracedatei zu finden ist, dann entweder den Fehler noch mal reproduzieren, darauf achten, in welchem Workprozess der fehler auftrat und dann aus der SM50 heraus die Tracedatei zum jeweiligen Workprozess ansehen.
(Ansonsten kann man über die ST11 auch noch die Datei dev_wp0.old ansehen. Wenn man Glück hat, ist da noch etwas drin zu finden. Aber bei Anzeige aus der SM50 heraus findet man die Fehler schneller...)
Nebenbei: wie alt ist der SAP-Kernel, der auf dem System gerade läuft (s. Transaktion SM51, Release-Info)?
Manchmal verschwinden ansonsten schwer erklärbare Fehler ja auch nach einem SAP-Kernel-Upgrade (bzw. werden durch andere schwer erklärbare Fehler ersetzt).