Skip to Content

SAPUI5: Vererbung mit der JavaScript Klasse sap/suite/ui/commons/ProcessFlowNode

Sehr geehrtes SAPUI5 Team,

Ich habe folgendes Problem in meinem aktuellen Projekt.

Wir haben mit einer älteren SAPUI5 Bibliothek gearbeitet

(https://sapui5.hana.ondemand.com/1.46.12/resources/sap-ui-core.js) und die Bibliothek auf

https://sapui5.hana.ondemand.com/1.58.4/resources/sap-ui-core.js

umgestellt.

Dokumentation: https://sapui5.hana.ondemand.com/1.58.4/#/api/sap.suite.ui.commons.ProcessFlowNode

Dabei sind wohl in den SAP Bibliotheken Änderungen durchgeführt, die keine Vererbung mehr von der JavaScript Klasse ProcessFlowNode mehr erlauben.

var CustomProcessFlowNode = ProcessFlowNode.extend(… kann zwar durchgeführt werden und auch eine Instanz davon erzeugt werden, jedoch wird kein Rendern der abgeleiteten Klasse ausfolgendem Grund mehr durchgeführt!

Analyse des Sourcecodes: Fürs rendern wird die Klasse ProcessFlow verwendet. (Diese ruft dann die „Renderer“ der einzelnen Knoten (ProcessFlowNodes) auf.)

ProcessFlow unterscheidet sich in den Versionen =>

Version: 1.58.4

Klasse: sap/suite/ui/commons/ProcessFlow

Methode: b.NodeElement._createNodeElementsFromProcessFlowNodes = function(p, c)

Zeile1176 und Zeile1194 : if (n && n.getMetadata().getName() === "sap.suite.ui.commons.ProcessFlowNode") {

Erlauben nur noch direkt ProcessFlowNode Instanzen für die Verabreitung zum Rendern, da durch getMetadata().getName() direkt der Klassename abgefragt wird und nicht mehr abgeleitete Klassen verarbeitet werden.

In Version: 1.46.12 sah das noch anders aus.

Klasse: sap/suite/ui/commons/ProcessFlow

Methode: sap.suite.ui.commons.ProcessFlow.NodeElement._createNodeElementsFromProcessFlowNodes

Zeile 1177 und Zeile 1195: if (n instanceof sap.suite.ui.commons.ProcessFlowNode) {

  • die alte Bibliothek erlaubt mit instanceof eine Vererbung von ProcessFlowNode, die neuere Bibliothek macht das leider nicht.

Allgemeines Beispiel zu ProzessFlow ohne vererbte Nodes:

https://sapui5.hana.ondemand.com/1.58.4/#/entity/sap.suite.ui.commons.ProcessFlow

Wie wäre jetzt mit diesem Zustand eine Vererbung von ProcessFlowNode und damit eine kundenspezifische Erweiterung möglich?

Ist durch die Umprogrammierung in der Bibliothek gewünscht, dass keine Vererbung mehr möglich ist?

Vermutlich würde das zurückändern an mehreren Stellen im Code in „n instanceof sap.suite.ui.commons.ProcessFlowNode“ die Vererbung wieder erlauben. Vermutlich gibt es aber einen bestimmten Grund, weshalb das so geändert wurde?

Ein zeitnahes Feedback wäre sehr erwünscht.

Mit freundlichen Grüßen

Mathias Bischoff

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

0 Answers