Alloy February 2025 Update
Following previous announcements, this month's update is arriving a little later than usual. The update took place during the evening of the 6th of March. For a full list of changes in v2.68, please visit the Alloy Changelog. The next update is scheduled for the end of March 📆.
On a side note: it's become apparent that subscribers to these announcements haven't been receiving emails for a while! This has now been fixed, so subscribers can expect to be notified of important Alloy announcements going forward 📧.
Custom sizing of report flow documents 📄 📏
In the Report Builder, we've added some advanced settings to flow documents, which give you fine control over how the output is generated.
You can now set the page size of the PDF output, with the ability to specify the height/width as needed. Additionally, you can now override the size of various text elements (e.g. headings, table, paragraph) and margins used in the document layout.
Unique attribute values ❄️
All attributes have a Unique property. If enabled, all item values for that attribute must be different. When creating/editing an item, the attribute won't accept a value that's already stored in the same attribute on another item of the design/interface.
We've updated the method Alloy uses to check if an attribute value is unique. It has become case-insensitive, so values like hello
and HELLO
are now considered the same. Additionally, any non-word characters (anything that isn't a letter, number or underscore) are converted to spaces, so values like check in
and check-in
are now also considered to be the same. This is the same logic used in AQS for the Contains and Starts With comparison nodes.
For performance reasons, the uniqueness check is only performed on the first 512 characters of a value. This is roughly 90 words long, which should be able to accommodate most scenarios.
Improved item forms on mobile 📲
As part of ongoing efforts to make item forms work better in Alloy Mobile, we've made the following improvements.
Please note: item form expressions are not yet available in Alloy Mobile and will go unprocessed if present. Additionally, some of the less common control types aren't supported yet.
Unset default value
All attributes have a Default value property that can automatically populate the attribute with an initial value (which can be changed before saving). On item forms, attribute controls have an Unset default value property that can override this.
When creating an item with an item form on Alloy Mobile, the Unset default value property is now respected. If enabled on an attribute control, the field will now appear empty, instead of displaying the attribute's default value.
Conditional requirements
On designs implementing the Tasks interface, you can tag an attribute as RequiredOnCompletion or RequiredOnCancellation, so it only becomes required when the Status attribute of a task is set accordingly. For example, the Completed Time and Cancelled Time attributes are tagged in this way.
When completing/cancelling a task with an item form on Alloy Mobile, these tags are now respected. If no value is provided for a tagged attribute, or the attribute is absent from the item form, the operation will fail with an error message that explains the situation and lists the affected attribute(s).
Status card filtering
On item forms, Link attribute controls have a Query property that can filter and sort the lookup list of possible item values.
While this is already respected in Alloy Mobile, it now affects the Status card of tasks too. When viewing a task's details, if you use the Status card to change its status, the list of possible values will now be filtered by the same Query set on the corresponding item form control.