On-call planning is one of the most popular features in Enterprise Alert and is widely used by users, team managers and administrators. However, in our discussions we keep finding that it is not simply done with 5 minutes of planning. Scheduling often depend on external systems. This can range from a simple excel form provided to HR all the way to a comprehensive billing system such as SAP. As a result, it takes a quite a bit of time to transfer the planned shifts to third-party systems.
Due to the diversity of the third-party systems and the individual requirements of each customer, exporting is somewhat limited in the GUI of Enterprise Alert. But individual-specific import and export solutions can be implemented without any problems. This blog article describes a few basic ideas and concepts for this.
Export of On-Call Time and Rosters
There are several options for on-call export. The simplest option for manual billing of readiness is certainly the possibility to export the created standby plans as PDF and to provide them to the HR department.
If you are looking for an automated solution, you can find our freely available export solution here:
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;
This SQL statement checks all existing readiness for a certain period of time. Of course, the statement can also be customized if you do not need the contact details, for example, or if you need team-specific information. In the latter case you only need to extend the WHERE condition. To help do this, we have already inserted the corresponding condition but commented it out. Usually, the resulting data is stored in various standard formats such as Excel, CSV or XML in order to make it workable for third-party systems such as SAP. Some customers also use the possibility to transfer the results directly into the databases of their HR systems to allow the most seamless integration possible.
We are happy to take care of the adaptation of the requests as well as the processing of the data according to your specifications in any format, be it CSVs, Excel or directly into your databases. Direct integrations into HR systems such as SAP are also possible.
Import of On-Call Time and Rosters
On-call import is a somewhat more complex issue compared to exports. Since data is inserted directly into the DB, thus also directly into the functionality, we do not offer a freely available interface here. At this point, we offer a standardized implementation process, which allows us to configure on-call import in close cooperation with our customers. These include options for creating users and teams, putting users on On-Call, creating standby plans, creating shift schedules, and much more.
We usually start this process by working with the customer to define where and how we can access data from the third-party system. In the meantime, the variant is becoming more and more popular to provide us with the data in the form of a view, since here the customer has full control over the data provision and can thus ensure that all rules of the GDPR regulation, in particular data economy, can be implemented. As well as this sufficient data (username, team, start and end time of the shift) are available, the import is configured by us in such a way that the users in their respective teams receive the correct standby times, by means of a specially developed component.
Typically, these imports are updated weekly or daily, which is done through the importer’s scheduling. To be able to reflect even short-term changes, there is always the possibility to implement an automatic or manual update. These can be OnDemand remote actions that allow a user to take one or more shifts for a colleague if necessary, or an automated update that is triggered by the source system. Customers are happy to accept this offer if there are already established processes in the company for planning readiness, for example in cases where HR systems access a large amount of data that Enterprise Alert does not have access to for reasons of data protection, to check whether an on-call service is permissible for the individual user at all. Or when it comes to special requirements of sub-areas of the user base, for one of our customers we have configured a standby punch-in, like the aforementioned manual standby, which ensures that the readiness can only end if another person is already logged in. This function is essential because in this case it is about safety during the production process.
Summary
Enterprise Alert can seamlessly integrate with its source system to ensure reliable and traceable alerts. Enterprise Alert can also be easily integrated into their HR systems to provide them with the convenience of Enterprise Alert on-call planning and still have all relevant data available for billing. It is important to decide which system should be the leader or whether both systems should be considered equally. Defining the advantage of one of the two systems as a leading instance, for example to use the easy and convenient drag-and-drop planning in Enterprise Alert, is a solution that is much less complex in management and in the definition of processes. Should they decide to consider both systems as equivalent, a clear definition of processes and responsibilities must take place here, ensuring that both systems remain in sync and changes remain comprehensible.
How can we help you?
Do you already have processes of this kind? Are you thinking about putting something in place? Let us know at support@derdack.com.