Anfang des Inhaltsbereichs

Vorgehensweisen Benutzerdefinierte Validierung  Dokument im Navigationsbaum lokalisieren

Verwendung

Aktivieren Sie diese Option in der Eigenschaften-Anzeige zum BSP-Element, wenn Sie eine benutzerdefinierte Validierung des Element-Aufrufs durchführen wollen. Dies kann zum Beispiel dann der Fall sein, wenn Sie den korrekten Typ von Attributwerten überprüfen möchten. Generell kann eine Validierung sowohl zur Compile-Zeit als auch zur Laufzeit stattfinden. Eine Laufzeit-Validierung ist insbesondere dann sinnvoll, wenn Attributen von BSP-Elemeten über BSP-Expressions (<%=...%>) erst zur Laufzeit Werte zugewiesen werden oder auch bei Attributen, deren Werte in einen anderen Datentyp (String -> I) zur Laufzeit transformiert werden. Eine Validierung zur Complie-Zeit wird dagegen vom BSP Compiler übernommen und erfolgt in den Fällen, in denen Werte durch statische Attribute übergeben werden.

Aktivitäten

Zusätzlich zur Aktivierung der Option Benutzerdefinierte Validierung sind die Interface-Methoden COMPILE_TIME_IS_VALID (für die Validierung zur Compile-Zeit) und/oder RUNTIME_IS_VALID (für die Validierung zur Laufzeit) in der Elementhandler-Klasse zu redefinieren.

Achtung

Innerhalb der Methode COMPILE_TIME_IS_VALID muß der Rückgabeparameter valid gesetzt werden. Bei der Ermittlung dieses Wertes können Sie auf vordefinierte Attribute und Hilfsmethoden des Validierungsobjekts validator zurückgreifen. Dieses Objekt verfügt über entsprechende Konvertierungsmethoden, die Attribute zur Compile-Zeit über die Attribut-Namen identifizieren (siehe erstes Beispiel). Das Validierungsobjekt validator ist bereits in der Schnittstelle von COMPILE_TIME_IS_VALID als Input-Parameter enthalten.

Die Methode RUNTIME_IS_VALID definiert dagegen keinen Rückgabeparameter. Die Laufzeit-Validierung löst im Fehlerfall eine entsprechende Laufzeit-Exception aus. Wesentlicher Bestandteil der Methodenimplementierung ist das Validierungsobjekt m_validator. Dieses Objekt ist bereits als Attribut der Elementhandler-Klasse definiert und verfügt ebenfalls über Konvertierungsmethoden, die Attribute über ihren Namen und zusätzlich durch ihren Wert identifizieren (siehe zweites Beispiel). Die zu prüfenden Attribute (Laufzeit-Attribute) werden beim Aufruf der Methode RUNTIME_IS_VALID als Argument mitgeliefert. Dieses Argument besteht aus einem String, in dem die Namen der zu prüfenden Attribute durch ‘ / ‘ getrennt aufgeführt werden.

Empfehlung

Der String mit den zu prüfenden Laufzeitattributen kann eventuell beim Aufruf <Elementname>->RUNTIME_IS_VALID(attr_1/attr_2/ .../attr_n) - bei großer Anzahl von Attributen - die maximale Länge von 200 Zeichen überschreiten. In einem solchen Falle sollte anstelle der Attributnamen der String ‘/ * / ‘ übergeben werden, um einen Abbruch beim Aktivieren zu vermeiden.

Beispiel: Validierung zur Compile-Zeit

Im nachfolgenden Beispiel soll zur Compile-Zeit überprüft werden, ob der Wert des Attributs required ein korrekter boolscher Wert ist und ob die beiden Attribute size und maxlength Integer-Werte enthalten.

Zu diesem Zwecke wird die Interfacemethode COMPILE_TIME_IS_VALID überschrieben. Für die Konvertierung des String-Wertes aus dem HTML-Datenstrom in Boolean- und Integer-Werte werden die entsprechenden Methoden des Objektes validator für die jeweiligen Attribute aufgerufen. Sind alle überprüften Attributwerte gültig, dann wird der Rückgabewert valid entsprechend mit m_all_values_valid belegt.

method IF_BSP_ELEMENT~COMPILE_TIME_IS_VALID .

   validator->to_boolean( name = 'required' ).

   validator->to_integer( name = 'size' ).

   validator->to_integer( name = 'maxlength' ).

   valid = validator->m_all_values_valid.

endmethod.

 

Beispiel: Validierung zur Laufzeit

Im nachfolgenden Beispiel soll zur Laufzeit überprüft werden, ob der Wert des Attributs visible ein korrekter boolscher Wert ist und ob die beiden Attribute axisMinVal und axisMaxVal Werte vom Typ Float enthalten.

In diesem Fall wird die Interfacemethode RUNTIME_IS_VALID überschrieben. Dieser Methode wird die Liste der Parameter m_visible, m_axisMinVal, m_axisMaxVal übergeben, in die das jeweilige Resultat der Attribute-Prüfung geschrieben wird. Die Identifizierung der Attribute erfolgt mittels der Methoden des Validierungsobjektes m_validator. Die Methode RUNTIME_IS_VALID liefert keinen Rückgabewert zurück. Ist einer der überprüften Attributwerte ungültig, dann wird zur Laufzeit eine entsprechende Exception ausgelöst.

method IF_BSP_ELEMENT~RUNTIME_IS_VALID .

    m_visible    = m_validator->to_boolean( name = 'visible'

                                            value = me->visible ).

    m_axisMinVal = m_validator->to_float( name = 'axisMinVal'

                                          value = me->axisMinVal ).

    m_axisMaxVal = m_validator->to_float( name = 'axisMaxVal'

                                          value = me->axisMaxVal ).

endmethod.

 

 

Ende des Inhaltsbereichs