Alloy June 2023 Update

This month sees major changes to the Report Builder, new nodes in the Item Form Expressions Builder and a couple of tasty workflow improvements. The update took place during the evening of the 29th June. For a full list of changes in v2.48, please visit the Alloy Changelog.

Report Builder toolbar ⬆️

When editing the layout of a report document, you can select a control to show its properties. However, you'll notice that they've moved from here…

…to up here! 😮

When we first designed the Document Layout Editor, we sought to give you maximum flexibility in customising the document's structure and content. It was therefore possible to set every one of a control's properties dynamically.

After some time and feedback, it became apparent that this was a bit overkill! Turns out, nobody wants to set the margins of a control based on the runtime value of a data source header. They just want to choose a value and move on.

Therefore, we've streamlined control properties by removing this functionality and moving them into a top toolbar, making it much simpler and quicker to configure them to your liking.

Fear not, any existing reports with dynamically set properties will remain unchanged. From now on though, those properties can only be overwritten with constant values (unless you use the API).

Horizontal Repeaters ➡️

In the Document Layout Editor, you can add a Repeater control to a flow document. These look and behave similarly to Vertical stack controls, with any child controls inside being automatically arranged in a vertical formation.

However, depending on the data being repeated, this can lead to unnecessarily long documents with lots of pages, e.g. listing multiple photo attachments.

To address this, Repeaters now inherit the layout properties of any container they're placed in. As a result, a Repeater placed within a Horizontal stack will have its contents arranged horizontally!

You may want to enable the Horizontal stack's Wrap property, to ensure the Repeater's content doesn't go off the page.

Item data source - Item Id header 🆔

In the Report Builder, you can create an Item data source to represent the attributes and properties of a particular item.

Until now, the data source's Item Id header couldn't be compared against other Item IDs, because the stored data was Text type rather than Alloy ID type.

This has now been resolved, meaning you can now do things like use the Item Id header as a parameter within an AQS data source.

For example, to get the attachments of a particular item, you can now create an AQS data source with a query that fetches all Files items whose parent ID matches the Item Id header of the Item data source.

You also have more flexibility when creating Join data sources. For more details, see this previous announcement.

Use dates in item form expressions 📆

Last month, we released the new Item Form Expressions Builder, to help you harness the power of expressions and make your item forms responsive to user input.

We'll be adding more node types over the coming months, to increase the number of data types you can work with and the ways you can manipulate data.

The first of these are the Date and Date Time nodes, which now appear in the list of Literals (fixed values used in one expression), Globals (dynamic values shared across the form's expressions) and Finals (expression outputs).

This means you can now reference the Default Value and Value properties of any Date/DateTime picker controls included on the item form.

You can also reference the current date and time, opening up all kinds of possibilities for expressions that change the behaviour of an item form depending on when it's being filled in!

For example, imagine being able to see when an item was last created/edited when filling out an item form. This can now be achieved by doing the following:

  1. Add a Last Modified Date Time attribute to the design.
  2. Add a Date Time picker control for the attribute to the design's item form.
  3. Create a simple expression:
    1. Add a Date Time global node set to Date Time Now.
    2. Add a Date Time final node.
    3. Link the nodes together.
  4. Set the Value property of the attribute's control to target your expression (and enable the Read Only property for good measure).

Customise workflow email subject ✉️

When editing a workflow, you can add a Message action that sends an email to one or more addresses.

The email's subject line was always Workflow Notification. This wasn't ideal if you received frequent workflow emails, as you couldn't tell them apart without opening them.

Therefore, the Message action now has an optional Subject field, so you can override the default with something more distinct.

Workflow type subtitles 🏷️

When workflows are listed in the Search panel, you can now see whether they are Event, Manual or Scheduled. A nice little convenience boost!

Convert coordinates during export 🌐

In the Data Explorer, you can export the data you're viewing for use outside of Alloy.

If that data contains geometry coordinates, you can now change the Coordinate system from the default WGS84 Lat/Lng to one of three other popular systems.

Efficient syncing on Alloy Mobile ✅

When you create or edit items in Alloy Mobile, it contacts various Alloy API endpoints to fetch and save the necessary data.

As you can see, most of the contacted endpoints were on the Extended Web API, which provided greater functionality at the cost of medium performance.

After months of hard work, we succeeded in reproducing the functionality of the Extended Web API in the higher-performing Web API.

As a result, Alloy Mobile now contacts just one endpoint for all its needs: /api/bulk/generic

This means that syncing is simpler, faster and more reliable than before!