Berechnungsattribute definieren

Mit Berechnungsattributen können Sie logische und mathematische Funktionen hinzufügen, um Werte für Attribute abzuleiten. Sie lassen sich auch in andere berechnete Attribute einbetten, um komplexe Funktionen zu erzielen. Berechnete Attribute sind schreibgeschützt. Sie können nur anhand von Zeitplänen evaluiert werden.

Zeitpläne: Sie können jede beliebige Berechnung hinzufügen. Diese wird unabhängig davon evaluiert, ob sie der Aufgabe explizit zugewiesen wurde oder nicht.

Vorlagen: Sie können kein benutzerdefiniertes Attribut mit ausgewählter Berechnungsoption als Spalten- oder Filterattribut hinzufügen.

Wenn Administratoren in den Attributabschnitten in den Aktionsdialogfeldern Attribute hinzufügen, können diese von Workflowbenutzern angezeigt werden. Administratoren können den Zugriff auf bestimmte Rollen beschränken, indem Sie den Zugriff auf "Nicht anzeigen" setzen. Beispiel: Für das berechnete Attribut XYZ könnte ein Administrator den Zugriff auf Leseberechtigter: Nicht anzeigen setzen, sodass das Attribut XYZ Benutzern mit der Rolle "Leseberechtigter" nicht angezeigt wird.

Jede Benutzerrolle kann berechnete Attribute als Spalten in Ansichten und Portlets hinzufügen. Sie können auch als filterbare Attribute in den Filtereinstellungen hinzugefügt werden.

So definieren Sie Berechnungsattribute:

  1. Klicken Sie auf der Homepage auf Anwendung, Task Manager.
  2. Klicken Sie auf die Registerkarte Attribute auf der linken Seite.
  3. Klicken Sie auf Neu, und geben Sie dann in der Registerkarte Eigenschaften im Feld Name einen Namen für das Attribut an. Wählen Sie anschließend einen Typ für das Attribut aus.
  4. Wählen Sie die Option Berechnung aus.
  5. Wählen Sie in der Registerkarte Berechnung einen Berechnungstyp aus.

Sie können die folgenden Berechnungstypen auswählen. Die verfügbaren Typen sind vom Typ des Attributs abhängig (Text, Ganzzahl usw.).

  • Wert zu Liste zuweisen: Weisen Sie einem Attribut vom Typ "Liste" benutzerdefinierte Werte zu.

  • Liste zu Wert zuweisen: Weisen Sie den Werten eines anderen Attributs benutzerdefinierte Listenwerte zu. Nur für Attribute des Typs "Liste" verfügbar.

  • Bedingt: Eine bedingte Berechnung (If-Then-Else).

  • Skript: Eine skriptgesteuerte Freiformberechnung. Nur für Attribute der Typen "Ganzzahl", "Mehrzeiliger Text", "Zahl" und "Text" verfügbar.

In der folgenden Tabelle sind die für jeden Attributtyp verfügbaren Berechnungstypen aufgeführt.

Attributtyp Wert zu Liste zuweisen Bedingt Skript Liste zu Wert zuweisen
Datum        
Datum/Uhrzeit        
Ganzzahl X X X  
Liste   X   X
Mehrzeiliger Text X X X  
Zahl X X X  
Text X X X  
True/False   X    
Benutzer        
Ja/Nein   X    

Berechnungsdefinition

Mit dem Berechnungstyp Skript können Sie eine Freiform-Berechnungsgleichung eingeben. Sie können Attribut hinzufügen und Funktion hinzufügen verwenden:

  • Attribut hinzufügen: Wählen Sie ein Attribut aus, und fügen Sie das Attribut in das Feld "Berechnungsdefinition" an der Cursorposition ein. Wenn sich der Cursor in der Mitte eines Wortes oder Attributs befindet, wird das Wort/das Attribut in der Definition ersetzt. Im Skriptformat wird der Name des neuen Attributs in geschweifte Klammern {} gesetzt.

    Als einzige Attribute sind Zeitplanattribute verfügbar.

  • Funktion hinzufügen: Wählen Sie eine Funktion aus und fügen Sie die Funktion der Berechnungsdefinition hinzu. Die Funktion wird mit Platzhaltern für jeden Parameter hinzugefügt.

