Die Rufbereitschaftsplanung ist eines der beliebtesten Features in Enterprise Alert und wird gerne und ausgiebig von Nutzern, Team Managern sowie Administratoren genutzt. Allerdings stellen wir in unseren Gesprächen immer wieder fest, dass es nicht mit den 5 Minuten Bereitschaft planen getan ist. Oft hängen noch externe Prozesse an der Bereitschaftsplanung wie die Abrechnung in HR-Systemen von einer einfachen Excel bis hin zu umfassenden Abrechnungssystemen wie SAP. Was dazu führt, dass nochmal ein Vielfaches der Zeit benötigt wird, um die geplanten Schichten auch in Drittsysteme zu übertragen.
Auf Grund der Vielfältigkeit der Drittsysteme und den individuellen Anforderungen eines jeden Kunden gibt es leider nur ein teilweise standardisierbare Schnittstelle in Enterprise Alert. Aber individuell auf den Kunden zugeschnittene Im- und Export Lösungen sind problemlos umsetzbar. Dieser Blogartikel beschreibt daher ein paar grundlegende Ideen und Konzepte dafür.
Export von Bereitschaftszeiten und Dienstplänen
Für den Bereitschaftsexport stehen uns verschiedene Möglichkeiten offen. Die einfachste Variante ist für eine manuelle Abrechnung von Bereitschaften ist sicherlich die Möglichkeit die erstellten Bereitschaftspläne als PDF zu exportieren und sie der HR-Abteilung bereitzustellen.
Sollten sie auf der Suche nach einer automatisierten Lösung sein können Sie hier unsere frei verfügbare Export Lösung finden:
https://github.com/Derdack/derdack-oncall-whoisoncallexport
-- Get all on-call plan IDs (including auto-rotations) -- DECLARE @PeriodStartDate varchar(20) = '2018-01-01 00:00:00'; /* The start date / time of the search period */ DECLARE @PeriodEndDate varchar(20) = '2019-01-01 00:00:00'; /* The end date / time of the search period */ SELECT DISTINCT TeamID, /* ID of the team */ TeamDisplayName, /* Name of the team */ HandOverTime, /* Hand-over time in seconds of the day */ ProfileID, /* Profile ID of the user */ ADRNAME, /* Name of the user */ PROFNAME, /* Username of the user */ r.ShiftStart, /* Start date of the duty */ r.ShiftEnd, /* End date / time of the duty */ cast( dateadd(second,Handovertime, '2000-01-01') as time) HandOverTime_T, r.ShiftOptions, case when r.Hierarchy = 1 then 'Backup' /* Backup (level two) */ when r.Hierarchy = 0 and ((r.ShiftOptions & 2) = 2) then 'Stand-In' /* Stand-In */ when r.Hierarchy >= 2 then 'Escalation' /* Backup of a higher level than two */ else 'Primary' /* Primary */ end as Hierarchy_Type, /* r.Hierarchy, */ ADRMOBILE, /* Mobile phone number of the user */ ADREMAIL, /* Email address of the user */ ADRSIP, /* SIP address of the user */ ADRPHONE, /* Phone number of the user */ ADRPAGER /* Pager address of the user */ /* , OnCallPlans.ID, OnCallPlanUsers.ID */ FROM OnCallPlans INNER JOIN OnCallPlanUsers ON OnCallPlans.ID = OnCallPlanUsers.OnCallPlanID FULL OUTER JOIN OnCallPlanShifts ON (OnCallPlanUsers.ID = OnCallPlanShifts.OnCallPlanUserID) INNER JOIN TeamOnCallPlans ON (OnCallPlans.ID = TeamOnCallPlans.OnCallPlanID) INNER JOIN MMPROFILES ON (OnCallPlanUsers.ProfileID = MMPROFILES.ID) CROSS APPLY dbo.fn_OnCallPlanUserGetDuties(OnCallPlans.ID, OnCallPlanUsers.ID, @PeriodStartDate, @PeriodEndDate, (OnCallPlans.Options & 1), OnCallPlans.HandOverTime, 7) as r WHERE r.Hierarchy <= 1 /* Only display level-two backups */ /* AND TeamDisplayName = 'Support' */ /* Filter for a specific team */ ORDER BY TeamDisplayName ASC;
Dieses Statement erlaubt es ihnen alle existierenden Bereitschaften für einen bestimmten Zeitraum abzufragen. Natürlich lässt sich das Statement auch anpassen sollten Sie beispielsweise die Kontaktdaten nicht benötigen oder wenn Sie teamspezifische Informationen brauchen, in letzteren Fall müssen sie nur die WHERE Bedingung erweitern. Als Hilfestellung dafür haben wir bereits die entsprechende Bedingung eingefügt aber auskommentiert. Üblicherweise werden die resultierenden Daten in verschiedenen Standardformaten wie Excel, CSV oder XML abgelegt um sie so für Drittsysteme wie SAP verarbeitbar zu machen. Einige Kunden nutzen auch die Möglichkeit die Resultate direkt in die Datenbanken ihrer HR-Systeme zu überführen um eine möglichst nahtlose Integration zu erlauben.
Gerne übernehmen auch wir für Sie hier die Anpassung der Anfragen sowie die Aufbereitung der Daten nach ihren Vorgaben in beliebige Formate, sei es nun CSVs, Excel oder direkt in ihre Datenbanken. Auch direkte Integrationen in HR-Systeme wie SAP sind problemlos möglich.
Import von Bereitschaftszeiten und Dienstplänen
Der Bereitschaftsimport ist im Vergleich zum Export eine etwas komplexere Angelegenheit. Da in diesem Fall direkt in die DB, somit auch direkt in die Funktionalität, eingegriffen wird bieten wir hier keine frei verfügbare Schnittstelle an. Wir bieten an dieser Stelle einen standardisierten Implementationsprozess, der es uns erlaubt, in enger Zusammenarbeit mit unseren Kunden, den Bereitschaftsimport zu konfigurieren. Dazu gehören unter anderem Optionen zum Anlegen von Nutzern und Teams, dem setzen von Nutzern auf OnCall, dem Erstellen von Bereitschaftsplänen, dem Anlegen von Schichtplänen und noch vielem mehr.
Üblicherweise beginnen wir diesen Prozess, in dem wir gemeinsam mit dem Kunden definieren, wo und wie wir Daten aus dem Drittsystem abgreifen können und welche Daten mindestens notwendig sind. Mittlerweile immer beliebter wird die Variante uns die Daten in Form einer View bereit zustellen da hier der Kunde die volle Kontrolle über die Datenbereitstellung hat und somit sicherstellen kann, dass alle Regeln der DSGVO Verordnung, insbesondere der Datensparsamkeit, umgesetzt werden können.
Sowie diese hinreichenden Daten (Username, Team, Start und Endzeit der Schicht) zur Verfügung stehen wird durch uns der Import so konfiguriert, dass die User in ihren jeweiligen Teams die korrekten Bereitschaftszeiten, mittels einer eigens dafür entwickelten Komponente, erhalten.
In der Regel werden diese Imports wöchentlich oder täglich aktualisiert, dies erfolgt über ein entsprechendes Scheduling des Importers. Um auch kurzfristige Änderungen abbilden zu können gibt es immer die Möglichkeit eine automatische oder manuelle Aktualisierung zu implementieren. Das können OnDemand Fernaktionen sein, die es einen User erlauben bei Bedarf eine oder gleich mehrere Schichten für einen Kollegen zu übernehmen, oder aber eine automatisierte Aktualisierung, die von Quellsystem getriggert wird.
Kunden nehmen dieses Angebot gerne an, wenn es im Unternehmen schon gefestigte Prozesse gibt zur Planung von Bereitschaften, zum Beispiel in Fällen HR-Systeme auf eine Vielzahl von Daten zugreift, auf die Enterprise Alert aus Gründen des Datenschutzes keinen Zugriff hat, um zu überprüfen, ob ein Bereitschaftsdienst für den einzelnen Nutzer überhaupt zulässig ist. Oder wenn es um spezielle Anforderungen von Teilbereichen der Nutzerbasis Basis geht, für einen unserer Kunden haben wir diesbezüglich einen Bereitschafts-Punch-In, ähnlich der zuvor erwähnten manuellen Bereitschaftsübernahme, konfiguriert der sicherstellt, dass die Bereitschaft nur dann enden kann, wenn eine weitere Person bereits angemeldet ist. Diese Funktion ist essenziell da es in diesem Fall um die Sicherheit während des Produktionsprozesses geht.
Zusammenfassung
Enterprise Alert kann nicht nur nahtlos mit ihren Quellsystem integriert werden, um zuverlässige und nachvollziehbare Alarmierungen zu gewährleisten. Enterprise Alert kann auch problemlos in ihre HR-Systeme eingebunden werden, um ihnen den Komfort der Enterprise Alert Bereitschaftsplanung zu bieten und trotzdem alle Daten relevanten zur Abrechnung der Bereitschaft zur Verfügung zu haben. Wichtig ist hier zu entscheiden welches System das Führende sein soll oder ob beide Systeme gleichwertig zu betrachten sind. Der Vorteil eines der beiden Systeme als Führende Instanz zu definieren, um beispielsweise die einfach und komfortabel Drag& Drop Planung in Enterprise Alert zu nutzen, ist eine Lösung die, im Management sowie in der Definition der Prozesse, wesentlich weniger komplex ist. Sollten sie sich entscheiden beide Systeme als gleichwertig zu betrachten muss hier eine klare Definition von Prozessen und Zuständigkeiten stattfinden die Sicherstellt, dass beide System synchron bleiben und änderungen nachvollziehbar bleiben.
Wie können wir Ihnen helfen?
Gibt es Prozesse dieser Art schon bei ihnen? Denken sie darüber nach? Oder haben sie noch Fragen zu diesem Thema? Lassen sie es uns wissen unter support@derdack.com.