Effektive Zielzeiten berechnen


Bei todo4teams hat jedes Ticket eine Zielzeit, also die Zeit, die innerhalb der ein Ticket erledigt sein muss, da der Kunde spätestens am Ende des Zeitraums eine eindeutige Antwort erwartet. Effektive Sollzeiten berücksichtigen, dass ein Service-Center über Geschäftszeiten verfügt.

Die für die Parametrisierung erforderlichen Hilfsobjekte unterscheiden sich je nachdem, ob die Zielzeit im Stunden-/Minutenbereich unter einem Tag liegt oder die Zielzeit mehr als einen Tag umfasst. Die Dokumentation zu den zu definierenden Parametern für die Hilfsobjekte finden Sie in unserer API-Dokumentation (unter Handbücher im Startmenü von todo4teams).

Hat ein Service-Center beispielsweise Geschäftszeiten von 7:00 - 20:00 Uhr und wird um 19:00 Uhr ein neues Ticket mit einer zugesagten Bearbeitungsdauer von vier Stunden generiert, so kann dieses Ticket frühestens um 10:00 Uhr am nächsten Werktag erledigt werden, da am ersten Tag nur noch eine Stunde übrig ist und am nächsten Tag weitere drei Stunden zur Bearbeitung dieses Tickets nötig sind. Innerhalb der todo4teams-API gibt es verschiedene Methoden, um die Zielzeit innerhalb der Scipts zu E-Mail-, SMS- und Webservice zu berechnen.

1.Zielzeiten im Stunden-/Minutenbereich

Geschäftszeiten von bis
 Montag-Freitag 7:0022:00
 Samstag 8:0016:30
 Sonntag 9:0013:00

Für dieses Service-Center berechnet die folgende Methode die effektiven Zielzeiten, wobei das Hilfsobjekt „helper.getScheduledEndDateByServiceTimes“ benötigt wird. Die Parameter sind:

Die Funktion   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)

Berechnet die geplante Endzeit eines Tickets unter Berücksichtigung des aktuellen Zeitstempels und der durch die Parameter angegebenen effektiven Servicezeiten. Diese Methode hilft zu vermeiden, dass Tickets mit geplanten Endzeiten erstellt werden, die aufgrund von Nachtpausen, Wochenenden usw. nicht erfüllt werden können.

    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

For the concrete example:

// Calculating the effective target time
var effektiveZielzeit = helper.getScheduledEndDateByServiceTimes(
15,            // minute count
7, 0, 22, 0,   // Mo-Fr from 7:00 til 22:00
8, 0, 16, 30,  // Sa from 8:00 til 16:30
9, 0, 13, 0);  // So from 9:00 til 13.00
// Setting the effective target time
task.setScheduledEndDate(effektiveZielzeit);

For the case that the service times differ on Friday from the other working days the effective target times can be calculated with the following method, the helper object "helper.getScheduledEndDateByServiceTimes4" is needed. The parameters:

   Die Funktion 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)

Für den Fall, dass die Servicezeiten am Freitag von den anderen Werktagen abweichen, können die effektiven Sollzeiten mit der folgenden Methode berechnet werden, es wird das Hilfsobjekt „helper.getScheduledEndDateByServiceTimes4“ benötigt. Die Parameter sind dabei:

    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, jedoch mit den gleichen Geschäftszeiten am Freitag wie von Mo-Do:

// Calculating the effective target time
var effektiveZielzeit = helper.getScheduledEndDateByServiceTimes4(
15,             // minute count
7, 0, 22, 0,    // Mo-Do from 7:00 til 22:00
7, 0, 22, 0,    // Friday from 7:00 til 22:00
8, 0, 16, 30,   // Sa from 8:00 til 16:30
9, 0, 13, 0);   // So from 9:00 til 13.00
// Setting the effective target time
task.setScheduledEndDate(effektiveZielzeit);

2. Zielzeiten mi einer Dauer von mehr als einem Tag

In unserem zweiten Beispiel berechnen wir die effektiven Zielzeiten für Tickets, die eine zugesagte Bearbeitungsdauer von zwei Tagen haben. Das Service-Center hat dabei die folgenden Öffnungszeiten;

working hours from to
 Monday-Thursday 8:0016:00
 Friday 8:0012:30
 Saturday closed 
 Sunday closed 

Hier können Sie das Szenario über das Hilfsobjekt „getScheduledEndDay“ mit den folgende Parametern abbilden:

   Die Funktion 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)

Berechnet die geplante Endzeit eines Tickets unter Berücksichtigung des aktuellen Zeitstempels und der durch die Parameter angegebenen effektiven Servicezeiten. Diese Methode hilft zu vermeiden, dass Tickets mit geplanten Endzeiten erstellt werden, die aufgrund von Nachtpausen, Wochenenden usw. nicht erfüllt werden können. Diese Methode ist für Servicezeiten von mehr als einem Werktag zu verwenden:

    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 unser konkretes Beispiel:

// Calculating the effective target time
var effektiveZielzeit = task.setScheduledEndDate(helper.getScheduledEndDay(
     2,   // two days target time
  true,   // Mo-Do is closed
  true,   // Friday is open
 false,   // Saturday is closed
 false,   // Sunday is closed
16,  0,   // Mo-Do the service center closes at 16:00
12, 30,   // Friday the service center closes at 12:30
 0,  0,   // Saturday is closed
 0,  0)); // Sunday is closed
// Setting the effective target time
task.setScheduledEndDate(effektiveZielzeit);

Es gibt weitere Methoden zur Festlegung einer absoluten Zielzeit sowie Varianten der oben genannten Beispiele. Weitere Details sind in der Dokumentation der todo4teams-API aufgeführt.