CRM WEB UI: AKTIONSMENÜ AUF FELDEBENE

Mit SAP CRM 7.0 EHP1 wurde eine neue Funktionalität eingeführt: das sogenannte Aktionsmenü auf Feldebene.

Damit ist es möglich ein Kontextmenü auf Feldebene im Web UI zu erzeugen. Ist ein Kontextmenü für ein Feld vorhanden, wird dies durch ein Icon signalisiert, welches zwischen dem Label und dem Input Field des betreffenden UI Feldes erscheint, wie in Abbildung 01 am Feld „Einstufung“ zu sehen.

Abbildung 01

Beim Linksklick auf eine der verfügbaren Aktionen aus dem Menü wird das zugeordnete ONCLIENTSELECT Event ausgelöst. Allerdings sind auch nur Texte ohne behandelndes Event im Kontextmenü möglich (z.B. ähnlich eines Tooltips). Jedem Menüeintrag kann außerdem ein eigenes Icon zugeordnet werden (siehe Abbildung 02). Ebenso sind Aktions-Menüs auch in Tabellen möglich.

Abbildung 02

Im Beispiel wurden folgende Aktionen im Menü hinterlegt:
  • Aktualisierung:
    Sucht nach Verträgen, in denen der aktuelle Geschäftspartner als Auftraggeber fungiert und aktualisiert die nicht persistenten Z-Felder „Anzahl der Verträge gesamt“, „Offene Verträge“ und „Abgeschlossene Verträge.“ (Siehe Abbildung 03)

  • Feld Dokumentation:
    Öffnet die aus dem SAP GUI bekannte F1 Hilfe zum Standardfeld „Einstufung“. (Siehe Abbildung 04)

  • Google Suche:
    Startet direkt eine Google-Suche mit dem Inhalt des Feldes „Einstufung“. (Siehe Abbildung 05)

Abbildung 03

Abbildung 04

Abbildung 04

Abbildung 05

Weitere mögliche Aktionen wären auch das direkte Versenden einer Email oder dynamische Navigation zu einer anderen UI Komponente.

Folgende drei Vorgehensweisen sind möglich um ein Aktionsmenü zu implementieren:
  • Option 1:
    Hinzufügen des Tags „thmtlb:actionsMenu“ zu einem bestimmten Feld. (Siehe Abbildung 06)

  • Option 2:
    Mit Hilfe der Methode „get_ac*“ am betreffenden Feld eines Kontextknotens. (Siehe folgendes Beispiel)

  • Option 3:
    Zuordnung über den Design Layer. (Diese Methode ist aufgrund der Wiederverwendbarkeit zu bevorzugen, denn das Menü kann so in allen Views, in denen das Attribut erscheint, zentral gesteuert werden.)

Abbildung 06

SAP liefert zwei Beispiel-Klassen aus, die im Detail die Optionen 2 (CL_BSP_WD_AC_PROVIDER_SAMPLE – sample implementation of action provider) und 3 (CL_BSP_WD_AC_PV_DL_SAMPLE – Sample implementation of action provider for Design Layer ) verdeutlichen sollen.

Für die Implementierung mit Hilfe der get_ac Methode eines Kontextknotenattributes (Option 2), sind folgende Schritte notwendig:
  • Schritt 1:
    Man benötigt eine Klasse, die von der Standardklasse CL_BSP_WD_ACTION_PROVIDER erbt. In dieser Klasse sollte zumindest die Methode BUILD_ACTIONS des Interfaces IF_BSP_WD_ACTION_DESCR_EXT implementiert werden. Hier am Beispiel der Aktion „Aktualisieren“ aus Abbildung 02:

    insert value #( id = ‚REFRESH’text = cl_wd_utilities=>get_otr_text_by_alias( ‚CRM_UIU_BT/REFRESH‘ ) onselect = ‚CONTRACT_STATISTICS icon_src = cl_thtmlb_util=>get_icon_url( ‚refresh.gif‘) ) into table et_actions.

  • Schritt 2:
    Bei Bedarf kann auch das Icon des Menüs selbst in der Methode BUILD_MENU angepasst werden. Hierzu finden sich bereits einige Beispiele im SAP Standard (ab EHP1).

  • Schritt 3:
    Dann muss am betreffenden Feld des Kontextknotens (im Bsp. ist das das Feld CLASSIFIC am Kontextknoten MARKETING in der View BP_HEAD/AccountDetails) die get_ac_* Methode implementiert werden. Hier muss eine Instanz der in 1. angelegten Klasse an den Return-Parameter übergeben werden: „rv_action_descriptor = new zcl_action_provider( )“.

Es wird noch ein Event Handler an der View BP_HEAD/AccountDetails benötigt, der laut Code in 1. auf die Aktion des Nutzers reagieren soll (siehe Abbildung 07).

Abbildung 07

Für Option 3 (Zuordnung über den Design Layer) wird ebenfalls eine Action Provider Klasse benötigt, wie in Schritt 1 von Option 2 beschrieben.

Die Zuordnung dieser Klasse zum entsprechenden Feld erfolgt dann allerdings nicht über die Implementierung der get_ac* Methode am Kontextknoten direkt, sondern wird im Design Layer vorgenommen:

  • Anlegen einer Aktions-Provider ID: Customer Relationship Management – UI-Framework – Definition des UI-Frameworks – Design Layer – Aktions-Provider definieren (Abbildung 08).

  • Zuordnung des Aktions-Providers zu einem BOL-Attribut: Customer Relationship Management – UI-Framework – Definition des UI-Frameworks – Design Layer – SAP-Designobjekte kopieren (Abbildung 09).

  • Der Event Handler wird in diesem Fall allerdings nicht, wie bei Option 2, an der View hinterlegt, sondern wird direkt in der Action Provider Klasse, in der Methode IF_BSP_WD_ACTION_CALLBACK_EXT~HANDLE_EVENT implementiert.

Abbildung 08

Abbildung 09

Zurück zum Blog
Martin Deutsch Allgeier ES

Haben Sie Fragen?

Unser Delivery Manager, Martin Deutsch, hilft Ihnen gerne weiter.

Jetzt Kontakt aufnehmen