Scheduling In The 21st Century Is Mobile & Flexible
Today’s world is constantly on the go, and many businesses run 24/7. In this type of competitive environment, and the expectation for many businesses to manage and update their work schedule on a constant basis, you need something that separates you from the competition. In a situation where you may need to check your schedule anywhere and at any time, it is impossible for you to be sitting at a desk in front of your computer monitor. You need something you can do on the go, no matter where you are, and that’s the Celayix Schedule Maker.
No One Should Schedule By Hand Anymore
How time-consuming would it be to have to find a computer or break out your spreadsheet to edit the schedule every time someone cancels or calls in sick at the last minute? It’s just not feasible, especially as a business scales and grows. You need something that allows you to manage your schedule anywhere and anytime, and with our online employee schedule maker that solution is available.
Celayix offers options to create and adjust schedules on your desktop using eTime Xpress in order to save you scheduling time. You can also use the eTime Xpress app on your tablet or mobile phone as well if you are not in front of your computer.
This lets you do things like add shifts, change shifts, delete shifts, and clock your employees in or out if need be, among many other things. So, no matter where you are, you will be able to ensure that you know your employees showed up for their shift or make an adjustment to your employees’ schedule.
Keep Employees & Admin Staff Happy
Employees themselves also need options. Gone are the days where you need to go to a bulletin board or even login to a computer to check when you need to work. In today’s age, checking your schedule or even checking INTO your shift should be as easy as checking your email. And every employee deserves to know how and when their schedule is available in a simple way.
With Celayix Software’s Team Xpress app, employees can login, check their schedules, clock in/out of shifts, and submit time off requests and more. All they need to do is download the free app from their respective app stores. This lets them do all of the schedule or shift related activities right from their phone.
Both the above options make the scheduling solution robust and able to fit into many different types of business models.
Have a situation where you want employees to clock in at a PC on site? Would you rather have your employees use their mobile phone and check in that way? Maybe you don’t want your employees to clock in at all and would prefer them to call a supervisor and have the supervisor control the clock in? Or would you rather some combination of all those?
Solve Your Scheduling Issues All At Once
The Celayix solution allows for that as well. Aside from the few possible workflows mentioned above, Celayix’s scheduling solution is robust enough that it can be customized to suit your company’s needs and save you scheduling time. If you would like to learn more about each feature of our online schedule maker, simply continue reading:
Are you tired of spending hours scheduling your employees, only to find out that one has slipped through the net and doesn’t have the correct skills to work the shift, or their Safe Food Certificate has expired, or they are restricted from working at a certain location, or they have gone into overtime costing your business money?
Well, fear not, because Celayix is here to help. With our online schedule maker, we give you the ability to apply rules to ensure that the employees with the correct skills and access get scheduled to the correct shifts; and if by chance the employee is scheduled incorrectly, the system will warn you.
Within our online employee scheduling maker, you can set up Overtime (OT) rules on daily, weekly or monthly bases, which have multiple benefits. Firstly, if the employee has accidentally or purposely been scheduled into a shift that takes them into OT then the system will indicate this to the scheduler by changing the colour of the shift(s) to red. Only the shifts that cause OT will change red, this instantly brings the shift(s) to the attention of the scheduler and they can make an informed decision whether they want to keep the employee in the shift or find someone else, this can result in massive cost savings to a business.
Another benefit for using this rule is that it prevents employees scheduling themselves into Self Scheduling shifts that would take them into OT. If the rule has been applied then any shifts which would result in OT will not even appear to the employee ensuring that unnecessary OT does not occur.
These types of rules are flexible and can be extremely helpful in ensuring that the employees on the schedule can do the work and all have the correct skills. Your business may have a legal or contractual requirement to provide staff members that have the necessary certificates. If this is the case, then these types of rules will be gold dust as they allow you to record an effective date and an expiry date. The benefit for this is that it enables the scheduler/supervisor to be proactive and run reports to see when qualifications/certificates are due to expire, allowing them time to inform the employee that they need to renew their certificate by a certain date if they want to continue to get assigned shifts.
If an employee is scheduled and they do not have the necessary qualification, or that qualification has expired, then the scheduler will be promoted with a warning message when they go to save the shift(s). The message will inform them which shift has failed and why. This allows the scheduler the option of updating the employee’s record with the correct qualification, changing the employee or ignoring the message and scheduling the original employee.
Minimum Rest Period
You may work in a business where there is a requirement for there to be a certain amount of time between when one shift ends and when the next shift begins. If this sounds like your business, then this is the rule for you. This rule allows you to set a minimum rest period between shifts; for example, if the minimum rest period was set to 5 hours and an employee’s shift finished at 5pm, they would not be able to be assigned to another shift until 10pm. If the scheduler did mistakenly assigned them to a shift between these times, the system would warn them and prevent them from saving the shift.
This is another rule with a lot of flexibility, as it can be used in a variety of ways. A few examples is that it can be used to restrict one or a group of employees from being scheduled to a certain service, location or site, as well as other criteria. It can also be used to restrict what services are displayed when selecting a customer or a site. These are just two areas, but this rule can be used in many other areas as well.
Automatic Daylight Time Adjustment
The Celayix cloud servers will adjust their time automatically.
For eTime Xpress users, this has the following effects:
- eTime Xpress, Voice Xpress, Web Xpress and the mobile app will adjust their time automatically.
- You may have a policy of paying employees for the extra hour when they work through 2:00 AM on Sunday. E.g. pay 9 hours on what would normally be an 8-hour shift. In that case, make sure that 11/06/2016 is included in the Branch Daylight Saving Time settings in the Branch Configuration. If you do Not pay the extra hour, then do Not put an entry in the table.
- Note that if you pay the extra hour, then there may overtime when you don’t usually expect it. E.g., paying 41 hours in a 40-hour week.
- Hardware clocks such as Trax, ZK and HandPunch each have their own way of dealing with the time change. ZK clocks are configured to change automatically. Trax and HandPunch devices may require you to change the time. Contact us if you need assistance with this.
- If you have installed eTime Xpress on your own servers (on-premise installation) then you will need to ensure that your system updates the time correctly.
Voice Xpress allows employees to perform clock functions where an internet or cell connection is not readily available. Companies that are using the system can ensure that employees have arrived or left on time, performed their safety checks, and are taking their breaks. Ideally, employees would use their own phones, but in the cases where cellular reception is not available, a landline telephone can also be installed and used.
In the previous version of Voice Xpress, the menu structure was quite complex. It also was not context sensitive meaning that employees who dialed in would have to listen to menu options that would no longer apply, costing them valuable time. An example of this would be if the employee had already clocked-in, the option to clock in would still be available. In the new Voice Xpress, the menu is context sensitive with employees only being presented with the menu options that are applicable to them. Going back to the previous example, an employee who has already checked in will be presented with the options to start break (end break once they have started their break), perform a safety check, or clock out. This makes it quicker for the employee to perform the action they need to take without having to listen to menu choices that are not applicable.
Where an internet connection is readily available, the better option for your business might be to use Team Xpress, an app based employee portal, which includes the features available in Voice Xpress and also includes features that are not available in Voice Xpress.
Where a reliable internet connection is not available, Voice Xpress is available now as an add-on to the Celayix platform.
The new Voice Xpress has also incorporated new technologies involving the move to the Amazon Web Services (AWS) cloud computing platform, use of text-to-speech Plivo technology, better logging system, and a simplified menu structure.
Previously, Voice Xpress infrastructure required high maintenance overheads stemming from physical server, associated hardware and networking architecture. As cloud providers have progressed to improve their flexible, cost-effective, reliable, scalable and secure services, Celayix made a decision to remove the dependencies and overheads by moving Voice Xpress infrastructure to AWS.
The migration involves a re-write of the Voice Xpress code with Plivo technology. With Plivo’s text-to-speech engine, we replaced pre-recorded audio files by dynamic messages for customized greeting messages and schedule publishing features. Additionally, Plivo allows the new Voice Xpress to support multiple languages including English, French and Spanish.
With the simplified menu structure, the new Voice Xpress allows for easier and quicker access. Employees can check-in/out, start/end break, and perform a safety check for their shifts. They can also create an unscheduled shift and listen to upcoming shifts with the option of entering a specific date.
The previous version of Voice Xpress ran on a number of agents, and each agent has its own log file to keep track of the actions that have occurred. This was difficult because everything, including the system messages and debugging messages, is stored in these log files. Sometimes, it could be difficult to extract information from the log files because one needs to first locate the file that contains the call in question and then filter out the relevant information. Needless to say, it can be a time-consuming process. However, after moving Voice Xpress to AWS Cloud, all the logs are kept on AWS Cloudwatch, and the subset of it is stored on AWS SimpleDB, a simple database storage. The advantage of storing the logs in the SimpleDB is for quicker lookup and easier to read the logs.
Voice Xpress is a good option for clients who have their employees to check-in/out of their shifts using phones, or for users who are less comfortable with technology. This is especially convenient for remote workforces. With the upgraded Voice Xpress, Celayix is providing our clients with a better and user-friendly phone solution for shift attendance.
User Design For Voice Xpress
Unlike most web and mobile applications, Voice Xpress interacts with the users by voice instead of a screen, requiring the user design to be more explicit and user-friendly.
Voice Xpress has the option to allow employees to listen to their upcoming schedule. They have the option to listen to the next upcoming shift or listen to a shift starting from a specific date. If there is an upcoming shift, the system will play the date, time, and place of the shift. The user can then keep listening to the next shift until there are no more shifts or go back to the main menu.
When choosing the option for date entry, the system only takes 4 digits – 2 digits for the month and 2 digits for the date and all entries are assumed to be in the future. For example, if today is March 28, 2017 and the user enters Feb 20 (0220) the system will look up the shift schedule starting for Feb 20, 2018.
An interesting discussion came up when designing the workflow for listening to the schedule from a specific date. There were multiple suggestions on how to handle the case for an invalid date:
- The traditional way – Inform the user the date is invalid and request a valid 4 digit date
- Autocorrect – Automatically correct the date to last day of the month. If the invalid date is Feb 30, the system will auto correct it to the last day of the month ie. Feb 28 or Feb 29 depending if it’s a leap year.
- Let the user know there’s no upcoming shift on that day without saying it’s an invalid date.
The discussion heavily revolved around suggestion 2 as it was a novel way to handle invalid date. The idea is similar to spelling autocorrect, but the difference is the user can make the active decision by looking at the screen. The invalid date autocorrect not only saves the user the effort of figuring out the last day of the month and leap year scenarios, but also removes a second input requirement from the user.
The downside is that if the auto corrected date is different than what the user expected, then the user might think it’s an error caused by the system. For example, if the user meant to enter July 31 but instead entered Apr 31 the system will correct it to Apr 30. To re-enter the correct date, the user would need to wait until the system finishes playing a shift then go back to the main menu and go through all the steps again. Also, without any notification about the invalid date, the user may assume the input is correct and get confused by the system changing the date.
To solve the above issues, another suggestion was to inform the user about the date correction and let the user confirm the change. If the autocorrect is not what the user wants, he/she can re-enter the date. However, this complicates the workflow, lengthens the time to get to the correct date and creates an extra step for the user compared to the traditional method.
In the end, we compromised on the traditional method of informing the user the date is invalid and requesting a new input. It’s always a challenge to achieve a good UX design, especially for Voice Xpress which has no graphical user interface. At the Celayix development team, we go the extra mile to streamline user experience by analyzing different scenarios and behavioral psychology to create the best end product.
Real Time Communication
In the world of shift based employment, communication is essential to scheduling employees in order to ensure both the employees are able to work their scheduled times, and the company is not short of any workers at any given time.
Also, more often than not, lack of communication will cause confusion between employees and conflict between employees and supervisors, which in the worst case will lead to toxic work environments.
One thing that did not exist in previous versions of our product was real-time communication between an employee and their supervisor. Whether an employee is late checking in for a shift or sending in a time off request, real-time communication is always readily available through the chat module.
Through this, communication between any employees in a company is enabled without the need for sharing any additional contact information and eliminates the need for any third party applications. It can sometimes be difficult for a supervisor to get a hold of their employees with ever growing contact lists of personal and professional contacts.
Any scheduling related issues can be discussed, as the module is conveniently designed for a user to have access to the scheduling information at the same time as the conversation. Through this, a company’s scheduling needs and employee communication is encompassed in one application. Push notifications, which will enable notifications on devices to be received even if the application is closed, will ensure that important messages from supervisor to employee and vice versa will not be missed.
Software Test Automation
At Celayix, we spend a great deal of time and effort to assure our clients get the best product possible that meets the highest quality standards. New modules and features are being created, added, and enhanced by our agile development teams daily.
To make sure that the entire system keeps working as expected, the QA team steps in and executes regression tests. These tests are verifying that each and every single module complies with the acceptance criteria and that nothing has been broken during the latest updates and deployments.
Even the most conscientious tester might make mistakes during monotonous manual testing. Therefore, in order for the QA engineers to focus more on the most important exploratory testing, carefully observing results while making multiple evaluations against the requirement specifications, the repetitive extensive time-consuming regression tests need to be replaced by test automation.
Some of the test automation benefits are:
- Cost – Expenses might be notably reduced in the long run, compared to the same work done by manual testers, even though an initial investment is required
- Reliability – Machines can execute the same tests over and over, not cutting corners, providing the best coverage possible
- Time saver – Critical issues might be found in the earlier stages of software development
- Test execution 24/7 – Tests might be executed remotely or automatically within specified pre-set time intervals
- Reusability – Scripts might be reused again in the future.
That is why at Celayix, we are working on implementing automated test scripts. Test automation gives us the possibility to perform the mentioned above routine tests quickly, efficiently and repeatedly, keeping the product at the highest levels of quality. Although automated checks cannot replace manual human testing, they are still a great addition, allowing an end to worrying about the existing functionality and potential issues that might be introduced into the system with each new update or a code change.
As part of the test automation framework, we are developing the continuous testing approach that allows us to obtain immediate feedback on the risks related to the software release candidate.
Automated software testing is an essential component of successful development projects assisting with manual testing.
For a supervisor, it may be very difficult to keep full control over his employees and their schedule, especially when he has many of them. He wants to quickly search for list of just his employees, see if they are checked in, and take appropriate actions if needed.
For this purpose, we’ve decided to create Time Xpress app to satisfy all the needs of a supervisor. Creating such an app comes with technical challenges that require proper solutions. We are working with up to thousands of employees for a single customer.
The app needs to be able so show all the employees, filter them by various criteria, and display the information in useful way. Because of big data, we need to show information in reasonably sized batches. We need various filters for standard type data such as date fields, time fields, date time fields, numbers, strings, Boolean or even special types such as statuses.
We also need flexibility in custom templates of table cells to format all data types in our way – many date and time formats, statuses. Additionally, supervisors need to do their work with a user-friendly, intuitive and standard desktop interface, as well as an optimized mobile interface.
Implementation of components that would fit all these needs would include architectural decisions, implementation, testing and QA that would take months of work and a huge budget. Also, you need to support various mobile and desktop browsers, update and maintain your library. For this reason, we’ve decided to implement a best fitting third-party framework.
After deep discussions, analysis of frameworks, and creating prototypes, we’ve found that Kendo-UI fits our needs the best. Our Time Xpress app is designed specifically for supervisors, so we decided to use the Kendo Grid. It is stable, well maintained, and supported framework providing many various components, themes, and a consistent mobile experience across many platforms.
With the decision to implement this third-party framework, we saved many months’ worth of development and QA work. With this tool, we are able to focus on incorporating new features in our products which helps us make scheduling even easier for our clients.
SOAP Integration with Other ERP Systems
Nowadays, any software solution SHOULD have an ability to be integrated with other software. Here, at Celayix, we have a few different ways we integrate our business solution with other ERP systems from HR software, payroll software and more.
The different forms of integration can be broken down by complexity. The simplest integration does not require development resources and can be done immediately by export/import data. For example, through pre-defined templates, important payroll data can be transferred to the payroll or accounting solution of your choice through a simple export/import. We use these pre-built templates to transfer data to many popular ERP systems.
But what to do when you have a complex workflow/mapping/rules that need to be integrated at a program level? In this case, your software needs to have an ability to communicate by Web Services. When building web services, you can go two common ways: SOAP and REST.
REST vs. SOAP
Most people choose the path of least resistance, which is REST. This means simplicity, ease of development, using HTTP the way it’s meant to be used, make good use of cache proxies, more human readable results, etc.
SOAP, on the other end, is more heavyweight than REST and is also backed up by a large set of specifications. Both approaches work for the majority of complicated integrations, but both also come with different sets of advantages and disadvantages. Based on different requirements, we provide our customers with both solutions.
SOAP API Integration
One of the most popular integrations forms we use here at Celayix is SOAP API (application program interface) integration. For the remainder of this blog, we will go into more details of the advantages of this integration and how we offer a unique solution to complex integrations.
Here at Celayix, we provide an eTime Xpress Web Services SOAP API which includes 80+ operations to create a full featured interface to the eTime Xpress business logic. In other words, with this API, a developer can build applications that read, create, update and delete eTime information objects such as employees, customers, sites, services and shifts as well as execute eTime Xpress functions like employee availability. This opens up the potential for many different types of integration.
Our implementation is based on Progress Solution for this industry standard.
These are the steps for accessing a Progress 4GL Web Service:
Progress 4GL Web Services can be accessed by any Web Service consumer that follows the common standards including WSDL and SOAP. For this example, the Web service consumer is treated as a ‘black box’. Request SOAP / Response SOAP over HTTP message workflow is:
1) The request is sent by the web service consumer as an HTTP POST.
2) The Web Server is listening for HTTP messages and receives the message request from the Web service client.
3) The WSA Servlet that is running in the JSE, on the Web Server, processes the message
* The SOAP message is taken out of the HTTP message and processed by the SOAP Processor.
* The SOAP processor converts the message into the format for the AppServer
4) The message is sent from the Web Server to the AppServer. The WSAD is used to locate the AppServer. The AppServer then receives the message and the ABL program is run based on what is specified in the message.
5) After the processing is complete on the AppServer the message is sent back along the same path to the WSA Servlet.
6) The WSA Servlet uses the SOAP Processor to change the response back into a SOAP message.
7) The SOAP message is included in a HTTP message and is sent by the Web Server back to the Web service consumer.
After this process is completed, the message is sent back using a HTTP Response completing the request/response transaction.
Time cards in our Team Xpress application offer a way for employees to review changes to their working schedule, which includes modifications to time off requests and worked shift details. Once an employee has checked in and out of a shift, the changes are recorded, and these records can be viewed through the module. This allows employees to easily confirm that their working hours are correct, and in line with the schedule.
The user can view their weekly shift details in a view that shows their totals for every type of worked hours their shifts correspond to, including time off requested for the week. The employee can switch between weeks to view their totals, allowing users to easily find the records they are looking for. For details of the working week, the employee will be able switch tabs from the ‘total’ to ‘time cards.’
This allows users to view their records according to every shift or time off record, sorted according to the day of the week. Here, for every record, users can confirm whether or not their worked shift is correctly recorded. From here, if a record is incorrect according to the employee, the supervisor can take action accordingly. However, once a user has selected an option, this cannot be changed to prevent a supervisor from taking action based on an incorrect confirmation.
From the daily view, by selecting a record, an employee can then view individual records corresponding to the week. For shifts, it will display all of the details of the shift, including the status of the shift, whether it is worked or not, location, and the start and end times of the shift. Below, the employee can also view the type of hours worked, like overtime hours and training hours. For time off records, the employee can view the details of the record and from here can determine whether the record has been approved.
After understanding the basics of a relational database, we can now dive into what NoSQL is about and why the trend is moving towards this technology.
The business world is undergoing massive change as industry after industry shifts to the Digital Economy. It’s an economy powered by the Internet and other 21st century technologies – the cloud, mobile, social media, and big data.
At the heart of every Digital Economy business are its web, mobile, and Internet of Things (IoT) applications. They’re the primary way companies interact with customers today, and how companies run more and more of their business.
The experience that companies deliver via apps largely determines how satisfied and how loyal customers will be.
How are the web applications like Team Xpress, Time Xpress, and Schedule Xpress different from enterprise applications like Etime Application? These web/mobile applications share one or more (if not all) of the following characteristics. They need to:
-Support large numbers of concurrent users (tens of thousands, perhaps millions)
-Deliver highly responsive experiences to a globally distributed base of users
-Be always available – no downtime
-Handle semi- and unstructured data
-Rapidly adapt to changing requirements with frequent updates and new features
One may wonder why relational databases fall short of these requirements. Relational databases were born in the era of mainframes and business applications. They were designed to run on a single server, the bigger, the better.
The only way to increase the capacity and demands of these databases was to upgrade the servers (processors, memory, and storage), in another word scaling up. This process can become expensive as the number of users increases and the demands of the application changes.
To be continuously successful, speed and agility in developing software application is critical. The traditional relational database has become somewhat a roadblock due to the fixed data model.
One of the advantages of NoSQL offers is the flexibility for faster development. Often, when a requirement changes, the data model often changes, and to do a data schema change is a time-consuming process and may involve database administrators. This not only slows down development speed, it may also impact other application and services.
By comparison, a NoSQL document database fully supports agile development, because it is schema-less and does not statically define how the data must be modeled. Instead, it defers to the applications and services, and thus to the developers as to how data should be modeled. With NoSQL, the data model is defined by the application model.
Server Less Data Storage with DynamoDB
DynamoDB is one of Amazon Web Services’ primary database services. It is a NoSQL database that is designed to be highly efficient without using traditional server technology. Instead, it uses cloud-based server technology that dynamically allocates only just enough computing resources to handle its tasks at any given moment.
It is also distributed across multiple physical locations, so the risk of data loss or service outages is extremely low. These features allow it to be highly scalable for small or large volumes of data usage, which makes it an excellent tool for many business applications.
At Celayix, we are moving towards using more serverless technologies for our products. DynamoDB is one of the tools we have chosen for some of our new features, such as the Labour Forecasting Tool. In order to provide a seamless scheduling experience for our users, we needed to use DynamoDB as efficiently as possible.
One way we do this is by deploying our serverless resources in multiple AWS regions. Although serverless resources are distributed in the cloud, users get better performance when accessing resources that are geographically closer to them. AWS has regions all over the world, and so far, we have deployed resources to their Oregon and Virginia regions to best serve our west and east coast American customers.
Another thing that affects DynamoDB table performance is activity distribution. DynamoDB tables automatically sort its data into partitions, and each partition can only handle a certain amount of activity at one time. However, our customers’ data must be private, so we assign all of their data a partition key so that their employees can only see data from their own company.
Unfortunately, this means that for any given customer, all usage activity is limited to one partition of the databases, which would cause the users experience to become slower the more data they accumulate and the more they use our online schedule maker.
To combat this issue, we trick DynamoDB into using multiple partitions to store data for a given partition key. To do this, we append a random number to the end of the partition key and store that number elsewhere in the data item. We use a random number from 1-16, which allows the data for any given user to be stored in up to 16 different partitions. This means that even if a user requires a very large amount of activity at one time, that activity is distributed across the 16 partitions allowing the database to respond very efficiently without any single partition getting bogged down.
When users are handling single items, for example modifying an event in the Labour Forecasting Tool, this does not significantly change how we access the data. The only modification required is to append the random number associated with the item to the user’s partition key when operating on the item. When dealing with groups of items, like when the user wants a list of all events on a certain day, we run into a small issue.
The user’s data is distributed into 16 different partitions and we need to check all of them for data that matches the user’s search criteria. DynamoDB unfortunately does not allow a single query operation to search multiple partitions, but instead we can asynchronously query each of the 16 partitions and aggregate that data before sending it back to the user. Because all of these queries are potentially accessing different partitions, there should be no bottlenecking and all queries will be completed quickly allowing us to maintain our performance expectations.
In fact, one of Celayix’s new scheduling features, Labor Forecasting, is implemented on the AWS platform. Most of the business logic is carried out using AWS Lambda Functions, while the event planning data are stored in DynamoDB. Before discussing what or how the data is stored in DynamoDB, one should look at how DynamoDB is different from traditional relational database.
Amazon DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale. It is a fully managed cloud database and supports both document and key-value store models.
What the definition implies is that DynamoDB is a model where each data entry is a document that contains all the information describing the data entry. Using a typical Sales Order record as an example, in DynamoDB, the data entry would contain information like Order number, Order date, and entries of items bought, and it would also contains customer name, address, phone number and other customer information. In traditional relational database design, one would have a table storing all the sale order’s information and another for all the customer information.
The two tables would be “related” by a key field. In most cases, this field would be a customer id field in the sales order table. The reason for having all the data stored under one single document design is that the retrieval of data is very efficient and fast. The data query process doesn’t need to go to different tables to pull all the required information for the user. However, this efficiency comes at a price.
If the customer has decided to update his/her information, such as billing address or contact information, the customer information in the previous orders under this document-style database would be out of sync. A process would have to be put in place to “update” these data inconsistencies. In the case of Celayix’s labor forecasting feature, the data contain information such as customer, location, services from Progress Database. In order to keep the data in sync within a relatively short time frame, two Amazon services are used: CloudWatch and Simple Messaging System. Whenever a data update is applied to customer, location, or service table, Progress will make a connection to Simple Messaging System(SMS) on AWS platform and leave a message in one of the “message box” designated for this data replication process. At the same time, CloudWatch will wake up a process every few minute to check the “message box” to see if there are any more new messages. If there is one, the process will activate the Lambda Function to update all the related DynamoDB tables.
There are several ways in Schedule Xpress to quickly create a schedule: copy/paste shifts, using multiple copy/replace functionality, etc. But if you want to create a schedule based on a template and use your templates more than once to create different types of schedule, the Shift Templates feature is the best choice.
Every shift template has three main properties: name (mandatory), description, and set of shifts. Users can create shift templates based on selected shifts, or just with empty shift configurations. Users can also create as many templates as they desire for different types of schedules: several templates can be used for weekly, monthly, daily, or a custom time range.
Shifts in templates don’t have exact dates, we convert shift dates to shift date offsets. Operating with date offsets in shift templates gives the user additional flexibility. For example, to create weekly schedule: 1 shift on Monday, 2 shifts on Wednesday, and 1 shift on Saturday can be presented in terms of date offsets: Monday (offset = 0), Wednesday (offset = 2) and Saturday has offset = 5.
After creating the initial shift template, users have the ability to see the shifts presentation in a grid and can also modify the template: name, description can be easily changed as long as the set of shifts can be easily modified: users can delete, add, or edit shift details in the shift template using shift edit form, similar to the form in the main scheduler view.
To paste a template on schedule view in run-time, users should select the template and select the starting date which will correspond to date offset = 0. Dates will be assigned to shifts based on shifts date offset and selected start time. If the shift template includes some shifts which were worked, locked, etc., Schedule Xpress doesn’t save these additional parameters of shifts in shift templates, so when you paste a template into scheduler view, all shifts will be converted to usual scheduled shifts.