Spezielle Verwaltung > Geschäftsobjekte anpassen > Typ- und Attributverwaltung > Arbeiten mit dem Typ- und Attributverwaltungs-Dienstprogramm > Typen verwalten > Typ-Informationsseite > Registerkarte "Attribute" > Neue Attribute erstellen > Formeln für berechnete Attribute
  
Formeln für berechnete Attribute
Berechnete Attribute leiten ihre Werte mithilfe von Formeln von den Werten anderer Attribute ab. Diese Formeln können sowohl Attribut- als auch Literalwerte verwenden, um einen abgeleiteten Attributwert zu berechnen oder zu generieren.
Sie können die Formel während des Schritts Eigenschaften festlegen der Erstellung des berechneten Attributs im Feld Formel hinzufügen, oder Sie können das Feld Formel auf der Attributinformationsseite bearbeiten, nachdem das berechnete Attribut erstellt wurde.
* 
Wenn ein Attribut, das sich auf ein berechnetes Attribut auswirkt, beim Erstellen oder Bearbeiten eines Objekts geändert wird, wird die Formel nicht sofort neu ausgewertet. Sobald die Erstellungsaktion oder Bearbeitungsaktion verarbeitet wird, wird die Formel neu ausgewertet und der berechnete Attributwert wird aktualisiert.
Weitere Informationen darüber, wie berechnete Attribute angezeigt werden, wenn sie in Attribut-Layouts eingeschlossen sind, finden Sie unter Attributanzeige.
Die Lokalisierung der numerischen Ergebnisse eines berechneten Attributs basiert auf dem Gebietsschema des Browsers.
Datentypen in Formeln
Nur Attribute der folgenden Datentypen werden in Formeln unterstützt: Zeichenfolge, Ganzzahl, Reelle Zahl, Reelle Zahl mit Einheiten, Hyperlink, Datum und Uhrzeit und Boolesch. Das Ergebnis der Formel muss dem angegebenen Datentyp des berechneten Attributs entsprechen, aber es können auch Attribute von verschiedenen Datentypen innerhalb der Formel verwendet werden.
Wenn Attribute unterschiedlicher Datentypen in der Formel verwendet werden, konvertiert das System die Datentypen in den gleichen Datentyp, der für die Operation oder Funktion in der Formel erforderlich ist, bevor die Operation oder Funktion ausgeführt wird. Das Formelergebnis weist dann den gleichen Datentyp auf. Die Datentypkonvertierung wird in der folgenden Prioritätsreihenfolge angewendet:
1. Zeichenfolge: Wenn mindestens ein Argument in der Formel den Datentyp Zeichenfolge aufweist, werden alle Argumente in den Datentyp Zeichenfolge konvertiert. (Hyperlink und Datum und Uhrzeit werden automatisch in Zeichenfolge konvertiert.)
2. Reelle Zahl mit Einheiten: Wenn mindestens ein Argument in der Formel den Datentyp Reelle Zahl mit Einheiten aufweist, werden alle Argumente in den Datentyp Reelle Zahl mit Einheiten konvertiert.
3. Reelle Zahl: Wenn mindestens ein Argument in der Formel den Datentyp Reelle Zahl aufweist, werden alle Argumente in den Datentyp Reelle Zahl konvertiert.
4. Ganzzahl: Wenn mindestens ein Argument in der Formel den Datentyp Ganzzahl aufweist, werden alle Argumente in den Datentyp Ganzzahl konvertiert.
5. Boolesch.
Bei der Formel attrA + attrB, wenn attrA ein Datentyp Zeichenfolge ist und attrB ein Datentyp Reelle Zahl, wird attrB zu einem Datentyp Zeichenfolge konvertiert und mit attrA verkettet. Wenn der Wert von attrAErgebnis: ist und der Wert von attrB1,5, ist das Ergebnis der Formel Ergebnis: 1,5.
Genauso gilt, wenn attrC ein Datentyp Ganzzahl ist und attrD ein Datentyp Reelle Zahl, dann wird in der Formel attrC * attrD das attrC zu einem Datentyp Reelle Zahl konvertiert, und das Ergebnis der Formel ist ein Datentyp Reelle Zahl.
Das System wertet die eingegebene Formel aus, wenn das berechnete Attribut gespeichert wird. Wenn der Datentyp des Formelergebnisses nicht dem Datentyp des berechneten Attributs entspricht, wird ein Fehler zurückgegeben, und die Formel wird nicht gespeichert. Der Datentyp eines Formelergebnisses kann konvertiert werden, indem die Art der Formelangabe geändert wird. Im folgenden Beispiel ist <Formel> die ursprüngliche Formel, deren Datentyp konvertiert wird.
Um eine Formel, deren Ergebnis den Datentyp Boolesch, Ganzzahl, Reelle Zahl oder Reelle Zahl mit Einheiten aufweist, in den Datentyp Zeichenfolge zu konvertieren, geben Sie Folgendes in das Feld Formel ein:
""+(<Formel>)
Um eine Formel, deren Ergebnis den Datentyp Boolesch, Ganzzahl oder Reelle Zahl aufweist, in den Datentyp Reelle Zahl mit Einheiten zu konvertieren, geben Sie Folgendes in das Feld Formel ein:
unit("1.0000000000000")*(<Formel>)
(Mindestens dreizehn Nullen sind erforderlich, um die volle Genauigkeit des ursprünglichen Ergebnisses zu bewahren.)
Um eine Formel, deren Ergebnis den Datentyp Boolesch oder Ganzzahl aufweist, in den Datentyp Reelle Zahl zu konvertieren, geben Sie Folgendes in das Feld Formel ein:
1.0*(<Formel>)
Um eine Formel, deren Ergebnis den Datentyp Boolesch aufweist, in den Datentyp Ganzzahl zu konvertieren, geben Sie Folgendes in das Feld Formel ein:
1*(<Formel>)
Beispiel: Zahlenwerte berechnen
Verwenden Sie Operatoren und die internen Namen von Attributen zum Erstellen von Formeln, die den gewünschten Attributwert berechnen. (In Formeln müssen Sie den internen Namen eines Attributs verwenden, nicht den Anzeigenamen.)
Wenn Sie z.B. ein Attribut "Gesamtkosten" haben, dessen Wert sich aus dem Wert des Attributs "Menge" multipliziert mit dem Wert des Attributs "Einheitenkosten" plus dem Wert des Attributs "Bearbeitungsgebühren" errechnen soll, können Sie das Attribut "Gesamtkosten" mit der folgenden Formel berechnen:
(quantity*unitCost)+fee
Beispiel: Kombination von nicht numerischen Attributwerten
Formeln können auch verwendet werden, um nicht numerische Attributwerte zu kombinieren.
Wenn Sie z.B. ein berechnetes Attribut namens "ID" erstellt haben, können Sie die Werte der Attribute "Name" und " Nummer" des Typs mit der folgenden Formal zum Wert des Attributs "ID" kombinieren:
name+"("+number+")"
Dies würde in einem ID-Attributwert wie z.B. MyDocument (0001A) resultieren.
Unterstützte Funktionen
* 
Für berechnete Attribute werden derzeit keine mehrwertigen Funktionen unterstützt.
Die folgenden Funktionen werden unterstützt:
Funktion 
Beschreibung
isNull( )
Nullprüfung
unit( )
Konvertiert den Datentyp Zeichenfolge in den Datentyp Reelle Zahl mit Einheiten
str( )
Konvertiert eine Zahl in den Datentyp Zeichenfolge
abs( )
Absoluter Wert oder Größe
avg( )
Durchschnitt einer Werteliste
sum( )
Summe einer Werteliste
min( )
Minimum einer Werteliste
max( )
Maximum einer Werteliste
round()
Konvertiert eine Zahl mit einer Dezimalzahl (reelle Zahl) in eine Ganzzahl
Wenn die Dezimalzahl .5 enthält, wird die Zahl auf eine gerade Zahl gerundet (z.B. wird 30,5 auf 30 abgerundet und 31,5 auf 32 aufgerundet).
Wenn die Dezimalzahl andere Zahlen enthält, wird die Zahl auf die nächste Zahl gerundet (z.B. wird 30,8 auf 31 aufgerundet und 33,4 auf 33 abgerundet).
mod()
Gibt den Rest einer Zahl zurück, die durch eine andere Zahl geteilt wird. (nur Datentypen des Typs Ganzzahl)
${}
Umschließt die internen Namen von Attributen, die Sonderzeichen enthalten, sodass sie in der Formel verwendet werden können. Alle internen Namen von Attributen können umschlossen werden, doch die Namen von internen Attributen, die einen Bindestrich (-), ein Dollarzeichen ($) oder eckige Klammern enthalten, müssen bei Verwendung in Formeln umschlossen sein. Beispielsweise können Attribute mit den internen Namen my-attribute oder my[very$complex]-attribute in einer Formel verwendet werden, wenn sie wie folgt umschlossen werden:
${my-attribute}
${my[very$complex]-attribute}
Wenn die Attribute, die im Abschnitt Beispiel: Zahlenwerte berechnen verwendet wurden, interne Namen haben, die Sonderzeichen enthalten, könnte die Formel für die Gesamtkosten wie folgt aussehen: (${item-quantity}*${unit-cost})+${handling-fee}
Unterstützte Operatoren
Die folgenden Operatoren werden unterstützt:
Operator
Beschreibung
+
Addition; kann auch zum Verketten von Zeichenfolgen verwendet werden
-
Subtraktion
*
Multiplikation
/
Division
( )
Öffnende und schließende Klammern, um eine andere Priorität in der Ausführungsreihenfolge von Operationen festzulegen (die Operationen innerhalb der Klammer sollen zuerst ausgeführt werden)
" "
Doppelte Anführungszeichen, um anzugeben, dass der Inhalt der Anführungszeichen eine Literalzeichenfolge ist Alle Nicht-Zahlen, die nicht in doppelten Anführungszeichen stehen, werden als Attributname behandelt
>
Größer als
<
Kleiner als
>=
Größer als oder gleich
<=
Kleiner als oder gleich
==
Gleich
!=
Ungleich
^
Potenz oder Exponent
&
Und
|
Oder
~
Nicht
^*
Exklusives Oder
&&
Und
||
Oder
!
Nicht
? :
Bedingungsoperator, der das Ergebnis angibt, wenn die angegebene Bedingung den Wert "wahr" oder "falsch" hat:
(Bedingung) ? Wert wenn wahr : Wert wenn falsch
Angenommen beispielsweise, ein Typ verfügt über die Attribute "Länge", "Breite" und "Form", wobei "Form" ein berechnetes Attribut mit der folgenden Formel ist:
(Länge>Breite) ? "länger" : "breiter"
Wenn der Wert des Längenattributs größer als der Wert des Breitenattributs ist, wird dem Formattribut der Wert länger zugewiesen. Wenn der Wert des Längenattributs nicht größer als der Wert des Breitenattributs ist, wird dem Formattribut der Wert breiter zugewiesen.
%
Rest