So implementieren Sie eine relative Dauer

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Sie können eine relative Dauer implementieren, indem Sie die Tabelle „cmn_relative_duration“ und die DurationCalculator-Skripteinbindung erstellen.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Prozedur

    1. Erstellen Sie die Tabelle „cmn_relative_duration“.
    2. Erstellen Sie die DurationCalculator-Skripteinbindung.
    3. Erstellen Sie einen Beispieleintrag für eine relative Dauer (z. B. „Nächster Geschäftstag bis 16 Uhr“).
    4. Fügen Sie die erforderlichen Felder zu SLA-Tabellen hinzu, um die relative Dauer zu unterstützen.
    5. Ändern Sie die Dauerberechnung für SLAs.
    6. Ändern Sie die Berechnung „SLA-Prozent-Timer“ für SLAs (muss „work_seconds“ verwenden).
    7. Fügen Sie dem Workflow Zeitplanfelder hinzu: Zeitplan und Zeitzone (ausgewählt basierend auf dem Feld aus der Workflow-Tabelle).
    8. Fügen Sie der Workflow-Aufgabenaktivität Felder zur Unterstützung der Dauer hinzu.
    9. Implementieren Sie das Skript zur Dauerberechnung für die Aufgabenaktivität.

    Tabelle für relative Dauer und DurationCalculator-Methoden

    Die Tabelle „cmn_relative_duration“ unterstützt die Definition eines Fälligkeitsdatums entweder als Zeitdauer oder als relative Dauer.

    Diese Tabelle besteht aus zwei Feldern: „Name“ und „Skript“. Das Feld „Skript“ enthält das Skript zur Berechnung der relativen Dauer. Dieses Skript enthält die Variable „calculator“, mit der das Fälligkeitsdatum berechnet wird.

    Die DurationCalculator-Skripteinbindung kann zur Durchführung der Dauerberechnungen verwendet werden. In dieser Skripteinbindung stehen die folgenden Methoden zur Verfügung.

    Tabelle : 1. Tabelle für DurationCalculator-Skripteinbindung
    Methode Beschreibung
    setSchedule(String schedID, [String timezone]) Legt den Zeitplan und die Zeitzone fest, die zur Berechnung des Fälligkeitsdatums verwendet werden sollen.
    setStartDateTime(GlideDateTime start) Legt die Startzeit für die Dauerberechnungen fest. Wenn „start“ leer ist, wird das aktuelle Datum/die aktuelle Uhrzeit verwendet.
    calcDuration(int seconds) Berechnet das Enddatum und die Endzeit. Nach Abschluss werden die Eigenschaften „this.endDateTime“ und „this.seconds“ festgelegt, um die Ergebnisse der Berechnung anzuzeigen.
    calcRelativeDuration(String relativeDurationID) Berechnet die Dauer mithilfe des angegebenen Skripts für die relative Dauer. Nach Abschluss werden die Eigenschaften „this.endDateTime“ und „this.seconds“ festgelegt, um die Ergebnisse der Berechnung anzuzeigen.
    getEndDateTime() Ruft die durch calcDuration/calcRelativeDuration festgelegte Eigenschaft „this.endDateTime“ ab, die das Enddatum und die Endzeit für die Dauer angibt.
    getSeconds() Ruft die von calcDuration/calcRelativeDuration festgelegte Eigenschaft „this.seconds“ ab, die die Gesamtzahl durchzuführender Arbeitssekunden für die Dauer angibt.
    Hinweis:
    Dies ist die Gesamtarbeitszeit, nicht die Gesamtzeit zwischen Start- und Endzeit, und kann zur Bestimmung von Prozentsätzen der Arbeitszeit verwendet werden.
    getTotalSeconds() Ruft die von calcDuration/calcRelativeDuration festgelegte Eigenschaft „this.totalSeconds“ ab, die die Gesamtzahl von Sekunden zwischen der Start- und Endzeit der Dauer angibt.

    Die folgenden Funktionen werden in Skripts zur Berechnung der relativen Dauer verwendet:

    Tabelle : 2. Funktionen in Skripts für die relative Dauer
    Funktion Beschreibung
    boolean isAfter(GlideDateTime dt, String time) Liegt die „time“ des Tages nach der von „dt“ angegebenen Uhrzeit? Wenn „dt“ leer ist, wird das aktuelle Datum/die aktuelle Uhrzeit verwendet. „time“ wird als „hh:mm:ss“ im 24-Stunden-Format angegeben.
    calcRelativeDueDate(GlideDateTime start, int days, String endTime) Berechnet das Fälligkeitsdatum, indem bei „start“ begonnen und „days“ anhand von Zeitplan und Zeitzone addiert wird. Wenn wir den Tag finden, an dem die Arbeit fällig ist, legen Sie „time“ auf die „endTime“ dieses Tages fest. Nach Abschluss werden die Eigenschaften „this.endDateTime“ und „this.seconds“ festgelegt, um die Ergebnisse der Berechnung anzuzeigen. Wenn „endTime“ leer ist, verwenden Sie das Ende des Arbeitstags.