Properties of fields: Record types
On the Record types tab, which is present only when you have selected a new or existing field in a database for which a Record type field has been set, you determine the access rights for this field based on the record type of a displayed or edited record, to restrict access to the field.
It is in fact a more robust way of limiting the use of fields than the older screen level conditional fields functionality provides, as they both allow you to hide a field based on the value in some other field. One important difference though, is that the new functionality relies on the need for and existence of a record type field which actually allows the user to register different record types in one and the same dataset. Another difference is that conditional fields are a very superficial way of hiding fields: if a database field appears on multiple screens, the field condition must be set on as many screens. The record type based way of limiting the use of certain fields however, is as pervasive as other access rights on database level: once you set field access rights based on record type, the access rights will automatically apply to all entry fields on screens associated with the relevant data dictionary field, and even to any access points associated with the (indexed) data dictionary field. So the effects won't just be noticeable on screens in Collections (where certain fields will be hidden for certain record types), but the access points list in the Standard search will be affected too, presenting a record type drop-down list to filter the listed access points. And the searched records will also actually be filtered on that record type, so the user will only find records of that particular record type.
In effect, the record type access rights are an extra access rights mechanism next to the existing role-based access rights mechanism. Before a field is displayed on a screen, Collections will check all applicable access rights and applies the most restrictive of those rights.
This functionality has effect in Axiell Collections 1.0 and higher.
Click here for information on how to edit properties in general. On the current tab you'll find the following settings:
Record types
Here you may define which Record types have which Access rights to this field. You can indicate for each record type whether no access (None), Read access, Write access or Full access must apply. If a record type field has been specified for a database (activating the current tab), then for all fields Full access rights have to be specified for the record types for which these fields must be visible on screens! You may assign record type access rights in three different ways:
• | You could do that here per field by specifying all desired record type/access rights combinations. Click an empty box in the Record type column to open a drop-down list showing you all possible values from the designated enumerative record type field: select a record type and set the desired access rights in the column next to it. If you'd like the current field to be hidden on all screens for certain record types, then select each of those record types here and assign access rights None. On the other hand, record types which must have access to the field must be given the access rights Full. Or choose Read to make a field read-only for the record type. Any record types which are not assigned any explicit access rights here on the Record types tab, will have None access rights implicitly if you haven't specified default Full access rights for "record type" $REST on database level (see third bullet point below)! |
• | You can do it in batch for a selection of fields at once: in the Application browser Field list display (the right window pane which will be shown after you click the Fields list header in the tree view on the left), simply select all the fields to which you'd like to assign identical access rights (use Ctrl+clicking or Shift+clicking), right-click your selection and choose Set record types at the bottom of the pop-up menu which has opened. The Set record types window will open, allowing you to set access rights per record type in the same way as you would on the Record types properties tab, but for all selected fields at once. If any of the selected fields already contain record type access rights, then those will be overwritten as far as you specify them here in the Set record types window: other record type access rights will remain as they were while previously unspecified record types will be added, together with their new access rights, if you specify them now. Removing record type access rights must still be done manually, per record type/access rights setting per data dictionary field. |
• | If a record type field has been specified for a database, then for all fields Full access rights have to be specified for the record types for which these fields must be visible on screens. Now you don't have to edit each field in the data dictionary to make it visible on screens again after setting a record type field: a database for which a record type field has been specified, presents an extra properties tab called Default record types. All you do there is specify the default access rights per desired record type or $REST, which should apply to all fields for which that record type has not been assigned any access rights explicitly. $REST stands for all record types which have not been assigned access rights for a field. For example, after specifying a record type field for database Collect, all fields on all screens in the object and archive data sources would be hidden by default. To fix this, simply specify Full access rights for "Record type" $REST on the Default record types properties tab of Collect. Since no specific record type access rights have yet been specified per field, this will just show all fields again, for any record type. Note that record type access rights on field level always override the default access rights for the same record type on database level. |
If you set record type access rights for a linked field, preferably also set the same access rights for its link reference field.