Common XML Issues
On this page is a collection of common issues encountered when writing XML for Zymonic and any known workarounds or caveats to keep in mind.
Conditions on SaveExtras need explicit ConditionCombination
The SaveExtras tag is used on Tables to automatically add the contents within to the definition of that table's auto maintenance process, typically Actions and Conditions are added here for some extra control over the process without making a whole new Process for saving records on the table.
While Conditions can be added this way, there's an oversight in how the auto maintenance process is generated where it adds a ConditionCombination that checks for zz_has_changeable_permission or zz_has_appendable_permission to ensure the user has permissions to change the records.
By default, this automatically generated ConditionCombination won't include any Conditions you define by SaveExtras, but putting your own ConditionCombination within the SaveExtras will merge it with the autogenerated permissions check.
Thus, when adding Conditions via SaveExtras, you MUST also add a ConditionCombination containing those Conditions, even if you only have one Condition or are using the default "[condition1] AND [condition2]" behaviour, otherwise they'll be ignored on the Save transition.
When a tag is removed from the xml (like removing Hidden or ReadOnly tags, instead of just toggling them from True to False) the incremental config build doesn't immediately pick up on this, and the old tags will linger in the System Definition.
Simple workaround is to run a full config build when removing any tags, or (if ensuring it works on an incremental is vital) to keep the tags while negating the old value, where possible.
There's a possibility that in future we'll have it detect missing tags and either do a "smarter" incremental build capable of updating the sysdef correctly, or to have the incremental instead run a full build if it would be required.
See the 25/11/2020 update on SR 91786 for more details.