Berechnen Sie das Fälligkeitsdatum benutzerdefinierter Workflow-Aufgaben ohne Wochenenden?
-
09-12-2019 - |
Frage
Ich möchte in meinem Workflow den Wert „Fälligkeitsdatum“ für „Benutzerdefinierte Aufgabe erstellen“ festlegen.
Ich möchte jedoch, dass es „wochenendbewusst“ ist ... d. h.(Sonntag-Donnerstag-Arbeitswoche)
Wenn Sie eine Aufgabe von Sonntag bis Dienstag erstellen, ist sie zwei Tage später fällig
Wenn Sie eine Aufgabe an einem Mittwoch erstellen, ist sie am Sonntag fällig
Wenn Sie eine Aufgabe an einem Donnerstag erstellen, ist sie am Montag fällig
Ich habe mir Workflow-Variablen angesehen, aber diese verfügen über keine Berechnungen.
Ich habe mir „Berechnung durchführen“ angesehen, aber dies beschränkt sich stark auf „Eine feste Zahl hinzufügen“.
[Wieder einmal erweist sich eine einfache Aufgabe in SharePoint als schwierig]
Lösung
Es ist nicht so einfach, wie man es sich wünschen könnte, aber Sie können es schaffen, indem Sie die folgenden Aktionen als Bausteine verwenden:
- Verwenden
Find Interval Between Dates
um die Anzahl der Tage von einem bekannten Datum bis zum Erstellungsdatum zu ermitteln - Verwenden
Do Calculation
(Mod 7), um den Wochentag des Erstellungsdatums zu erhalten - Verwenden Sie eine Reihe von
if any value equals value
zusammen mitAdd Time to Date
um den Fälligkeitstermin zu berechnen
Andere Tipps
ohne benutzerdefinierten Code, ich kann keine Möglichkeit haben, es mit de SPD zu tun.
beste Grüße.
Es ist eher eine verspätete Antwort, aber als Suche nach diesem hat mich noch 10 Monate später hier geführt, dachte ich, ich würde ein Codigh-Beispiel für die Antwort von Jackson oben in SPD 2013 geben (ich habe keine frühere Version teste mit mir Angst). In meinem Beispiel eines IT-Helpdesk wird der daubende Wert basierend auf der Priorität des angehobenen Tickets eingestellt, wechselt dann den delterischen Wert, wenn er an einem Samstag oder Sonntag (bis Montag oder Dienstag) fällt: generasacodicetagpre.
Schritt 3.1 entscheidet, dass "Wenn ein Anruf am Nachmittag angemeldet ist, muss er bis morgen nicht gelöst werden." Setzt dann eine Datums- / Zeitvariable namens Dedatate.
Schritt 3.2 Legt den Zeitteil der Damen auf 00:00 fest, um Dezimalzahlen in späteren Berechnungen zu vermeiden. Kummer
Es verwendet dann die Funktion "Findage zwischen", um die Anzahl der Tage zwischen einem Montag (01.07.13 in diesem Fall) zu finden, aber es könnte an jedem Montag sein - und es ist hier in einem DD / MM / YY-Format aufgrund meiner Lokalisierung die Einstellungen). Dieser Wert wird dann in einer Nummernvariablen gespeichert, die als DaysDewenenMondAdAdddingdating bezeichnet wird. Kummer
Es verwendet dann die Funktion "Berechnen", um zu tun (dazwischenmundondayandddingat mod 7), der uns eine schöne runde Zahl zwischen 0-6 gibt, wobei 0 einen Montag darstellt (wie das, was 01/07/13, der früher verwendet wird, und 6 ist ein Sonntag. Dies wird als eine andere Nummernvariable gespeichert, die namens mod7ddusiert ist.
Wenn schließlich MOD7DUEDATE größer oder gleich 5 (d. H. Wenn er an einem Samstag oder Sonntag fällt) ist, fügen Sie zwei Tage in die ursprüngliche delterische Variable hinzu, um sie bis Montag oder Dienstag zu bewegen.
Die letzten Funktionen setzen den Zeitteil von Damen auf 17.00 Uhr (was in diesem Fall von meiner Präferenz ist), und aktualisiert dann den Listenelement mit delterierter Variablen.
hoffe das hilft jemandem :)