Wenn in WebDynpro Java in einer Tabelle für jede Zeile eine spezielle Funktion ausgeführt werden soll, dann funktioniert das in der Regel einfach über ein LinkToAction-Control und die Auswertung der LeadSelection. Wenn die LeadSelection allerdings anderweitig verwendet wird, dann braucht es einen kleinen Trick.

Unser E-Book zum Thema SAP Entwicklung

E-Book: SAP Entwicklung

Wir erklären Ihnen im E-Book die 3 wichtigsten Frameworks und zeigen Ihnen weitere Erfolgsbooster, die wir selbst einsetzen.

Ausgangspunkt ist eine Tabelle mit zwei Spalten, einer informativen und einer ausführenden, die hat das UI Element LinkToAction. Die ausführende soll aber nicht mit LeadSelection funktionieren, da die LeadSelection für eine andere Funktion benötigt wird. Wie also kann man dem UI Element mitteilen, welches Element es zu nutzen (in diesem Fall: zu löschen) hat?

Tabelle mit UI Element LinkToAction

Tabelle mit informativer und ausführender Spalte, welche das UI Element LinkToAction hat.

Voraussetzungen: Tabelle mit den zwei Spalten, einmal Informationen und die zweite mit dem UI Element “LinkToAction”

1. Anlegen einer Methode mit Parameter für das UI Element “LinkToAction” mit Parameter des Types IWDNodeElement.

Methode mit Parameter für das UI Element "LinkToAction"

Methode mit Parameter für das UI Element “LinkToAction”

Ablauf: LinkToAction ohne LeadSelection

Ablauf: LinkToAction ohne LeadSelection

2. In der Methode wdDoModify() der View wird mit folgendem Code das UI Element LinkToAction instanziiert.

“LinkToAction” beschreibt die ID des UI Elements LinkToAction:

IWDLinkToAction link = (IWDLinkToAction) view.getElement(“LinkToAction”);
link.mappingOfOnAction().addSourceMapping(“nodeElement”, “selectedElement”);

3. Das Coding für den ausführenden Teil kommt in die onAction Methode:

public void onActionDeleteFavorite(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent, com.sap.tc.webdynpro.progmodel.api.IWDNodeElement selectedElement )
{
//@@begin onActionDeleteFav(ServerEvent)

IPrivateDashboardCompView.IMyFavorites_TableElement element = (IPrivateDashboardCompView.IMyFavorites_TableElement) selectedElement;

Viel Spaß beim Ausprobieren und Selberbauen. Für Anregungen und Kritik bin ich dankbar. Falls Sie Fragen haben, dann scheuen Sie sich nicht, mir ebenfalls einen Kommentar zu hinterlassen.