Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation CL_WD_DYNAMIC_TOOL  Dokument im Navigationsbaum lokalisieren

Die Klasse CL_WD_DYNAMIC_TOOL enthält verschiedene Methoden, die für die ersten Schritte in der dynamische Programmierung hilfreich sind (z.B. SE16-Nachbau), sowie Hilfsmethoden für z.B. Tables und Trees.

Zentrale Methoden

IS_STRUCTURE_OR_TABLE

Methode für den SE16-Nachbau.

GET_TABLE_DATA

Generische Methode, um Daten einer beliebigen Tabelle zu lesen, damit keine Checkman-Fehler auftreten.

CREATE_FORM_FROM_NODE

Methode für das Generieren eines Formulars aus den Attributen eines Knotens.

Sie können diese Methode als Kopiervorlage verwenden.

CREATE_LAYOUT_DATA

Methode für das Erzeugen einer Instanz eines Layout-UI-Elementes je nach Typ des Parents.

Sie können diese Methode bei der dynamischen UI-Programmierung verwenden, wenn der Layout-Typ des Parents nicht bekannt ist.

CREATE_NODEINFO_FROM_STRUCT

Methode für das Erzeugen eines Node-Info-Objekts mit einer vorgegebenen Datenstruktur. Sie können diese Methode für den SE16-Nachbau verwenden.

Hinweis

Verwenden Sie die Methoden von IF_WD_CONTEXT_NODE_INFO für das dynamische Anlegen von Knoten.

CREATE_TABLE_FROM_NODE

Diese Methode ist analog zu CREATE_FORM_FROM_NODE, nur wird hier eine Tabelle gebaut.

FILL_NODE

Diese Methode wird nicht mehr verwendet.

SET_TREE_LEAD_SELECTION

Diese Methode dient dem Setzen des aktuell ausgewählten Blatts oder Knotens in einem Baum. Falls bereits ein anderes Element ausgewählt ist, wird dieses deselektiert. Wenn kein Context-Element angegeben wird, wird das aktuell ausgewählte Blatt oder Knoten deselektiert. Diese Methode sollte bei der Benutzung eines Tree-UI-Elements einmal vor dem ersten Rendern des Tree aufgerufen werden, um den Context korrekt zu initialisieren. Andernfalls könnten in Abhängigkeit von den Einstellungen im Context mehrere Blätter/Knoten gleichzeitig ausgewählt sein.

CREATE_RANGE_TABLE

Diese Methode erzeugt aus dem angegebenen Typ dynamisch eine Range-Tabelle, welche z.B. in den Select-Options verwendet werden kann. Die Anwendung ist jedoch nicht auf die Select-Options limitiert, da eine reguläre Range-Tabelle erzeugt wird, wie sie auch über eine data mytable type range of mytype.-Anweisung erzeugt werden würde.

CHECK_MANDATORY_ATTRIBUTES

Da in die Web-Dynpro-Laufzeit standardmäßig keine Prüfungen auf Mussfelder integriert sind, können Sie mit dieser Servicemethode überprüfen, ob Mussfelder gefüllt sind oder nicht.

Von der Anwendung kann diese Methode entweder im Action-Handler selbst aufgerufen werden oder auch bevor der Action-Handler aufgerufen wird. Die Methode wird mit der Liste der zu prüfenden Attribute aufgerufen.

Importparameter

Parameter

Beschreibung

ATTRIBUTE_LIST

Liste der Attribute, siehe Tabelle T_CHECK_MANDATTR_TAB

Die Tabelle enthält die folgenden Einträge:

·         node_path
Pfad bis zum Knoten

·         element_index
-1: lead_selection, 0: all, >0: element_index

·         attribute_name
Name des Attributs

·         element_empty_ok
Attribut wird nicht geprüft, wenn alle Attribute des Elements leer sind

DISPLAY_MESSAGES

Angabe, ob die Meldungen von der Servicemethode angezeigt werden sollen (’X’) oder nicht (’ ’). Wenn der Wert auf ’ ’ steht, werden keine Nachrichten angezeigt. Dies ist jedoch nur dann sinnvoll, wenn ATTRIBUTE_LIST nur einen Eintrag enthält.

CONTEXT_ROOT

Referenz auf den Wurzelknoten des Contexts, siehe IF_WD_CONTEXT_NODE

 

Exportparameter

Parameter

Beschreibung

HAS_ERRORS

Kennzeichen, ob Fehler gefunden wurden (’X’) oder nicht (’ ’)

 

Beispiel

Sie finden ein entsprechendes Beispiel im System in der Component WDR_TEST_MANDATORY, View MAIN, Action CHECK:

method ONACTIONCHECK .
  data: l_node type ref to if_wd_context_node,
        l_check_pars type if_main=>Element_Check,
        l_attr_list type CL_WD_DYNAMIC_TOOL=>t_check_mandattr_tab,
        l_attr type CL_WD_DYNAMIC_TOOL=>t_check_mandattr_struct,
        l_has_errors type wdy_boolean.

  l_node = wd_context->get_child_node( wd_this->wdctx_Check ).
  l_node->get_static_attributes( importing static_attributes = l_check_pars ).

  if l_check_pars-check_single_node = abap_true.
    l_attr-node_path = wd_this->wdctx_Single_Node.
    l_attr-element_index = -1.
    l_attr-attribute_name = 'MANDATORY_ATTRIBUTE'.
    append l_attr to l_attr_list.
    l_attr-attribute_name = 'NUMC'.
    append l_attr to l_attr_list.
    l_attr-attribute_name = 'DEC'.
    append l_attr to l_attr_list.
    l_attr-attribute_name = 'INT'.
    append l_attr to l_attr_list.
    l_attr-attribute_name = 'DATE'.
    append l_attr to l_attr_list.
    l_attr-attribute_name = 'TIME'.
    append l_attr to l_attr_list.
  endif.
  if l_check_pars-check_multiple_node = abap_true.
    l_attr-node_path = wd_this->wdctx_Multiple_Node.
    l_attr-element_index = l_check_pars-element_index.
    l_attr-attribute_name = 'MANDATORY_ATTRIBUTE'.
    l_attr-element_empty_ok = l_check_pars-EMPTY_ELEMENT_IS_OK.
    append l_attr to l_attr_list.
  endif.

  l_has_errors = cl_wd_dynamic_tool=>check_mandatory_attributes(
      attribute_list   = l_attr_list
      display_messages = abap_true
      context_root     = wd_context
         ).

endmethod.

 

Ende des Inhaltsbereichs