Pattern Matched Event

You are here:
← All Topics

SAP bietet mit Fiori ein geniales Erweiterungskonzept. Dieses setzt jedoch voraus, dass der Entwickler bestimmte Vorgaben einhält. So ist es beispielsweise empfehlenswert keine Logik in die onInit Lifecycle-Methode zu legen. Stattdessen sollte man sich auf den PatternMatched-Event registrieren und im zugehörigen Event-Handler die Initialisierung durchführen. Folgendes Code Snippet zeigt die Umsetzung:

onInit: function () {
	//Register the event handler for the Pattern Matched Event
	this.getRouter().getRoute("Main").attachPatternMatched(this.onPatternMatched, this);
},

onPatternMatched: function (oEventArgs) {
	//Here goes the Source Code doing all the initialization work
},

Es können mehrere Routen auf die gleiche View verweisen und so könnte man auch für jede Route einen eigenen PatternMatched-Event-Handler registrieren.

Ein Beispiel dafür wäre, dass auf Detail-View einmal im Bearbeitungsmodus und einmal im Display-Only-Modus navigiert wird:

onInit: function () {
	this.getRouter().getRoute("DetailDisplay").attachPatternMatched(this.onPatternMatchedDisplay, this);
	this.getRouter().getRoute("DetailChange").attachPatternMatched(this.onPatternMatchedChange, this);
},

onPatternMatchedDisplay: function (oEventArgs) {
	this.bEdit = false;
	this.onPatternMatchedGeneral(oEventArgs);
},

onPatternMatchedChange: function (oEventArgs) {
	this.bEdit = true;
	this.onPatternMatchedGeneral(oEventArgs);
},

onPatternMatchedGeneral: function(oEvent){
	if(this.bEdit){
		...
	}else{
		...
	}
}