Effektive Zielzeiten berechnen
In todo4teams wird jedes Todo mit einer Zielzeit versehen, d.h. einer Zeit in der das Todo erledigt sein sollte, da der Kunde innerhalb dieser Zeit eine Antwort erwartet. Die effektiven Zielzeiten berücksichtigen, dass ein Servicecenter Servicezeiten hat, außerhalb derer keine Bearbeitung stattfindet.
Die zur Parametrisierung notwendigen Helper-Objekte unterscheidet sich, je nachdem ob die Zielzeit sich im Stunden/Minuten-Bereich unterhalb eines Tages befindet oder die Zielzeit mehr als einen Tag umfasst. Die Dokumentation zu den zu definierenden Parametern der Helper-Objekte finden Sie in unserer API-Dokumentation (unter Handbücher im Startmenü von todo4teams).
Ist ein Servicecenter z.B. täglich von 7:00 Uhr bis 20:00 Uhr besetzt, und trifft ein Todo mit einer versprochenen Bearbeitungsdauer von vier Stunden um 19:00 Uhr ein, so kann es frühestens um 10:00 Uhr am nächsten Tag bearbeitet sein, da am Tag des Eintreffens noch eine Stunde verbleibt, und am nächsten Tag noch drei weitere Stunden Bearbeitung erforderlich sind. Um die Berechnung der effektiven Zielzeiten in den Skripten zum E-Mail, SMS- oder Webservice-Eingang zu vereinfachen, bietet die todo4teams-API mehrere Methoden an.
1. Zielzeiten unterhalb eines Tages im Stunden/Minuten-Bereich
In unserem ersten Beispiel hat ein Todo z.B. eine versprochene Bearbeitungsdauer von 15 Minuten, und das Servicecenter besitzt folgende Servicezeiten:
Wochentag | Von | Bis |
---|---|---|
Montag-Freitag | 7:00 | 22:00 |
Samstag | 8:00 | 16:30 |
Sonntag | 9:00 | 13:00 |
Für diesen Fall kann man die effektiven Zielzeiten mit folgender Methode berechnen, benötigt wird das Helper-Objekt "helper.getScheduledEndDateByServiceTimes". Die Parameter:
getScheduledEndDateByServiceTimes
public java.util.Date getScheduledEndDateByServiceTimes(int minutes,
int startHourWeekdays,
int startMinuteWeekdays,
int endHourWeekdays,
int endMinuteWeekdays,
int startHourSaturdays,
int startMinuteSaturdays,
int endHourSaturdays,
int endMinuteSaturdays,
int startHourSundays,
int startMinuteSundays,
int endHourSundays,
int endMinuteSundays)
Calculates the scheduled end time of a ticket taking into account the current timestamp and the effective service times given by the parameters. This method helps to avoid to create tickets with scheduled end times that can not be satisfied due to night break, weekend etc.
Parameters:
startHourWeekdays - start of service time hour from Mo-Fr
startMinuteWeekdays - start of service time minute from Mo-Fr
endHourWeekdays - end of service time hour from Mo-Fr
endMinuteWeekdays - end of service time minute from Mo-Fr
startHourSaturdays - start of service time hour on Sa
startMinuteSaturdays - start of service time minute on Sa
endHourSaturdays - end of service time hour on Sa
endMinuteSaturdays - end of service time minute on Sa
startHourSundays - start of service time hour on Su
startMinuteSundays - start of service time minute on Su
endHourSundays - end of service time hour on Su
endMinuteSundays - end of service time minute on Su
Returns:
the effective scheduled end time
Für das konkrete Beispiel:
var effektiveZielzeit = helper.getScheduledEndDateByServiceTimes(
15, // Anzahl der Minuten
7, 0, 22, 0, // Mo-Fr von 7:00 bis 22:00 Uhr
8, 0, 16, 30, // Sa von 8:00 bis 16:30 Uhr
9, 0, 13, 0); // So von 9:00 bis 13.00 Uhr
// Setzen der effektiven Zielzeit
task.setScheduledEndDate(effektiveZielzeit);
Für den Fall, dass die Servicezeiten am Freitag von den anderen Werktagen abweichen, kann man die effektiven Zielzeiten mit folgender Methode berechnen, benötigt wird das Helper-Objekt "helper.getScheduledEndDateByServiceTimes4". Die Parameter:
getScheduledEndDateByServiceTimes4
public java.util.Date getScheduledEndDateByServiceTimes4(int minutes,
int startHourWeekdays,
int startMinuteWeekdays,
int endHourWeekdays,
int endMinuteWeekdays,
int startHourFridays,
int startMinuteFridays,
int endHourFridays,
int endMinuteFridays,
int startHourSaturdays,
int startMinuteSaturdays,
int endHourSaturdays,
int endMinuteSaturdays,
int startHourSundays,
int startMinuteSundays,
int endHourSundays,
int endMinuteSundays)
Calculates the scheduled end time of a ticket taking into account the current timestamp and the effective service times given by the parameters. This method helps to avoid to create tickets with scheduled end times that can not be satisfied due to night break, weekend etc.
Parameters:
startHourWeekdays - start of service time hour from Mo-Do
startMinuteWeekdays - start of service time minute from Mo-Do
endHourWeekdays - end of service time hour from Mo-Do
endMinuteWeekdays - end of service time minute from Mo-Do
startHourFridays - start of service time hour on Fri
startMinuteFridays - start of service time minute on Fri
endHourFridays - end of service time hour on Fri
endMinuteFridays - end of service time minute on Fri
startHourSaturdays - start of service time hour on Sa
startMinuteSaturdays - start of service time minute on Sa
endHourSaturdays - end of service time hour on Sa
endMinuteSaturdays - end of service time minute on Sa
startHourSundays - start of service time hour on Su
startMinuteSundays - start of service time minute on Su
endHourSundays - end of service time hour on Su
endMinuteSundays - end of service time minute on Su
Returns:
the effective scheduled end time
Für das konkrete Beispiel, hier hat allerdings der Freitag die identischen Servicezeiten wie Mo-Do:
var effektiveZielzeit = helper.getScheduledEndDateByServiceTimes4(
15, // Anzahl der Minunten
7, 0, 22, 0, // Mo-Do von 7:00 bis 22:00 Uhr
7, 0, 22, 0, // Freitag von 7:00 bis 22:00 Uhr
8, 0, 16, 30, // Sa von 8:00 bis 16:30 Uhr
9, 0, 13, 0); // So von 9:00 bis 13.00 Uhr
// Setzen der effektiven Zielzeit
task.setScheduledEndDate(effektiveZielzeit);
2. Zielzeiten größer/gleich von einem Tag, mehrere Tage
In unserem zweiten Beispiel sollen die effektiven Zielzeiten für Todos berechnet werden, die eine versprochene Bearbeitungsdauer von zwei Tagen haben. Für das Servicecenter werden folgende Servicezeiten angenommen:
Wochentag | Von | Bis |
---|---|---|
Montag-Donnerstag | 8:00 | 16:00 |
Freitag | 8:00 | 12:30 |
Samstag | geschlossen | |
Sonntag | geschlossen |
Hier lässt sich das Szenario über das Helper Objekt "getScheduledEndDay" abbilden, die Parameter:
getScheduledEndDay
public java.util.Date getScheduledEndDay(int workingdays,
boolean weekday,
boolean friday,
boolean saturday,
boolean sunday,
int endHourWeekdays,
int endMinuteWeekdays,
int endHourFridays,
int endMinuteFridays,
int endHourSaturdays,
int endMinuteSaturdays,
int endHourSundays,
int endMinuteSundays)
Calculates the scheduled end time of a ticket taking into account the current timestamp and the effective service times given by the parameters. This method helps to avoid to create tickets with scheduled end times that can not be satisfied due to night break, weekend etc. This method is to be used for service times for more than one working day
Parameters:
workingdays - number of working days to be taken into account
weekday - Mon-Do to be taken into account
friday - Friday to be taken into account
saturday - Saturday to be taken into account
sunday - Sunday to be taken into account
endHourWeekdays - end of service time hour from Mon-Do
endMinuteWeekdays - end of service time minute from Mon-Do
endHourFridays - end of service time hour on Fri
endMinuteFridays - end of service time minute on Fri
endHourSaturdays - end of service time hour on Sat
endMinuteSaturdays - end of service time minute on Sat
endHourSundays - end of service time hour on Sun.
endMinuteSundays - end of service time minute on Su
Returns:
the effective scheduled end time
Für das konkrete Beispiel:
var effektiveZielzeit = task.setScheduledEndDate(helper.getScheduledEndDay(
2, // Zwei Tage Zielzeit
true, // Mo-Do ist geöffnet
true, // Freitag ist geöffnet
false, // Samstag ist geschlossen
false, // Sonntag ist geschlossen
16, 0, // Mo-Do schließt das Servicecenter um 16:00 Uhr
12, 30, // Freitags schließt das Servicecenter um 12:30 Uhr
0, 0, // Samstag ist geschlossen
0, 0)); // Sonntag ist geschlossen
// Setzen der effektiven Zielzeit
task.setScheduledEndDate(effektiveZielzeit);
Darüber hinaus gibt es auch Methoden um z.B. eine absolute Zielzeit zu setzen sowie verschiedene Varianten der oben gezeigten Methodenaufrufe. Details entnehmen Sie bitte der Dokumentation zur todo4teams-API.