All Redeclarable types are allowed at the top level to allow the document author to organise their documents - in many cases if an element is being reused in multiple places it makes more sense to declare it at a higher level.
Adding items to this element that do not have a ZName will require modifications of SystemDefinition.
The time, in ms, to delay before triggering a key event. Only applies to key events. If not set then value of SystemOption 'JSValidationEventDelay' will be used. If that is not set defaults to 500ms.
Allows multiple where clauses to be attached to this query. Usually not needed, but if grouping function needed add them in their own Where. If where clause is using aggregates it will become a "HAVING" clause and in this case you need to ensure that the fields in the having are qualified as ZZq.[field_zname, from select element]
May include a zname within square brackets, e.g. [zname], and it will evaluated to its field name.
Used to get dynamic params for the WhereClause. Use sequence attributes to order.
The Param Other on DBCondition is used to fill the host parameter(s) of the WhereClause, if 'user' is selected then the user will be inserted into the SQL query, whereas if 'process' is selected then the process ID will be used.
Looks up the SystemOption using Name. If not set then uses Default value.
The Page Element defines a 'Page' in the user interface; pages can be considered as virtual desktops or workspaces - they are generally used to group together similar activities. Pages will retain their state for each user in between sessions. Pages are formed from a Layout (which is reusable) which has Locations which then contain blocks, a block then contains either of the 2 fundamental building blocks of Zymonic; a Process or a Filter. The Preferred attribute defines which page a user will see if they do not select a page (lowest integer is used) and also the order in which pages appear in the menu.
A Layout defines what Locations are available to place blocks in and for the CSS author to manipulate. The DefaultLocation is used when FilterActions are set to open in the Default Location.
which location in this Layout is the default, i.e. is the default for opening blocks.
Name of the locations in this Layout.
Set the XSL to be used to process the output for this layout. Will default to config settings if not set.
Should this page show for users who are not logged in?
Optional target for the link, e.g. _blank.
Role Permissions added here will be applied to the zz_pages table as an access permission to this Page. When there are no Role Permissions on a page then access is allowed for any authenticated user (or unauthernticated if Public flag is set).
Preferred
Used to order the pages in the page menu.
Should this page be hidden from the page menu?
A Block defines a section of a page, it can contain either a filter or a process. the TargetLocation is used for FilterActions that open new blocks.
Which location in the container Page's Layout should this Block appear in.
Which location in the container Page's Layout should Blocks created from this Block be placed in.
The Filter to display in this Block.
The Process to display in this Block.
Setting to true, removes the close block button, and so prevents the user from being able to close the block. Defaults to false.
Process is the fundamental building block of Zymonic - it allows Zymonic to guide, inform and track a real world process. This does by necessity limit the actions of a user to those that fit within the specified business process. Zymonic can be used to create free-form data capture and reporting systems with only 'maintenance' processes, but there are better tools for doing that job - at least currently (21.10.2010). The core features of the process are the states (where information is captured and/or displayed) and transitions where the movement between states is controlled and where actions (reports, updates to data etc.) can be triggered. The initial state specifies which state new processes should have on creation.
Field to put in RESTFUL URIs - format should be table.field and the lookup should only ever return one result. If not set the parent process id of the process will be used.
Flag to signify whether this Process should show link to scheduling process. If you set this flag you must make sure your Zymonic System includes the scheduler module.
The numerical order in which the Process is displayed in a FoFaP. Defaults to alphabetical order otherwise.
If set, in GUI, will show a button in the block header which pops up the transition history for the process.
If not used then access permissions on Process will be determined by permission on its initial state form's table. Set RelationshipPermissions here to override those. If no RelationshipPermissions here then other permissions, e.g. changeable, will be assumed to be true on this process. If RelationshipPermissions present then all other permissions on process will be assumed to be false and each permission should be set in the XML.
Boolean option to determine whether deleted records should show in this process.
When process permissions indicate it is readonly then all transitions on the process will be ignored. Set this to true if you want a simple save transition to show, circular on current state.
When set a PDF Report transition will be added to each state in this process, showing in the block menu. Running this transition will generate a PDF report of the current state. Defaults to true if not set, set to false to disable for a Process.
Describes how the contents of an incoming message, e.g., email should be assigned to forms within the process.
Override the system option "store_states_on_transition_history" for transitions in this process.
Override the system option "store_field_changes_on_transition_history" for transitions in this process.
Override the system option "store_action_results_on_transition_history" for transitions in this process.
Show help on field focus (not just on hover and touch devices).
Describes how parts of the message will be mapped on to the main form.
The ZName of the field to put the message part into. If assigning an attachment or a subform field then the name of the field will be two part [subform field zname].[field zname].
The part of the message to put in the field e.g. from, to, subject
Only uses this message part map on a new process.
Hide In Menu
If set then this process will not show in any menus.
Used to hide internally used processes from menus.
If true then this Process will not show in any Menus.
Hide In Menu
If set then this filter will not show in any menus.
Used to hide internally used filters from menus.
If true then this Filter will not show in any Menus.
The State is, usually, where information is captured (on a Form) about the current 'state' of the process; this information is then stored for reporting purposes and for testing which Transitions are allowed.
A state with no form is either a 'transitory' state i.e. one in which nothing happens, but still allows the user a choice of 'next actions' or a completion of the process.
Allow suspend means a button will appear on the block that allows the user to save the data as entered on the current form, without causing a transition to occur.
AllowAbandon means a button will appear on the block that allows the user to abandon the process effectively 'deleting' it - deletion will not remove all trace since the history may well remain.
The combination of conditions to use when determining if the process can advance to this State. Conditions are referenced by "Clause[zname_of_condition]" and can be combined with "and"/"or" (these are case sensitive and should be lower-case) between conditions, as well as use of brackets and "!" to negate a condition, as this expression is ran via Perl's "eval" function. If no ConditionCombination is set, typically the conditions are automatically combined using "and". NOTE: this element does NOT use the same syntax, capitalisation as the ConditionCombination tags used on Filters despite sharing the same name.
Used to specify a Form to use to display a popup from the current State. If used a link will be added to the State which will pop up a new window for the same State using a different Form. Set DisplayName in this to configre the text in the link.
When set a PDF Report transition will be added to this state, showing in the block menu. Running this transition will generate a PDF report of the current state.
Preferred
The preferred order of states. Use for Conditional StateAfterTransitions to determine which state is used.
Causes the transition to keep the process at the same state and thus ALL ELEMENTS INSIDE THE STATE ARE IGNORED.
The Form to use in the pop up.
XSL to use in the popup.
A Transition links States - the Conditions on a Transition determines whether a user can move between states and the Actions on a Transition determine what will happen when a user does move between states.
Where a form is filled from a filter (particularly when a multi-record form) this setting will determine whether records that have not been modified by the user will still get written.
The combination of conditions to use when determining if the Transition can be ran or not. Conditions are referenced by "Clause[zname_of_condition]" and can be combined with "and"/"or" (these are case sensitive and should be lower-case) between conditions, as well as use of brackets and "!" to negate a condition, as this expression is ran via Perl's "eval" function. If no ConditionCombination is set, typically the conditions are automatically combined using "and". NOTE: this element does NOT use the same syntax, capitalisation as the ConditionCombination tags used on Filters despite sharing the same name.
On successful Transition, this map will map values from either previous state form (SourceField) or an ActionValue (from an Action in that Transition) to a field on the next state form (Destination Field). Default ActionValues include: success, condition_passed.
Prevents the transition from doing any validations e.g. a cancel or delete transition.
true
Flag, will try and add placeholders on saving. i.e. save adds un-added subforms
Forces the transition to always do validations.
Field on the form to store the ID of the transition history record. Will be set each time this transition is run.
What to do if this Transition is run twice: ignore means ignore it and show result as if called for first time; warning is same as ignore expect will show a message to the user, defined by RepeatMessage; error means it witll through an error and not show any reults.
Error message to show when RepeatBehaviour is warning or error. If not set then default to '[[transition]] has already succeeded, this attempt has been ignored.'
Message to display when transition fails, defaults to "[[display name]] failed". The values of the 'desired_value', the 'actual_value' and the 'display_name' can be substituted into the message by wrapping them in [[]] e.g. [[actual_value]]
Message to display when transition succeeds, defaults to "[[display name]] succeeded". The values of the 'desired_value', the 'actual_value' and the 'display_name' can be substituted into the message by wrapping them in [[]] e.g. [[actual_value]]
CSS class to add to the HTML of the button used for the transition.
Preferred display sequence for the transition.
Set to znames of conditions which should have their fail messages shown on transition failure. This overrides the ShowFailMessage setting on Condition.
When using afterNext Actions the next state in a transition may be loaded before saving, in order to acquire locks. When this is done, on moving to the next state, after save, the next state's form will be reloaded to ensure it is up to date after the save. Set this flag to 'true' to skip this reloading, if you are confident that the data from before the save to after the save will not changed, or any changes will not affect the afterNext Actions.
Should be set to a form zname, can have multiple. Then after running all actions those form records will be fetched again from the DB. Only needed if the transition has actions which change the data shown on the form.
Set this to true if you wish the condition to be ignored if the desired value evaluates to false (that is 0 or an empty string), for example, where not setting a system option should cause a limit to be ignored.
Set this to true if you wish the condition to be ignored if the actual value evaluates to false (that is 0 or an empty string), for example, where not setting a system option should cause a limit to be ignored.
When set to true then this transition will show in the block header rather than as a button. Should also set LabelIcon to avoid long names in the block header.
Sequence
Sequence to show this in the block menu.
CSS class to be set on the block menu item.
Sequence
Sequence to show this in the block menu.
CSS class to be set on the block menu item.
The name of an icon image to accompany this Transition.
If this Transition's parent Process is set to AutoClose, setting this to true will prevent this Transition from triggering that AutoClose, e.g. a Transition which runs a report.
If set then this Transition will be run as if opening a new block. To be used when there are actions which would create new blocks, e.g. CopyProcess.
Contains details of which table to store the transition history data in.
Contains details of which fields to store additional information in and where to get the information from.
When set, any afterNext Actions with AllowRunInBackground set will be run in the background via Zymonic::Toolkit::Testing::Action, with details saved to the relevant zz_transition_history record.
Override the system option "store_states_on_transition_history" for this transition.
Override the system option "store_field_changes_on_transition_history" for this transition.
Override the system option "store_action_results_on_transition_history" for this transitions.
The ZName of the field on the state before transition form to record in the history table.
The ZName of the field in the history table.
Fill Field with current date and time.
Fill Field with a param from the system.
Used with CurrentDateTime to define the format the fill will take. Should use standard strftime formats, defaults to %Y-%m-%d %H:%M:%S
Should any errors with mapping these fields be ignored? If not set to true, then any mapping errors will be reported as system errors.
If set then value will be appended onto existing value. If not set then it overwrites.
Conditions are used extensively in Zymonic to determine if things should happen. It would not be unreasonable to see ConditionCombination as an 'IF' statement and the Conditions as the Clauses within it. Currently only DB and Hook are implemented as condition types DB will test run an SQL SELECT and the number of rows will then be compared with the DesiredValue using the Test. Hook will call an external Perl module and function and the returned value will then be compared with the DesiredValue using the Test.
Numeric comparisons of test values will compares length.
Looks up the SystemOption using Name. If not set then uses Default value.
Defaults to match_any.
If the field has multiple values then will ensure that at least one of the multiple values passes the test.
If the field has multiple values then will ensure that all pass the test.
Looks up a setting from parent process. If no parent process then Condition will always FAIL. If within a Transition, next_state will check the next state, otherwise will FAIL.
Looks up current authentication session. If no authenatication session will FAIL. The boolean values below will result in 'true' or 'false'.
Indicates whether Zymonic should assume this condition is true when testing to see if a transition can be done.
Message to display when this condition fails, defaults to "[[display name]] failed".
Set to true to show this fail message whenever this condition failed, defaults to "[[display name]] failed".
Set to true to force a system error when this condition fails.
Uses the parent field as the field to test - so that Conditional FieldFormats and similar can be reused on different fields.
If true then result of this Condition will be negated, i.e. PASS becomes FAIL and vice versa.
If true then results of this Condition will never be cached.
This will theoretically ask the user a question and then test the result. This is not currently implemented and is currently under consideration for deprecation - the reason being that if we're capturing something important enough to be a Condition on a Transition then it should probably be recorded on the Form. The only circumstance I can see that this might be useful is for an 'Are you sure?' type prompt. Would suggest that if this is implemented and used then extreme caution should be used.
DB will test run an SQL SELECT and the number of rows will then be compared with the DesiredValue using the Test in the Condition. If using Condition Field will compare that rather than count. The class="DBCondition" attribute must be set on the Condition for DBCondition to work.
Boolean option to determine whether deleted records should be included from the PrimaryTable in the SQL run.
Allows selection of fields to be included in the generated SQL. Any field here may then be used in general Condition Field to check its value within first result. If no Condition Field then does count..
The Group By statement to be applied to the SQL to be run. Only TargetFields are used and should be set to the zname of a field in Select element.
If set than no permission records will be joined into these checks.
If set then the where clause will not be automatically passed to the 'HAVING' section if it contains an aggregate function e.g. if you've used a sub-query in the condition
This is deprecated - has been replaced by TableInclude and is now only used by RelationshipPermissions (soon to be updated to use TableInclude).
A Hook is used by a condition to call an external Perl function (qualified with a Module name). The function/method will be passed the Process object. The return value will be compared with the Condition's DesiredValue using the Condition's Test.
Not yet implemented.
Not yet implemented.
If the UserField is defined, the system will check the permissions of the user referred to in that field, otherwise, the current user will be assumed to be the one being checked.
The action element describes what should happen after a transition has been determined to be successful. Typically this might consist of updating a secondary table or generating a report - the individual actions are described in more detail in their own element documentation.
The combination of conditions to use when determining if the Action should be ran during this transition or not. Conditions are referenced by "Clause[zname_of_condition]" and can be combined with "and"/"or" (these are case sensitive and should be lower-case) between conditions, as well as use of brackets and "!" to negate a condition, as this expression is ran via Perl's "eval" function. If no ConditionCombination is set, typically the conditions are automatically combined using "and". NOTE: this element does NOT use the same syntax, capitalisation as the ConditionCombination tags used on Filters despite sharing the same name.
When multiple Actions are specified: if this is true then when one fails, the subsequent Actions will still be run; if this is false then no subsequent Actions will be run. Default is true.
Messages output in the GUI for certain action results. Can have other elements in here from custom subclasses.
Message to output to GUI on action succeeding. Can use replacement [[display_name]] only currently.
Message to output to GUI on action failing. Can use replacement [[display_name]] only currently.
Message to output to GUI on action not being run due to condition failures. Can use replacement [[display_name]] only currently.
Message to output to GUI on action not being run due to previous action failing. Can use replacement [[display_name]] only currently.
Message to output to GUI on action bing run in background. Can use replacement [[display_name]] only currently.
Some action will have extra info which is by default hidden. This is the text to use for that link to show the info. Defaults to "More Detail". Can use replacement [[display_name]] only currently.
Some action will have extra info which is by default hidden. This is the text to use for that link to hide the info. Defaults to "More Detail". Can use replacement [[display_name]] only currently.
By default, an action will cache records looked up for locking checks, and use that cache when doing the actual update. This flag can be set to stop that, meaning on update any lookups will be performaned again. This may be needed were there are multiple Actions which add new records which then need acting upon by other actions. Currently only available for use with SQLUpdatesFromFilter, use with any other type of Action will force a system error. Default value is false.
By default, conditions on an action which be checked when checking locks and again when the action is run. Occassionally the result of the condition can change in the time between due to other actions. Set this value to true to force the condition result from the locking check to be used again later when running the action. If not set then is treated as false.
When RunActionsInBackground is set on the parent Transition and this is an afterNext Action, then setting this allows this Action to be run in the background via Zymonic::Toolkit::Testing::Action, with details saved to the relevant zz_transition_history record.
Sequence
The order in which to run multiple Actions. Behaviour when one of the Actions fails is determined by ContinueOnError.
TODO
Allow updating of multiple records in destination field.
Should error stop the update process, or not.
If true then any deletions done by this action will remove the record from the DB, and will not be able to be undone.
By default, all records from SourceTable are used. If you set this flag then these records will be filters by parent_process_id matching the current process_id.
By default, only records in the destination table that are older than source records are considered for update. Set this to true to skip this additional update check.
By default, only records in the destination table that will be updated are locked. When using RecordCondition on a field a user can change, this can then fail to lock a record which will be updated. Setting this flag will lock all DestinationTable records, not just ones that pass RecordCondition. If not using RecordCondition then this will have no effect.
If the SourceTable element is not present then it is assumed that either the source table for the fields in Field Mapping is the Form's table or that each Field Mapping has a source table defined.
If used will attempt to load a table using retrieved ZName.
Makes all fields within this form read only, unless Field ReadOnly has no_override attribute set
Used to specify how many records should be added on save. For example if 1, then it will only add if none have been already added. "true" is treated as 1.
ZName of field group to show selected when the block opens.
Allows the adding of new records to a read only form.
ZName of Field to append to the Block's title (which will be the name of the Process).
SourceFilter is used to 'pre-fill' the form i.e. where the process uses the content of another table/process as a template.
OrderBy is used to get an ORDER BY included in the SQL for sequencing by column content
DisplayOrderFieldZName is used to sort form records duing XSL translation
Used to set values on SourceFilter. SourceField from wherever, DestinationField from Filter.
The PreFillFieldMap is used to set what information from SourceFilter should end up in which Field on the Form. SourceField from Filter DestinationField from Form.
If flagged as key, means that mapping field should be treated as a key.
By default it is assumed that the field value has come from the DB and as such it is not validated. Set this flag to force validation to occur on the field value that is set.
If this is set then any records that were created by a 'SourceFilter' and that are no longer in that 'SourceFilter' will be deleted.
Set this flag to make the deletion not limit to those records autocreated by the current process, i.e. to delete everything regardless of which process created it.
If set allows multiple records to be entered for the process. The number used will be then number of empty, placeholder records shown on the form. Setting this value to a boolean is now deprecated.
If set defaults the selected page of the form - use 'last' for last page.
Sets horizontal (i.e. tabular) display of multiple records (default is vertical).
Should be a comma separated list of field sizes that the fields can be displayed as (the maximum lengths of fields will be obeyed, but they will always be displayed as one of the field sizes in the list).
The numerical order in which the Filter is displayed in a FoFaP. Defaults to alphabetical order otherwise.
If true then the generated FilterActions on generate Filter will auto close.
Set as the AutoRun value on the generated Filter.
If true then there will be no edit filter action generated.
If true then there will be no add filter action generated.
If true then there will be a copy filter action added.
Pass through a display name for the auto filter to use in place of the default one.
If true then will set ApplyToGroups to '*' on all ReportFields.
Boolean option to determine whether deleted records should show in this filter. Use 'optional' value to add a search field to the filter to allow used to show/hide deleted records.
If true then will add report and search fields for the current state of the base tables process. It is assumed that the base tables process is set as DefaultProcessZName on the table, or table has an autoprocess.
If true then will be no import/export option on this filter.
true
The elements contained in AutoFilterExtras will be copied into the autofilter.
If AutoCreateFilter is also true, creates a linked field on this table using that autofilter. Source/Display fields are taken from attributes on this element.
ZName of the source field in the table to use in the linked field.
ZName of the display field(s) in the table to use in the linked field. This can be a comma separated list of znames.
ZName of the transition to use as NewProcessTransitionZName, if not set will default to autoprocess save transition.
Sequence to pass through to this LinkedField.
Passes through to this LinkedField NoCreateOnFailedLookup.
Sets up a subform field for this table, base on the autoform for this table. The subform will show multiple records with a single placeholder.
Disables horizontal mode if set.
Adds delete button next to records in the autocreated subform.
If AutoCreateFilter is also true, creates a filter of revision history of this table.
Pass through a display name for the auto filter to use in place of the default one.
Comma separated field znames of fields to highlight differences on between the revisions.
When viewing multiple records per page, multiple of these values may be used to determine the list of records per page as displayed to the user. The content of this element should be the display name to show in the list. Only used if ShowMultipleRecords is true.
The actual number of records per page this represents.
Should be set on one element,m the default entry to select.
Stop new records being created on this form. Existing records can still be updated. Note that not setting this doesn't ensure you can add records to the form, also need add permission.
Force a HardDelete on a record if true.
When showing multiple records per form, if this is set then user will be able to delete individual records.
If set will add option to form allowing user to switch the layout, e.g. between vertical and horizontal.
When doing a prefill, by default, only records in the destination table that are older than source records are considered for update. Set this to true to skip this additional update check.
If true then full form validation will be run each time the Form is output. By default this is false and full validation only occurs on saving.
If true then will apply tab indexes to fields on the form using @DisplayOrder. If not set then default behaviour is determined by system option enable_field_tab_indexes.
Only needed for multiple record forms. Indicates the fields in the form which can be used to identify the record from an API call. This should not be the PK of the form's table, as if that is known then record attribute should be used in API mode. Can have multiple to signify multiple fields to match.
Specify the FormFormats to apply to this forms output
Messages output in the GUI for certain form action. Can have other elements in here from custom subclasses.
Message to output to GUI on duplicate records with the same IDFieldZName values found. Can use replacement [[display_name]] for the form display name and [[field_zname]] for each IDFieldZName to replace with its display name.
ZName of Transition to auto run when a record is added to this Form, only applies if this is a multiple record Form. If setting multiple then will sort by preferred attribute and run the first transition found for the current state.
Preferred
When you have multiple RunTransitionOnAdd, the one that is found for the current state and has the lowest preferred value will be used.
If set then will show a button in the GUI for user to manually run the prefill on this form. Should be set to the label for the button.
If set, on a multiple record form the add button will do the add in the background and immediately show a new placeholder. Only works for multiple record forms, without RunTransitionOnAdd set, and only in non-API mode.
Whenever an Add button shows on this form, this value will be used for its label. If not set default laqbel is 'Add'.
If set, prevents placeholders appearing on the form or table if the parent form is a placeholder. Used primarily in SubForms to prevent users adding data to a placeholder record on the parent table
If set alongside NoAddOnParentPlaceholder, replaces the default message that is shown when a subform is empty due to not having any records with the placeholder disabled. If not set displays "No [[display_name]] found. Cannot add entries to this subform until you Add and Save on the parent subform" if NoAddOnParentPlaceholder is true, or "No [[display_name]] found. Check you have the correct permissions to use this form." otherwise.
If set then records on this form will sortable by the user in the GUI, i.e. use can drag and drop the records into a different order. Should also set SortableFieldZName so the changed order values get saved somewhere.
When using Sortable, this field will get set to a numeric value according to its position after user has sorted the records.
Condition should be a valid SQL WHERE clause, with ZZSF and ZZDF used where source and destination fields should appear, and a ? where a source field value should go. Can place ? in a quoted string, e.g. LIKE "?%" and will be parsed correctly. This will only be used when FieldMap is used in a matching context, not when used for setting one field from another.
When used to set Destination Field from Source Field, this flag will not do the mapping the Source Field value is blank.
When doing UpdateOrInsert type of update and find a matching record, only if this value is true will the field be updated. If iot is false the field will be ignored. Defaults to true.
Set to true if setting a multiple value type field with a single value field.
Set to false to indicate this field should come from the parent form and not the source table. Only currently applicable for bulk PerformUpdates actions, when source field is on both source table and parent form.
If true this field fill will not be run client side via javascript, i.e. it will only run server side.
Fill Field with username of current user.
Fill Field with current date and time.
Fill Field with current state if in a Process, otherwise doesn't fill.
Fill Field with next state if in a Transition that has next state set, otherwise doesn't fill.
Fill Field with IP address of current user.
Fill Field value of the last transition run on the parent process, use 'field' attribute to specify field to use.
Elements marked CacheInTable and ViewOnly are calculated and stored in the table when the record is first created and whenever the calculation result changes. Elements marked ViewOnly but not CacheInTable are calculated whenever the field is displayed. Elements marked with neither are filled in when the new record is being created, but are updateable by the user both during record creation and subsequently, the user can force a re-calculation and write that value, but by default the record will contain and show the last thing written to it. Elements marked CacheInTable but not ViewOnly don't make much sense since they are writeable by users, but will get automatically updated and the user entries will then be lost.
String should be a simple mathematical calulcation. Parantheses may be used. Field ZNames can be added within square brackets (e.g. [zname]) and they will be replaced with that fields value. Will throw error if that value is not a number. Allowed extra chars (after zname substituions): 0-9, space, +, -, /, *, (, and )
If true will skip system options cache to look up actual value from the DB.
Sequence to concatenate the values in.
The template will allow the assembly of multiple fields by sequence - use format {{1}} to be replaced with the first field value.
If you are filling from a LinkedField, by default the Source Field will be used to fill from. Set this flag to fill from the Display Fields (if more than one they are separated using the Separator element above).
Fill Field with a param from the system.
Used with CurrentDateTime to define the format the fill will take. Should use standard strftime formats, defaults to %Y-%m-%d %H:%M:%S
Used with LastTransition to define the field to fill from last transition record.
This will override all other flags and use this fill value unless incoming value has come from the user.
By default a value of "" from a field fill is ignored by the container field, set this flag to allow it.
This will add an option allowing the user to force a re-calculation. Only applies when neither CacheInTable nor ViewOnly are set.
The combination of conditions to use when determining if the FieldFillCalculation should be applied to the set the value of the Field. Conditions are referenced by "Clause[zname_of_condition]" and can be combined with "and"/"or" (these are case sensitive and should be lower-case) between conditions, as well as use of brackets and "!" to negate a condition, as this expression is ran via Perl's "eval" function. If no ConditionCombination is set, typically the conditions are automatically combined using "and". NOTE: this element does NOT use the same syntax, capitalisation as the ConditionCombination tags used on Filters despite sharing the same name.
Should this field fill be performed during presave of this field?
Currently just use
If true then value filled will be a list of multiple values, rather than joined together single value.
If true this field fill will not be run client side via javascript, i.e. it will only run server side.
Preferred
When you have multiple FieldFillCalculations, the one that passes it's Condition (or has no Condition) and has the lowest preferred value will be used.
Not on Search
Indicates that this Field Fill Calculation should not be run when the Field is being used as a search field.
Not on Report
Indicates that this Field Fill Calculation should not be run when the Field is being used as a report field.
true
TODO ???
Standard Field
zz_system_definition_fg_sql_details
If false then will not be created in any table it appears in and will not be used as a search field. If not present assumed to be true.
No Auto Search Field
zz_system_definition_fg_gui_options
If true then the field will not be used as a search field. If not present assumed to be false.
true
Override Field Type
zz_system_definition_fg_validation_options
Sets the type to display/basic validate the field as, without affecting the field type in the underlying table.
Input Mode
zz_system_definition_fg_validation_options
Input Mode to add to the HTML - particularly important for mobile users.
Field Type
zz_system_definition_fg_sql_details
Sets the type to display/basic validate the field as, without affecting the field type in the underlying table.
Precision
zz_system_definition_fg_sql_details
To be used for decimal types, to set the precision.
true
true
true
true
true
Extra Characters
The extra characters to allow in this field's value.
zz_system_definition_fg_validation_options
SQL Name
zz_system_definition_fg_sql_details
Should be the field name to use in the DB. If used in a ReportField can use syntax [ZName] to have the Field with that ZName's sql name put in its place. Can also use the form [[ZName]], which will be replaced by the field's current value.
Max Length
The maximum length of this field, defaults to 255.
zz_system_definition_fg_validation_options
Display Size
The size of the field when displaying this field.
zz_system_definition_fg_gui_options
Display Height
The height of the field when displaying this field.
zz_system_definition_fg_gui_options
true
true
true
true
Read Only
This field should be read-only.
zz_system_definition_fg_gui_options
No Override
zz_system_definition_fg_gui_options
If set this field will not be overriden by any parent form ReadOnly settings
Read Only if filled
This field's content should be made read only if it has been filled by one of its field fill calculations.
zz_system_definition_fg_gui_options
Hidden Content
This field's content should be hidden when displayed, e.g. passwords.
zz_system_definition_fg_gui_options
Hidden
This field should be hidden.
zz_system_definition_fg_gui_options
true
Required
This field is required.
zz_system_definition_fg_validation_options
Field Group
This FieldGroups this field is in.
zz_system_definition_fg_field_groups
Field
true
CSS Class
zz_system_definition_fg_gui_options
Class or classes (space separated) to add to this field's HTML.
Not on Search
Indicates that this CSS Class should be ignored when the Field is being used as a search field.
No Log
zz_system_definition_fg_security_options
Setting this element to true prevents Zymonic from logging the field in debugs.
true
true
Empty Value
zz_system_definition_fg_sql_details
Value to use when updating the DB and no field value is specified by the user. Default to empty string.
true
Can be used to specify that the Field is from another Table with information as to how to join to that table. If you use more than one TableInclude be sure to qualify which one the Field is coming from in its SQLName.
Clean Base
zz_system_definition_fg_validation_options
Use to specify the default set of characters to use when cleaning any incoming values for this field. Defaults to Alphanumeric+ is not set.
Any digits.
Any letters.
Any digits and letters.
Any digits and letters, plus whitespace, comma, full stop, dash, underscore and at symbol.
Any valid chars for base64 encoding.
Any printable ascii chars - be very cautious when using this.
Truncate Value
zz_system_definition_fg_sql_details
If value is longer than maximum length, if this flag is set then field will not error, rather value will be truncated to maxmimum length.
SQL Default Value
zz_system_definition_fg_sql_details
Value to use as default in the SQL field definition. Note: when using strings, be sure to quote them in here, e.g. "now". If set to ZZNOW will use DB's native current timestamp function. If set to ZZNOWUPDATED will do same as ZZNOW but will update field to current timestamp on each update.
Denormalise Cast Function
zz_system_definition_fg_sql_details
A fragment of SQL including [[ZZF]] that will cast the field to the correct type when data is being denormalised e.g. CAST([[ZZF]]/100 AS DECIMAL(10,2)). [[ZZF]] will be replaced with the correct SQL for the field.
true
Should this field be saved during form pre-save? Note: PreSaving only works on fields with no Validation object.
Default Value
zz_system_definition_fg_sql_details
Value to use as default for field when no other value used. Setting this implies PreSave.
Min Length
The minimum length of this field.
zz_system_definition_fg_validation_options
true
If true then this field will be ignored when updating its record. Only really used for fields that will be automatically updated from other source to ensure that it can never be explicity set by a user.
Disable Auto-Complete
zz_system_definition_fg_gui_options
If true then a flag will be sent to output to turn of HTML autocomplete on the input for this field.
Disable Auto-Capitalize
zz_system_definition_fg_gui_options
If true then a flag will be sent to output to turn of HTML autocapitalize on the input for this field.
Force Validation
zz_system_definition_fg_validation_options
If true then all validation will be done regardless of whether the field value has been changed. By default full validation is only done when value changes. Set this to true to force full validation each time.
Validate after Saving
zz_system_definition_fg_validation_options
If true then validation on this field will be done after save functions are run. This is useful for triggering validation on fields which check DB directly.
true
DEPRECATED - NO LONGER HAS ANY EFFECT. If true then validation will happen on the field value that is output, i.e. after field fill calculations have been run. By default this is false and validation is done on raw user input or db values.
true
true
XML Hidden
zz_system_definition_fg_security_options
If true then this field will not appear in any XML output, be it from an API call or in the GUI. Different to regular Hidden which shows the fields in XML but not hides them in the GUI.
If true then this field will show when ZZcompact_output is set. If no fields on a form have this set then all fields will still show, for backwards compatibility.
JS Server Side Validation
zz_system_definition_fg_validation_options
If true then JS validation for this field will be done by sending the current field value to the server and letting it do the validation. WARNING: This will be much slower than regular JS validation and should only be used for complex validations, or validations which do not have a JS equivalent.
true
Can be either a static value or value from a field. Only applicable to numeric fields float/double. If set then will round and field value to this number of decimal places.
true
If set and this data was imported from another system, on output only this fields value will be replaced with the remote data that was imported. This is only relevant for keyfields as they are the only fields which change on import. No change will be done if not remote data can be found. Field must be read only, or on a filter, for this to work.
Hide Check Empty
zz_system_definition_fg_gui_options
If true then the 'Use even if empty?' checkbox will not be added to the searchfield - usually only for 'ranges' where the check empty functionality is not required.
SQL for ORDER BY
zz_system_definition_fg_sql_details
SQL to use instead of the field name in the 'ORDER BY' clause. Use ZZFIELD as the field to use e.g. "ZZFIELD COLLATE utf8_general_ci".
Disable User Field Ordering
zz_system_definition_fg_gui_options
If true then the the user will not be able to click the header in a report field to order by this field.
If set, and field is on a multiple record form that allows adding, the add button on the record this field is on will be triggered on this field losing focus, i.e. on tabbing out of it.
If set, then on adding this field will be checked for duplicate values in other records on the same form and will fail validation if a duplicate is found.
Search Map Condition Type
zz_system_definition_fg_gui_options
Use to specify the search condition to use when using this field in a filter. Only applicable to base Field, subclasses will ignore this to use their only value.
The default behaviour, depending on the field type, usually a partial LIKE match.
A partial match, e.g. ZZRF LIKE '%?%'
An exact match, e.g. ZZRF = ?
Exact match of multiple values, e.g. ZZRF IN (?,?,...). Default behaviour for multiple value fields.
Partial match of multiple values, e.g. ( ZZRF LIKE '%?%' ) OR ( ZZRF LIKE '%?%' ) OR ...
SQL for ORDER BY
zz_system_definition_fg_sql_details
SQL to use instead of the field name in the 'ORDER BY' clause. Use ZZFIELD as the field to use e.g. "ZZFIELD COLLATE utf8_general_ci".
Force Inner Query
zz_system_definition_fg_sql_details
Makes QueryBuilder use the field in the inner query even if it contains an aggregate function.
Force Outer Query
zz_system_definition_fg_sql_details
Makes QueryBuilder use the field in the outer query even if it does not contain an aggregate function.
Disable User Field Ordering
zz_system_definition_fg_gui_options
If true then the the user will not be able to click the header in a report field to order by this field.
If set, and field is on a multiple record form that allows adding, the add button on the record this field is on will be triggered on this field losing focus, i.e. on tabbing out of it.
If set, then on adding this field will be checked for duplicate values in other records on the same form and will fail validation if a duplicate is found.
Defaults to "true". If set, will ignore any fields with "" or undef values when checking for duplicates, meaning NoDuplicateOnForm will only trigger validation warnings if there are non-empty duplicates on the form. Setting to "false" will include empty fields in the validation checks for duplicate values.
If set, and field is on a multiple record form, then a copy of this field will be added at the top of the form, when changed it will change the value of all versions of this field in all records on the form, i.e. this is used for check/clear all.
When using AllowSetMultiple, set this to override the display name for the top level field added.
When using AllowSetMultiple, set this to override the short description for the top level field added.
If set, and field is on a multiple record form, then a copy of this field will be added at the top of the form, when changed it will filter the records on the form according to either FormSearchCondition or FormSearchRegularExpression.
When using AllowFormSearch, this should be the condition to use when searching record fields. Special vars are ZZFORMSEARCH for the top level value, and ZZFIELD for the per record field. Shouldn't be used alongside FormSearchRegularExpression.
When using AllowFormSearch, this should be a regulare expression which should match the record fields. Special vars is just ZZFORMSEARCH for the top level value. Shouldn't be used alongside FormSearchCondition.
When using AllowFormSearch, set this to override the display name for the top level field added.
When using AllowFormSearch, set this to override the short description for the top level field added.
true
The elements contained in AutoSearchMapExtras will be copied into the SearchMap on the ReportField for this field in the autofilter. Main usage would be to set a explicit Condition for the SearchMap.
Optional element to add explanation for flagging field as not_a_sensitive_field.
Sequence
zz_system_definition_fg_gui_options
Fields will be sorted by this value when output.
Save Sequence
zz_system_definition_fg_gui_options
Use this to sort the order in which fields are saved. Only applicable to subclasses of field which do their own saving. Generally not needed as order of saving is irrelevant in all but a few cases.
Not a Sesnsitive Field
zz_system_definition_fg_gui_options
Any non-HiddenContent fields, with NoLog set or SQLName containing passw/pw, are treated as potentially sensitive for security reasons. Set this flag to override that.
This field is deprecated - the DisplayField/SearchFieldZName should be used instead.
If true then will attempt to combine the (MultipleChoice)LinkedField Filter with any containing Filters, i.e. when LinkedField is a ReportField in a Filter. If not set this will default to true. When used with a MultipleChoiceLinkedField, if this is false then any auto search fields will not work, these will need explicit searchmaps adding for them by the XML author.
If set to true, the linked field will automatically select the first result on loading of the block.
Fields within the Filter to always show in results, but not as display fields.
By default, if a linked field is hidden or readonly then the fields here will not be loaded or used. Set this value to true to force these fields to be loaded for hidden linked fields. This is useful when you have a read only linked field with conditions which use other fields.
When set to true then the limiting of the fields to use in the underlying filter will be done prior to loading the field refs. Should only be used when there are no dependencies between report fields in the filter, e.g. no aggregate functions or field fill calculations. This will be true for all autofilters, otherwise it will default to be false.
By default, if a linked field is hidden then the display fields on the underlying filter will not be loaded or used. Set this value to true to force display fields to be loaded for hidden linked fields. This is useful when you have a hidden linekd field to lookup a value, then want to grab a display field from that hidden linked field to store in another field.
ZName of FilterAction within the LinkedField Filter which is used to create new entries in the Filter.
ZName of the Transition within the Process opened by the new FilterAction which should be used to run the process when creating new records in this LF, i.e. from API calls with nested data
ZName of the Field within the Process opened by the new FilterAction which should be used as the SourceField in this Linked Field
Use this form to lookup data in this LF, i.e. from API calls with nested data will only do lookup. By default the form connected to the NewFilterActionZName will be used, this can be used to override that. If using then ensure NewProcessSourceFieldZName is a field on the form. If using LinkingFields ensure the Destination search field has same sqlname as a field on the form.
Don't allow this LF to create new record, i.e. from API calls with nested data will only do lookup
By default any lookup done for this LinkedField will use all DisplayFields. Set this if you want to use different display fields for that lookup. Can have multiple.
Where clauses to use when matching the source field in the underlying filter. Use ZZRF as placeholder for the source field and ? as the value. If not set, for single value fields will be ZZRF = ? and for multiple value fields will be ZZRF IN (?).
When true, if the current value of this LF is not found in the underlying filter, the value will be cleared and LF will be treated as cleared.
Set this value to override the DisplayField's sequence with the sequence on this LinkedField.
Set this value to override the string displayed on the open button of the linked field.
Set this value to override the string displayed next to the actions of a selected linked field entry.
This field is deprecated - if used it will be assumed to be both search and report field unless the LinkedSearchField is set (in which case it will only be used as the Report Field.)
The ZName of the Field in the ReportField in the underlying filter.
The ZName of the Field in the SearchField in the underlying filter.
Used to override the display name of the report field when it is used in this Linked Field.
Used to override the short description of the report field when it is used in this Linked Field.
Value to use in empty display fields. Generally this is not needed, but there can be some cases were you want the lack of a value to show as some default in a filter, e.g. 0 instead of empty.
The combination of conditions to use when determining if the Validation passes or fails. Conditions are referenced by "Clause[zname_of_condition]" and can be combined with "and"/"or" (these are case sensitive and should be lower-case) between conditions, as well as use of brackets and "!" to negate a condition, as this expression is ran via Perl's "eval" function. If no ConditionCombination is set, typically the conditions are automatically combined using "and". NOTE: this element does NOT use the same syntax, capitalisation as the ConditionCombination tags used on Filters despite sharing the same name.
Should this Validation pass if it's Condition Fails? Set to true if Condition is being used to enable/disable validation.
Setting this will mean another (boolean) field should be present on the table/form that means this validation condition can be ignored.
A regular expression that will be applied to field input and will not validate the field until it matches. Will then cache any results aginst the first matching group in the expression.
Whether to evaluate the Validation when the field is first loaded. Defaults to false if not set. Useful for auto-running validation when a field is set from a FieldFillCalculation the moment the parent filter/process is opened rather than having to wait for the user to interact with the field. (This fixes rare cases with DBCondition validation and a FFC where you'd have to Add to subform or run a Save transition twice - once to trigger the validation, where it would fail because it hasn't checked the DB yet, and a second time to actually save. With this tag it checks validation on load and thus saves/adds the first time)
Sequence
Use to set the order in which Validations are done.
Not on Search
Indicates that this Validation should be ignored when the Field is being used as a search field.
Not on Report
Indicates that this Validation should be ignored when the Field is being used as a report field.
The combination of conditions to use when determining whether to apply the ConditionalFormat. Conditions are referenced by "Clause[zname_of_condition]" and can be combined with "and"/"or" (these are case sensitive and should be lower-case) between conditions, as well as use of brackets and "!" to negate a condition, as this expression is ran via Perl's "eval" function. If no ConditionCombination is set, typically the conditions are automatically combined using "and". NOTE: this element does NOT use the same syntax, capitalisation as the ConditionCombination tags used on Filters despite sharing the same name.
A space separated list of classes to be applied to the element.
This flag causes the Conditional Formatting not to be updated using javascript e.g. where the fields for the formatting are not user modifiable.
This flag causes the Conditional Formatting to always use javascript even if fields are readonly.
This flag, if true, causes any inputs within this field to be disabled if the condition passes, enabled otherwise. If the flag is false then inputs within this field will be enabled when conditions passes, disabled otherwise. Where multiple ConditionFormats are set, a single result to disable inputs will trump any other calls not to, i.e. is at least 1 result is to disable inputs, then inputs will be disabled. If not set no action will be taken.
Not on Search
Indicates that this ConditionalFormat should be ignored when the Field is being used as a search field.
Not on Report
Indicates that this ConditionalFormat should be ignored when the Field is being used as a report field.
Sequence
FieldGroups will be sorted by this value when output.
Level
The depth level of this FieldGroup. Only currently applicable to autocreate field groups.
true
Force Dynamic Loading
If set, this value will be used to determine if this field group should load dynamically, regardless of system option.
This transition will add any placeholder records, i.e. unadded placeholder records.
ZName of subform which will add if one of the listed fields has changed.
Field zname to check if changed before adding. Add multiple elements for multiple fields. Add no fields to add when nothing has changed.
Category
The category of this table.
ZName of field group to show selected when the block opens.
SQL Name
The name of this table in the database.
zz_system_definition_fg_sql_details
Fields
The fields that are in this table.
Auto-Create Process
Auto-create a process to capture data for this table, complete with states and transitions.
The numerical order in which the Process is displayed in a FoFaP. Defaults to alphabetical order otherwise.
Skip Delete Confirmation
By default, the Delete Transition will come with a UserInput condition requiring the user to confirm that they want to delete the record. If this flag is set to true, this condition will not be added, and deletion will happen without user confirmation.
Skip Restore Confirmation
By default, the Restore Transition will come with a UserInput condition requiring the user to confirm that they want to restore the record. If this flag is set to true, this condition will not be added, and restore will happen without user confirmation.
true
Comma sepearted list of znames to set as IDFieldZname on autoforms.
true
Does not grab and fields from base table.
true
Grab fields from base table, regardless of other options.
No Add
Do not allow records to be added to the form in this process.
Set the NoAdd element to this on the autoform.
Allow Multiple Records
Allows multiple records to be created on the single form in this process. Value of this should be the number of new records that can be created at a time, usually 1.
Set the ShowMultipleRecords element to this on the autoform.
Display Name
Pass through a display name for the auto process to use in place of the default one.
Show Deleted
Boolean option to determine whether deleted records should show in this process.
Auto-Create PDF Report Option
Adds an option to generate a PDF Report from this process.
Sets AutoCreateStatePrintTransition on the autoprocess.
Auto-Create Form
Auto-create a form to capture data for this table.
true
Comma sepearted list of znames to set as IDFieldZname on autoform.
true
Does not grab and fields from base table.
No Add
Do not allow records to be added to this form.
Set the NoAdd element to this on the autoform.
Allow Multiple Records
Allows multiple records to be created on a single form. Value of this should be the number of new records that can be created at a time, usually 1.
Set the ShowMultipleRecords element to this on the autoform.
Auto-Create Filter
Unless either AutoCreateMaintenanceProcess or AutoCreateForm are set then this option is ignored...
The numerical order in which the Filter is displayed in a FoFaP. Defaults to alphabetical order otherwise.
Auto-Close
If true then the generated FilterActions on generate Filter will auto close.
Show Deleted
Boolean option to determine whether deleted records should show in this filter. Use 'optional' value to add a search field to the filter to allow used to show/hide deleted records.
true
If true then adds ApplytoGroups, value '*', to all ReportFields.
Order By
ZName of the field to order this autofilter by.
Order By Descending
When order_by is set, can set this to make it order descending.
Auto-Create Relationship Permissions
Auto-create a relationship permissions for this table, complete admin/write/read role permissions.
Include an admin permission, based on allpermauth. Defaults to true if not set.
Include a read/write permission, based on zz_readwriteRP. Defaults to true if not set.
Include a read only permission, based on zz_readableRP. Defaults to true if not set.
Name of the IP List to set on auto permissions. Defaults to 'any' if not set.
Name of the FAP List to set on auto permissions. Defaults to 'any' if not set.
Sets up a subform field for this table, base on the autoform for this table. The subform will show multiple records with a single placeholder.
Disables horizontal mode if set.
Adds delete button next to records in the autocreated subform.
Block Title Field
This field's value will show in the block title.
Field
ZName of Field to append to the Block's title if this table is used in an auto form (which will be the name of the Process).
true
Used to determine which Process to use to edit the data in this Table.
true
Used to configure default options for synchronize_csv toolkit option.
Keys
The primary keys and indexes for this table.
Permissions
The permissions for this table.
Parent Permission Table
The permissions for this table will be taken from this parent table, e.g. autotable for MCLF will use this.
Revision History Limit
How many revisisons of changes should be kept for this table. Set to 0 to disable. Set to -1 to have unlimited.
true
The number of previous revisions to keep, -1 to keep all. Setting to 0 disables versioning, but if 0 is set on an existing table it will not automatically clear the revision history.
true
The elements contained in SaveExtras will be copied into the Save transition of the auto maintenance process e.g. Conditions, Actions etc.
true
The elements contained in DeleteExtras will be copied into the Delete transition of the auto maintenance process e.g. Conditions, Actions etc.
true
The elements contained in UnDeleteExtras will be copied into the UnDelete transition of the auto maintenance process e.g. Conditions, Actions etc.
true
The elements contained in AutoFilterExtras will be copied into the autofilter.
true
true
If true, when running a dump of this system this table will be ignored.
true
On import use the fields defined within here as the key for determining whether to update or create new. If not table PrimaryKey will be used.
true
If false then any updates to this table found during import will be ignored and reported. Defaults to true if not set.
true
Used to specify which DB this Table is in. If not set, then added/updated in all DBs. If set then will only be added/updated for the DB value set. Value can be string which is the DB name, or can be of the form [value], in which cause the SystemOption value will be used as the DB name.
true
Used to flag this table as being part of another table's permission dependency. This is autoset via config build so need not be set in the XML directly.
true
Used to enable revision history (FUTURE USE - not working yet).
The FieldName should be the SQL Name of the field - NOT the ZName.
The FieldName should be the SQL Name of the field - NOT the ZName.
The length of the index. Should be greater than 0 and less than the field length. MySQL only, Oracle will ignore this.
This should be a unique index, NOT a primary key. Ensure Key has a ZName for this, as its used to identify it.
If set then these permissions will only apply to this field. If not set then permission apply to record/table. Can have multiple fields here to apply the permissions to each field.
If a Role Permission is added to a RelationshipPermission then as well as any other conditions on the RelationshipPermission the permissions will only be granted to users who have been given a role where the RolePermission in question has Allowed set to 'Y' in the Roles maintenance.
The value of this tag will be added into the system as a permission. This permission can then be set in a RelationshipPermission, as per the default permissions.
Use this to limit an extra permissions to table or records only. If not set then will be used by both.
This value will be used as part of the URI for RESTful type APIs. If it is not unique within the system then the first process or filter that has hide in menu set to false will be used. If this is not set then the display name, stripped of non-alphanumeric characters, will be used.
How often the filter should autorefresh its results. If not set then filter will not autorefresh results.
ZName of field group to show selected when the block opens.
If set to 'true', materialized views will be used to improve query execution times, and if set to 'auto' then Zymonic determine if the filter would benefit from using materizlied views.
The numerical order in which the Filter is displayed in a FoFaP. Defaults to alphabetical order otherwise.
The condition combination should be written for any SearchMaps on ReportFields that are not to be simply ANDed when processing the filter, once a SearchMap is included in the ConditionCombination it will only appear where included and not be automatically added to the WHERE condition. The condition combination should use standard SQL to combine the search maps (i.e. brackets, AND and OR), the placement of the SearchMaps should be done by putting the ZName of the SearchMap in square brackets where you want the condition to appear in the condition combination. NOTE: this element does NOT use the same syntax, capitalisation as the ConditionCombination tags used on Fields, FieldFillCalculations, Validations, FilterActions, Transitions, Actions, etc despite sharing the same name.
AutoRun causes the filter/report to run when loaded even before search parameters have been provided - it will use the defaults for the search fields or not filter on them.
NoRequery specifies that the search fields should not be re-displayed when the filter is run.
The zname of the GroupBys which should start expanded.
If set will allow user to order filter results. If not set then default behaviour is taken from system option 'filter_allow_user_field_ordering'.
If set will allow user to show/hide fields within the results by adding extra search fields. If not set then default behaviour is taken from system option 'filter_allow_user_field_hiding'.
Used as the default number of results to show.
Used as the upper limit on records per page that are showable. Cannot exceed internal limit of MaxFilterResultFields.
If this Filter may potentially contain a lot (i.e. more than 500) results then set this flag to true to trigger internal optimization.
If true then will apply tab indexes to search fields using @DisplayOrder. If not set then default behaviour is determined by system option enable_field_tab_indexes.
ZName of Field to append to the Block's title (which will be the name of the Filter).
For sorting multiple BlockTitleFields.
If true then filter will show HTML/CSV report options. Can be globally enabled/disable with system option 'no_autocreate_filter_report_actions'. Defaults to true if not set.
If true then filter will show import/export options. This will apply to the base table in the filter. Also should ensure ImportSettings are configured on the base table if needed.
If not used then access permissions on Filter will be determined by permission on its based table. Set RelationshipPermissionshere to override those.
Only used when generating reports. This is the search field to use as title of the report.
Only used when generating reports. This is the report field used to split the results up on.
Only used when generating reports. If set and grouping result this will add a page break between the result groups in the HTML report.
Set the minimum number of Search Fields which need to be set in order to display filter results. Default is 0, which doesn't require any Search Fields. Can use special 'all' value to require all Search Fields.
Boolean option to determine whether deleted records should show in this filter. Use 'optional' value to add a search field to the filter to allow user to show/hide deleted records.
In auto csv reports, deleted data is suffixed with **, set this to overwrite that. Can be set to empty to suppress deleted data highlights.
When filter returns only one result, this filter action should be automatically run on that result. Should not be a global filter action. Set as an empty element to disable for this Filter.
Disables tree view.
Puts the group headers after the content of the group.
For filters with lots of groups, prebuild a cache of results for each grouping level. Useful if filter is going to have a lot of different nested results. If not set then is assumed to be on, set to false to explicitly disable.
Currently only works for filters with at most one GroupBy. Uses new method of assembling results by cloning the first result and changing data, rather than building each result in turn. Should be faster in most cases.
Show help on field focus (not just on hover and touch devices).
The ApplyToGroups element contains the zname of a group this ReportField should show in. Value of * means all groups.
When using option on Filter AllowUserFieldOrdering will use this value to determine the default hidden state of a report field, i.e. if true then report field will start hidden and must be set to show. Defaults to false.
When User orders results by this field, if this is set then the data used from the ordering will be taken from the ReportField whose ZName is entered here.
When deleted records are showing, this field shall be highlighted to indicate deleted records.
Populate this field with its position in the results. This is done in a DB-agnostic way, i.e. it sets it after the SQL is run. Field will not be included in any SQL queries, so SQLName need not be set, just display details.
true
Can be either a static value or value from a field. Only applicable to fields with RowNumberField set. If set then will start row numbering from this value, or field's value, rather than 0. Number starts from +1 to this value. Value must resolve to a number.
Should be ZName, not SQLName used.
Condition should be a valid SQL WHERE clause, with ZZRF where the report field should go, and a ? where the search field value should go. If percentages are required then use the percent before and percent after flags.
The condition to be used when the if empty selector is checked. Should not contain any ?.
When a searchfield is not set, any search maps using it are added to the query with a clause that is always true. Set this value will cause a clause that is always false to be used instead.
If set then this search map will only be applied to the groups its parent report fields are in. By default this is false, meaning search maps apply at all grouping levels.
If set then the where clause will not be automatically passed to the 'HAVING' section if it contains an aggregate function e.g. if you've used a sub-query in the condition
If set then the where clause will automatically passed to the 'HAVING' section even if it does not contain an aggregate function
If FromMap is used then there should be a parameter called 'ActionType'.
Set this flag to prefix the zname with the system name. Useful for toolkit auto processes where zname contains the system name.
Used to map values from fields to parameters used by the FilterAction. In per_record mode will map to parameters to pass to any Zymonic objects created.
Set this flag to prefix the parameter name with the system name. Useful for toolkit based commands where the params rely on the system name.
Set this flag to get the Field from Search Fields instead of the report record (on a per-record action).
If mapping to a readonly field, set this flag to force it to use the sent value, otherwise value will be ignored.
If true then if this is a FilterAction that opens a Process, the Block it creates will automatically close after the first successful Transition in the Process.
When global and per_record is set, this Condition is run on each record in Filter results to determine whether this FilterAction may apply to that record.
The combination of conditions to use when determining if the FilterAction can be applied to a given record. Conditions are referenced by "Clause[zname_of_condition]" and can be combined with "and"/"or" (these are case sensitive and should be lower-case) between conditions, as well as use of brackets and "!" to negate a condition, as this expression is ran via Perl's "eval" function. If no ConditionCombination is set, typically the conditions are automatically combined using "and". NOTE: this element does NOT use the same syntax, capitalisation as the ConditionCombination tags used on Filters despite sharing the same name.
When global and per_record is set, if ActionType is Process or ParentProcess, this should be the ZName of the Transition that is required to be run on that Process.
When global and per_record is set, if ActionType is Process or ParentProcess, this should be mapping from a Filter record to the Form field in the Process.
If this is not present, then the FilterAction is assumed to be a single global FilterAction. If it is present then it should contain a comma separated list of groups should have this FilterAction applied to it. Have take value '*' meaning all groups.
If true any search field values will be dynamically mapped to the destination FaP. Mapping ZName will be the ZName of the Field within the ReportField that each SearchField is connected to.
The name of an icon image to accompany this FilterAction.
If set, then this FilterAction will be run on each record in the results, i.e. one FilterAction run against a user selection of records.
Sequence
The order in which FilterActions are displayed to the user. Note that the first in sequence will be the default action.
By default, the required values fields within search fields is ignored. This is so autofilters don't make their search fields required when a table has required input fields. Use this attribute to explictly make a search field required. If missing then result will not show.
ZName of the report field to group by.
ZName of the report field to put in the Description column. The field will be displayed in the form "Display Name: Value" after the expand/collapse option for this group.
If true then any results that have NULL values for the TargetField(s) in this grouping will be ignored. Set to false to include these values. Defaults to true if not set.
If true then the result count on parent filter will be for this grouping. Can appear on multiple groupings to show multiple counts.
DEPRECATED: Use GroupExpanded on the Filter instead.
ZName of the report field to order by.
This is a placeholder for building an element which describes the chart type, field names and additional properties to be used with DBIx::Chart.
These are used to create default records in the table specified by the Table element. They should be used sparingly as, although they only occur when the DB is rebuilt they could be time consuming on big tables as they need to check for existing records.
Lookup of existing will be done with case sensitive matching.
Comma separate list of field znames.
Comma separate list of field values.
Comma separate list of field values.
Comma separate list of field znames.
Redeclarable types are types which can be declared in one part of the document e.g. Fields in a table - and then redeclared in another part, possibly with changes, possibly without. E.g. a Field might be redeclared on a form with a different display name.
ZName
Unique identifier name for every object within the system. Leave empty to auto-generate.
ZName (short for Zymonic Name) is a unique identifier given to every object within a Zymonic System.
zz_system_definition_fg_names
true
ZNames must be unqiue across entire xml definition. ZNames should not start with 'ZZ' as this prefix is used internally within Zymonic and may cause errors. Where an element contains only a ZName then a Zymonic Object is being referenced by its ZName (the key). Where other elements are also present at the same level as the ZName then the Zymonic object is being defined and the ZName is the 'key' that can be referred to elsewhere. In some occassions, for Fields, may have the format zname1.zname2, this is used to define how to lookup a certain field. Currently can only use this lookup within Validation and Conditions.
The content of this should be a ZName of another object found in the system. On config build all objects within that Base object will be copied into the main object.
The content of this should be a ZName of an object found in the Base object. Hence it only makes sense to use this when using Base. When pulling through all the contents of the Base object, any which have a ZName which matches this value.
Will remove this category from this object. Used to prevent a category from base being used.
Optional element to contain any additional data on this object which might be needed by other parts of the system. Generally this will be specific subclasses. Should be formatted as follows to make it clear what is using the options: <TYPE class="CLASS">OPTIONS<\TYPE >
Optional element to add explanation of any security issues which have been acknowledged.
Optional element to add explanation of any DB optimization recommendations that have been ignored.
Set this attribute to include the the file named in the attribute as a stylesheet include in the HTML. Objects stored in the DB e.g. Page, Layout and Block will not obey this attribute.
Set this to true if this object has definition defined in code. Should only be used with objects that have a class attribute set on them. Will call the function 'sys_def_changes' to retrieve the synamic definition during configuration of system.
Should be set to acknowledge the security issues that the element presents. Config build will notify of issues which have not been acknowledged.
Should be set to ignore the DB optimization recommentations that the element presents. Config build will notify of issues which have not been ignored.
Short Description
text
4000
2
!"%&()+=:;\'?/#\\[\]|
zz_system_definition_fg_names
Brief description of this object. Will often show up in the GUI for the user.
Long Description
text
4000
4
!"%&()+=:;\'?/#\\[\]|
zz_system_definition_fg_names
Longer description of this object, used when generating documentation to better explain the purpose of the object.
Display Name
zz_system_definition_fg_names
!"%&()+=:;\'?/#\\[\]|
Name to display this object as within the system.
Used to join tables together. Eventual SQL from this will look like: [JoinFrom details] [JoinType] JOIN [JoinTo] ON [JoinCondition]
Should be a qualified join condition. The join to and from tables can be referenced with the placeholders ZZJOINTO and ZZJOINFROM. A deprecated format for referncing the tables is using the ZName of the TableInclude element and the zname of the joinfrom element. Use syntax [ZName] to have the Field with that ZName's field name put in its place. Can also use the form [[ZName]], which will be replaced by the field's current value. Additionally the form {{ZName}} will give access to the filter's searchfields.
If set, then when constructing the filter SQL using this TableInclude, its keyfields and sec_ids will not be included within the inner query grouping. By default this value is false, only set it to true if you know what you are doing, as setting it may cause incorrect aggregate fields to appear in the filter.
If set, then will ensure this join is done after the joins listed here.
Boolean option to determine whether deleted records should be included in this join. If present this is the value used, overwriting any value passed through from parents. Do not use this element to use value passed through from parent.
Used to set extra labels for translate in output
The contents of this element will be translated and output with the key, for use in XSL.
Used to define lock settings
Should we use locking here?
Message to display when unable to get lock.
How many attempts should be made to get the lock.
How long to wait between attempts, in seconds.
If the lock has been in place longer than this amount of time, in seconds, then any other process which attempts to get the lock will verify that the current lock is valid.
Used to define system option settings
Used to determine if option should show in GUI to be changed by the user. Defaults to false.
Can this option have its value cached on session? This means that changes to the option will not take effect until the cache expires (determines by system_option_cache_expiry option). Defaults to true.
If true will skip system options cache to look up actual value. Only currently used from within FieldFillCalculation.
Used to define system option setting value, useful to auto set options for clients
Used to Process API calls to be run on config build to create default processes in a system.
Table to check parent_process_id of to check for existing process.
Define the where clause on above table records.
Process XML to run to add/update processes. Doesn't need Authentication or ZymonicHeader.
If true will insert new process when no existing process if found. Default is true.
If true will update existing process when found. Default is false.
Sequence
Sequence to run the default processes in.
Defines outgoing messages generated by the system.
Determines how this message is sent. Can have multiple values which will be iterated over in sequence.
Sequence
Used to determine the order in which the CommunicationTypes are run.
How many times to try using this CommunicationType, defaults to 1.
How long to timeout using this CommunicationType, in seconds, defaults to 10.
When multiple CommunicationTypes are used, if this is false then the message will only be sent using the first CommunicationType which works. If this is true it will attempt to send using all CommunicationType selected. Defaults to false.
Used to attach reports to messages.
Description of this report. Used when forming links to this report.
Determines which communicate types this Report can be run for. For example may want report to run for emails, but not SMS.
Sequence
Used to determine the order in which these reports are run.
Used to determine contacts for messages. May be subclassed to allow contact details to be looked up from, e.g. user record or filter.
When this contains multiple contacts, should the message be sent to all of them, or round robin through them until the first successful one.
Sequence
Used to determine the order in which these contacts are used.
How many times to try using this Contact, defaults to 1.
How long to timeout using this Contact, in seconds, defaults to 10.
Details of the message to send.
Message to send. Special replacements are: 1. [[zz_link]] - if used will be replaced with a HTML link to the page the filter/process is on. If not present will add it to TargetPage below. 2. [[AttachReport ZName]] - if used will be replaced with a HTML link to the specified report. 3. [[zz_output]] - Possibly instead of a report.
Message subject where needed, e.g. email. Has same replacements as MessageText
When using [[zz_link]] in the message text above, if this is true then the link will be to the existing Filter/Process block, if one exists. Defaults to false.
When using [[zz_link]] in the message text above and either UseExistingBlock is false, or there is no existing block, then will create a new Filter/Process block on this page and location (or default page location if none set).
If set then will wait for acknowledgement of a message sent. Acknowledgement should match this regular expression. Current only applicable to XMPP. The main use for this is when doing a Round Robin of messages, we keep sending to ach contact until we get an ackowledgment. Ensure you make it clear in the MessageText that it will need acknowledgement, and how to acknowledge.
When using acknowledgements this is how long to timeout waiting for a response, in seconds. Defaults to 30.
Message to send to user on receiving a valid acknowledgement. If not set then no message will be sent to user on receiving a valid acknowledgement.
Message to send to user on receiving an invalid acknowledgement. If not set then no message will be sent to user on receiving an invalid acknowledgement.
Method to control the output format of a form.
Sequence
Used to order the FormFormats in the case there are multiple in use within a Form.
DefinitionSources are used to define other sources for definitions for this system, other than XML files, e.g. database tables.
Used to dynamically alter elements/attributes for various parts of the system definition. Useful for easily enabling/disabling functionality for specific ZNames.
ZName of the object to adjust.
Name of the element to add.
Name of the attribute to add. Will only be used if element is not set.
Value of the element, or attribute, being set.
Used to add XSL to the Main and Block XSL
Used to add custom js
Map filter action to a field group to select on the block that opens
Parent form of the field group.
Field group to be selected when the block opens.
Element describing how to do matching - initially within incoming messages e.g. emails.
ZName of the process that will be loaded to handle the incoming message.
ZName of the transition that will be run to handle the incoming message.
Name of the field of the incoming message that will be checked by the regex, e.g., Subject
Regular Expression that will be used to analyse the field - ensure that the number of bracketed parameters matches the number of parameters defined.
ZName of the table that will have an SQL query run on it to find the process id.
ZName of the field that will be used for matching in the Lookup Table.
Parameter name to put the bracketed term from the regex into - this parameter will then be passed to the constructor of the Process object e.g. process_id would get passed through as the process_id. To set the Lookup field then the ZName of the lookup field should be the content of the Parameter element.
The sequence will be the order in which any bracketed terms in the Regex get assigned to Parameters.
Process to use when creating new records in this table via synchronize_csv.
Field to use to lookup parent_process_id for new record. Usually the field which links to parent form in subforms.
State to set as initial state when creating new records in this table via synchronize_csv. If not set will use the Process's InitialState.
Transition to run on underlying process when creating new records in this table via synchronize_csv. Comma separate if multiple, will use first one that is valid for the current state.
Transition to run on underlying process when updating records in this table via synchronize_csv. Comma separate if multiple, will use first one that is valid for the current state.
Transition to run on underlying process when deleting records in this table via synchronize_csv Comma separate if multiple, will use first one that is valid for the current state..
Transition to run on underlying process when looking up records in this table via synchronize_csv. Comma separate if multiple, will use first one that is valid for the current state.
Forces running of any update transitions on imported lines that were skipped due to no changes needed.
Used to map a value to a transition zname, e.g. Live=zz_make_live_transition. Useful for import data to not have to have long znames. Can mave multiple.
ZName of the transition to run on import. When multiple, the first one which is valid for the current state of the relevant process will be used. Use sequence attribute to set order.
Sequence
Sequence to order multiple transition option.