Release Notes - 2022. 04. 05.

In the last couple of months, as we were taking our final steps towards going live with Horizon Planner, development was driven by customer feedback even more so than usual. As a result, this release brings a couple of large, customer-requested features as well as a lot of usability improvements and polish.

Show resources from multiple organizations

The most fundamental concept for structuring data in Horizon Planner is called organization. Projects belong to a single organization, activities belong to their parent project’s organization, and so on, all the way to assignments. Resources can be much more flexible: they can be part of several organizations at the same time and can also be easily moved between organizations.

Users can of course have permissions to any number of organizations, but so far, they were restricted to working with only one organization at a time. It meant that all resources must have been available in every organization where they could be needed. This is a usable solution, but we knew from the start that this restriction doesn’t correlate well enough with the typically more flexible working practices of our customers, and as a result it could encourage bad user practices in Horizon Planner.

Naturally, we planned ahead and had a couple of solutions in mind to give users more flexibility. Starting with this release, users who have access to multiple organizations will not only be able to select a primary organization to work with, but also a list of additional organizations where resources should also be accessible from. This way, it will be possible to use resources in organizations where they don’t belong by default – a feature we usually refer to as cross-staffing.

External identifiers

Horizon Planner needs to integrate well with third party systems. This integration is never a single data import. A meaningful integration needs to import and update data regularly to keep all the information in sync. During two consecutive imports we need to be able to identify and associate the business objects in the integrated system to their representation in Horizon Planner, so we always know what data is added, removed or updated.

We solved this challenge by allowing the database to store an arbitrary number of external identifiers for resources, and in this release, we added a much-needed user interface to manage these identifiers. It is possible to define the managed identifiers on an organization-by-organization basis, and you can also make some of them read-only or even hidden from the users. The identifiers are shown on a new card in resource details and in the resource inspector.

These identifiers don’t have to be used for programmatic data import. Users now have the ability to define identifiers for other uses, for example storing certificate IDs this way.

Assignment summary improvements

The assignment summary (that you can access by right clicking a mobilization and selecting show summary) got some more customization options. It can now include selected external identifiers and selected capabilities of the assigned resources in the summary. The external identifiers can be useful to make sure that resources are identified correctly as it is quite possible to have two different employees with the same name. Including selected capabilities can give a more comprehensive picture as well as providing an easy way of double checking whether the assigned resources have the mandatory capabilities.

These new options are part of the summary template, and as such can be changed from organization to organization. Expect the assignment summary to get more attention in the next release as well!

New report generation framework

When we first started working on report generation for the 2021 March release, we made the decision to keep our code as simple as possible until we start receiving more complex requests from our customers. These requests started to arrive early this year, and as we began to analyze them, the development path for our report generation framework became pretty clear.

The first thing we recognized was that the library we used to generate Excel documents will be insufficient in the long term, so we had to replace it. With that out of the way, we started implementing a very flexible, high-level framework that allows us to define spreadsheets dynamically and fetch, fill, and format data efficiently. Finally, we have rewritten and extended all of our reports to make use of this shiny new tooling.

Other features

Technical improvements

This release contains a large number of more technical improvements as we took our last chance to freely break the API before Horizon Planner was used in production. There were also a number of performance improvements behind the scenes. Here is a list of the most notable changes:

UI improvements and bug fixes

As always, we’ll round off the release notes by mentioning some of the smaller changes we’ve made to Horizon Planner.

On the user interface front, we have:

We’ve also worked on security improvements and fixed a few bugs. Among others, we have: