Adressierung

Die Adressierung wird in allen Ansichten des Benutzerschnittstellen-Toolkits unterstützt, einschließlich Ansichten, die in anderen Ansichten verschachtelt sind, die auf einer Benutzerschnittstellenseite definiert sind.

Das Adressierungsschema ist eine hierarchische Baumstruktur, deren Stammelement als / an der obersten Position auf der angezeigten Seite definiert ist. Die Struktur des Adressierungsschemas ähnelt der Struktur, die für ein Verzeichnis verwendet wird. Nachfolgende Knoten in der Baumstruktur werden hinzugefügt, wenn die Seite geladen wird.

Es sind zwei Basistypen für Knoten verfügbar: Container und Element. Containerknoten enthalten weitere Knoten, wie z. B. Elemente, Ansichten und andere Containerknoten.
Einschränkung: Die Ansichten im veralteten Coaches-Toolkit sind mit dem beschriebenen Adressierungsschema nicht adressierbar.

In der Regel verwenden Sie die Adressierung in den Ansichten der Benutzerschnittstelle, wenn Funktionen aufgerufen werden, die durch Anzeigeereignisse oder Formeln aufgerufen werden, die in einigen Ansichten verwendet werden. Funktionen können inline angegeben werden, wie z. B. in einem JavaScript-Skriptblock einer angepassten HTML auf einer Seite oder im Abschnitt 'Inline JavaScript' in den Verhalten-Eigenschaften der Ansicht.

Aufbereitungsstile

Es werden relative und absolute Adressierungsstile unterstützt. Das Starten einer Referenz mit / schließt eine absolute Referenz ein, z. B. ausgehend von der Stammverzeichnisebene der Baumstrukturansicht. Wird / am Anfang des Pfads weggelassen, bedeutet dies "from where I am". Die Verwendung von .. in einer Referenz führt dazu, dass der Verweis um eine Ebene zurückgeht, so wie sich eine Dateiverzeichnisstruktur verhalten würde.

In einer Formel werden Referenzen aus dem Referenzpunkt des Felds berechnet, dessen Formel Sie festlegen:
  • Felder auf der gleichen Ebene wie die aktuelle werden mit dem Feldnamen referenziert (ohne / am Anfang der Referenz).
  • Felder, die sich eine Ebene höher befinden, können als ../FieldOneLevelAboveMe referenziert werden.
  • Felder, die sich zwei Ebenen höher befinden, können als ../../FieldOneLevelAboveMe referenziert werden usw.
  • Die relative Adressierung mit ../ kann in einigen Fällen bequem sein.

JavaScript-Methoden für den Zugriff auf Ansichten

Mit benutzerdefiniertem HTML-Code
Um in einem JavaScript-Block auf eine Ansicht zuzugreifen, verwenden Sie die globale Ansicht 'page' und die zugehörige Methode page.ui.get(ControlId path). Beispiel: Sie verfügen über eine Textansicht mit dem Namen Text1 und möchten zu Validierungszwecken in einer Funktion darauf zugreifen, die von einem On click-Ereignis einer Schaltfläche aufgerufen wird. Verwenden Sie dazu Code, der dem folgenden Beispiel ähnelt:
var myTextField = page.ui.get("/Text1");
myTextField.getValue() // returns the value in the text field
myTextField.focus() // would set the focus to the text field.
Mit Inline-JavaScript einer Ansicht
Verwenden Sie eine der folgenden Optionen, um mit einer Funktion, die in einer Containeransicht enthalten ist, auf eine Ansicht zuzugreifen:
bpmEventHelper.ui.getView(ControlId [, thisview])
thisview.ui.get(ControlId)
Dabei ist thisview in der Containeransicht definiert.
Beispiel: Sie haben eine Containeransicht definiert, die zwei Ansichten mit den Namen Text1 und Select1 enthält. Sie möchten nun zu Validierungszwecken auf die beiden verschachtelten Ansichten aus einer validateControls-Funktion zugreifen, die von einem On click-Ereignis einer Schaltfläche in der übergeordneten Ansicht aufgerufen wird. Um auf die Ansichten zuzugreifen, setzen Sie Code ähnlich wie im folgenden Beispiel in den Inline-JavaScript-Abschnitt für die Verhalten-Eigenschaften der Containeransicht ein:
var thisview = this; // required

