Check Required Fields

Jedem Web Dynpro Entwickler wird die Option state = required bei Eingabecontrols bekannt sein. Wird zum Beispiel bei einem Input Feld dieser Wert gesetzt, dann wird dieses Control zum „Pflichtfeld“ und neben dem Label wird ein rotes Sternchen angezeigt.

Aber wie prüft man nun, ob alle Pflichtfelder wie vorgegeben befüllt wurden? Man kann eine eigene Methode erstellen und jedes Feld prüfen, oder man lässt die Klasse cl_wd_dynamic_tool die ganze Arbeit erledigen.
Um der Objektorientierung gerecht zu werden, wollen wir in Anbetracht der Wiederverwendbarkeit die Dynamic Tool Klasse für unseren Check benutzen.

Am besten führt man den Check in der Web Dynpro View Methode WDDOBEFOREACTION aus. Die Feldprüfungen sollen nur dann durchlaufen werden, wenn am View eine bestimmte Action ausgelöst wurde. In meinem Fall ist das ein Klick auf den SUCHEN Button.

  DATA: obj_api_controller TYPE REF TO if_wd_view_controller,
        obj_action TYPE REF TO if_wd_action.

* Get action
  obj_api_controller ?= wd_this->wd_get_api( ).
  obj_action ?= obj_api_controller->get_current_action( ).

* Check required fields
  IF obj_action IS BOUND AND obj_action->name = 'BUT_SEARCH'.
* Call check method
    cl_wd_dynamic_tool=>check_mandatory_attr_on_view( obj_api_controller ).
  ENDIF.

  FREE: obj_api_controller, obj_action

Sollten nicht alle Required Felder befüllt sein, dann wird nach dem Aufruf dieser Methode die Verarbeitung automatisch abgebrochen und entsprechende Fehlermeldungen in der Message Area angezeigt.

Posted on 20. März 2015 in ABAP, Blog, Web Dynpro/ABAP

Back to Top