Beispiel: Fügen Sie die Funktion DATE_DIFF in die Berechnungsdefinition ein:

DATE_DIFF(<Date1>, <Date2>, <Type>)

Ersetzen Sie dann die Platzhalter durch Attribute:

DATE_DIFF( {Startdatum}, {Enddatum}, 'DAYS')

Numerische Funktionen und Datumsfunktionen

  • Absoluter Wert: Gibt den absoluten Wert einer angegebenen Zahl zurück. Wenn eine Zahl kleiner als null ist, wird der positive Wert der Zahl zurückgegeben. Wenn die angegebene Zahl größer-gleich null ist, wird die angegebene Zahl zurückgegeben.

    ABS(<Number>)

  • Monat hinzufügen: Gibt einen Datumsversatz um eine angegebene Anzahl von Monaten ab den Startdatum zurück. Das Datum fällt immer in den angegebenen Monatsversatz. Wenn das Startdatum einen Tageswert angibt, der über die Tage in dem Versatzmonat hinausgeht, wird der letzte Tag des Versatzmonats verwendet. Beispiel: EDate (31-Jan-2017, 1) gibt (28-Feb-2017) zurück. Geben Sie bei Monaten die Anzahl von Monaten vor oder nach dem Startdatum ein. Ein positiver Wert für Monate ergibt ein zukünftiges Datum. Ein negativer Wert ergibt ein vergangenes Datum.

    ADD_MONTH(<Start Date>, <Months>, <Length>)

    Beispiel: ADD_MONTH(DATE(2017, 2, 15) 3)

  • Datum: Gibt einen Datumswert basierend auf den angegebenen ganzzahligen Werten für Jahr, Monat und Tag zurück.

    DATE(<Year>, <Month>, <Day>)

  • Datumsdifferenz: Gibt die Differenz zwischen zwei Daten in Jahren, Monaten, Tagen, Stunden, Minuten oder Sekunden zurück. Für DATE 1 und DATE 2 können die Werte TODAY und NOW verwendet werden, die das aktuelle Datum (ohne Zeitkomponente) und Datum/Uhrzeit angeben.

    DATE_DIFF(<Date1>, <Date2>, <Type>)

    Beispiel: DATE_DIFF( {Start Date}, 'TODAY', 'DAYS')

  • Tag: Gibt den Tageswert eines Datums als Ganzzahl zurück

    DAY(<DATE>)

  • Text extrahieren: Gibt die Teilzeichenfolge innerhalb des Wertes von der angegebenen Position zurück.

    SUBSTRING(<Value>, <Location>, <Length>)

    Beispiel: SUBSTRING( {Name}, 4, 10)

  • If/Then/Else: Ermöglicht Ihnen, eine bedingte Berechnung in die Skriptberechnung einzufügen. IF_THEN_ELSE-Berechnungen können auch verschachtelt werden, um Berechnungen des Typs "ELSE IF" zu unterstützen.

    IF_THEN_ELSE(<Condition>, <Value1>, <Value2>)

    Beispiel: IF_THEN_ELSE( ( {Priority} = 'Low'), 1,IF_THEN_ELSE( ( {Priority} = 'Medium'), 2, IF_THEN_ELSE( ( {Priority} = 'High'), 3, 0)))

    Beispiel: IF_THEN_ELSE( ( {Priority} = 'Low'), 'Good' IF_THEN_ELSE( ( {Priority} = 'Medium'), 'Better'. 'Best') )

  • Instring: Gibt den Index der Teilzeichenfolge innerhalb des Wertes zurück.

    INSTRING(<Value1>, <Value to Search>)

    Beispiel: INSTRING({Name}, 'a')

  • Länge: Verwendet einen Textwert als Parameter und gibt eine Ganzzahl zurück, die der Anzahl der Zeichen im Text entspricht. Wenn der Wert leer/null ist, ergibt die Berechnung 0.

    Length ({<attribute>})

    Beispiel: LENGTH("Value") würde 5 ergeben, und LENGTH({Name}) würde die Anzahl der Zeichen im Namen des Objekts ergeben.

    Verwenden Sie die Berechnung mit SUBSTRING, um die letzten vier Zeichen eines Textwertes zu extrahieren.

    SUBSTRING( {MyString}, LENGTH ({MyString}) - 4

  • Kleinbuchstaben: Gibt den Wert in Kleinbuchstaben zurück.

    LOWERCASE(<Value>)

    Beispiel: LOWERCASE ({Aufgabencode})

  • Maximum: Gibt den Höchstwert aus einer Liste mit Attributen zurück. Es kann eine beliebige Anzahl von Parametern vorhanden sein.

    MAX <Value1>, <Value2>, <ValueN>)

    Beispiel: MAX( {Position von skriptgesteuerter Teilzeichenfolge a}, {Position von skriptgesteuerter Teilzeichenfolge s}, {Position von skriptgesteuerter Teilzeichenfolge t} )

  • Minimum: Gibt den Mindestwert aus einer Liste mit Attributen zurück. Es kann eine beliebige Anzahl von Parametern vorhanden sein.

    MIN (<Value1>, <Value2>, <ValueN>)

    Beispiel: MIN( {Position von skriptgesteuerter Teilzeichenfolge a}, {Position von skriptgesteuerter Teilzeichenfolge s}, {Position von skriptgesteuerter Teilzeichenfolge t} )

  • Monat: Gibt den Monatswert eines Datums als Ganzzahl (1-12) zurück

    MONTH (<DATE>)

  • Potenz: Erhöht eine Zahl um die Potenz einer anderen (Exponentialrechnung).

    POWER(x,y) wobei x=BASE NUMBER, y=EXPONENT, und x sowie y können Attribute oder Berechnungen sein, solange sie numerisch sind.

    Beispiel: POWER(3,4)=81

    Hinweis:

    Bruchzahlen verringern die Zahl um die Wurzel. Beispiel: POWER(27, 1/3) = 3 , die Kubikwurzel.

    Negative Werte führen zu einer Umkehrung der Exponentialrechnung. Beispiel: POWER(2, -2) = 1 / (2^2) = 1 / 4 = .25.

  • Gerundet: Gibt den Wert auf die angegebenen Dezimalstellen gerundet zurück.

    ROUND <Attribute>, <Decimal Places>)

    Beispiel: ROUND( ({Position von skriptgesteuerter Teilzeichenfolge t} / 7), '4')

  • Textposition: Gibt den Index der Teilzeichenfolge innerhalb des Wertes zurück, angefangen mit 1 als der ersten Position.

    INSTRING(<Value>, <Value To Search>)

    Beispiel: INSTRING( UPPERCASE( {Name} ), 'TAX' )

  • Großbuchstaben: Gibt den Wert in Großbuchstaben zurück.

    UPPERCASE(<Value>)

    Beispiel: UPPERCASE( {Name} )

  • Jahr: Gibt den Jahreswert eines Datums als Ganzzahl zurück

    YEAR (<DATE>)

Berechnungsvalidierung

Die folgenden Validierungsprüfungen werden ausgeführt, wenn Sie die Berechnung speichern:

  • ob die Syntax der Berechnung stimmt.

  • ob die in der Berechnung angegebenen Attribute und Funktionen vorhanden sind.

  • ob die Zuordnung von Parametern zu Funktionen stimmt.

  • dass keine logischen Schleifen vorliegen.