this.validateControls = function(button)
{
    var textControl = bpmEventHelper.ui.getView("Text1", thisview);
    var selectControl =  thisview.ui.get("Select1");
    textControl.getValue(); // returns the value of the SPARK control in 
    this coach view with the ControlId "Text1"
    selectControl.getSelectedItem(); // returns the selected value in the 
    SPARK control in this coach view with the ControlId "Select1"
}
		
Allgemeines Beispiel: Um auf die Textansicht FirstName in einer Address-Ansicht zuzugreifen, verwenden Sie die absolute Adresse wie folgt:
"/Address/FirstName" or "${Address}.ui.get('FirstName')"
In Formeln
Ansichten können in Formeln mit der folgenden Syntax referenziert werden:
  • ${FieldName} bezieht sich auf die Ansicht, deren control id = FieldName.
  • @{FieldName} bezieht sich auf den Wert der Ansicht, deren control id = FieldName.
  • ${FieldName).getValue() und @{FieldName} sind äquivalent.

Nicht adressierbare Layoutansichten

Ansichten, die nur für Layoutzwecke verwendet werden, müssen in einer Adresse ausgeschlossen werden. Sie können beispielsweise eine FirstName-Ansicht adressieren, die in der Ansicht VerticalLayout verschachtelt ist, indem Sie die /FirstName-Adresse verwenden und nicht /VerticalLayout/FirstName.
Tipp: Um eine nicht adressierbare angepasste Containeransicht aus einer Adresse auszuschließen, setzen Sie die folgende Eigenschaft in der Funktion load der angepassten Ansicht im integrierten Abschnitt JavaScript unter Verhaltenauf true :
this.constructor.prototype.IS_ADDRESS_INVISIBLE = true;

Adressierbare, angepasste Ansichten

Wenn Sie eine angepasste Ansicht erstellen, die adressierbar sein soll, rufen Sie die folgende Funktion in der load-Methode auf:
bpmEventHelper.ui.loadView(this)
Wenn Ihre angepasste Ansicht über ein Inhaltsfeld verfügt, rufen Sie stattdessen die folgende Funktion auf:
bpmEventHelper.ui.loadContainer(this)
Rufen Sie in der Funktion unload der Ansicht die entsprechende Funktion auf:
bpmEventHelper.ui.unloadView(this)
oder
bpmEventHelper.ui.unloadContainer(this)

Verweise auf Peerfelder in Tabellen

Wenn Sie Formeln in einer Tabelle verwenden, können Sie auf die Felder in der Zeile my zugreifen, indem Sie eine Syntax verwenden, die = hinter dem Feldnamen enthält. Beispiel: Sie haben die Ansichten Quantity (Integer), Cost (Decimal) und Total (Decimal) in einer Tabelle definiert. Sie können den Wert der Ansicht Total mithilfe der folgenden Formel angeben:
@{Quantity=} * @{Cost=}
Beachten Sie, dass für die Ansicht Total keine Datenbindung erforderlich ist. Dies bedeutet, dass in der Tabelle kein Gesamtdatenfeld erforderlich ist.

Helperfunktionen

Sie können die Helper-Funktionen getParent und getSibling innerhalb des Namensbereichs bpmext.ui.View als Beispiel verwenden. In diesem Beispiel ist es einfach, die Containeransicht oder Peeransicht zu erreichen, ohne die gesamte Hierarchie zu kennen.

Beispiel: Sie verfügen über eine Containeransicht mit dem Namen CV, die zwei Ansichten mit den Namen Button1 und Button2 enthält. Wenn btn1View das Objekt bpmext.ui.View für Button1ist, können Sie CV über btn1View.ui.get(“CV”) oder btn1View.ui.getParent();aufrufen. Sie können Button2 unter Verwendung von bt1View.ui.getSibling(“Button2”) abrufen.