Das SAP Web Client UI ist ein mächtiges und flexibles Framework zur Entwicklung nutzerfreundlicher User Interfaces. Doch manchmal hat SAP SE die Lösung nicht zuende gedacht. Als Beispiel sei hier der üblicherweise ungerechtfertigt hohe Entwicklungsaufwand zur Implementierung Feldprüfungen bei Eingabe, Feldaufbereitungen bei Ausgabe und Such- bzw. Wertehilfen genannt.
Folgende Lösungen stehen zur Verfügung:
- Die genannten Logiken sind in den Kontextknoten implementiert. Wird also ein Kontextknoten benutzt, der in einer anderen UI-Komponente bereits existiert, sollte geprüft werden, ob der Kontextknotenkontroller wiederverwendet werden kann. Nachdem die Super-Klasse des eigenen Kontextknoten durch die Standard-Kontextknotenkontrollerklasse ausgetauscht wird, stehen in der Regel sämtliche vom Standard gewohnte Prüfungen und Aufbereitungen zur Verfügung.
- Bei Nutzung des Design Layers können dem Feld Dictionary-Suchhilfen zugeordnet werden. Diese werden dann automatisch gezogen.
- Für Felderweiterungen mittels Application Enhancement Toolset (AET) werden automatisch die Dictionary-Suchhilfen bzw. -Wertehilfen genutzt. Ohne Programmieraufwand.
- Im Artikel SAP CRM & SAP Solution Manager Business Transaction Search Enhancement habe ich beschrieben, wie die AET-Automatik auch für SAP-Standard-Felder oder manuell ergänzte Kundenfelder aktiviert werden kann. Dieser Weg wird jedoch von SAP SE nicht supportet.
- Wenn alle anderen Wege versagen, dann muss am Ende doch klassich die V-Getter-Methode im Kontextknotenkontroller ausprogrammiert werden. Für einfache Dropdown-Listen gibt es jedoch bereits eine Hilfsklasse cl_crm_uiu_ddlb die uns die meiste Arbeit abnimmt:
method GET_V_NAME_OF_THE_ATTRIBUTE. DATA: lr_valuehelp_pldescr TYPE REF TO cl_crm_uiu_ddlb. *Create Value Help Descriptor CREATE OBJECT lr_valuehelp_pldescr EXPORTING iv_source_type = if_bsp_wd_valuehelp_pldescr=>source_type_table. *Build up dropdown list based on data element. CALL METHOD lr_valuehelp_pldescr->set_data_element EXPORTING iv_data_element = 'NAME_OF_THE_DATA_ELEMENT' * iv_add_initial_entry = . *Return value help descriptor rv_valuehelp_descriptor ?= lr_valuehelp_pldescr. endmethod.