Starting in version 7.10, Specify supports independent subviews. This enhancement allows users to efficiently search, add, and remove records to a one-to-many subview. These can be displayed both as a traditional embedded subview or as a button.
An Independent Subview can be distinguished from its dependent counterpart (for both button/non-button subviews) by a magnifying glass which is used to search existing related records, or a link icon.
Unlike dependent records, because the records can exist without each other (hence independent), removing a related record from an independent collection only removes it from the associated relationship and does not delete the record.
Unless a resource is explicitly saved/deleted in a dialog (in which case only that specific resource is modified), no changes are made to any of the related records until the “base” record is saved.
Example Use Cases:
- Adding Collection Objects to an Accession from the Accession form.
- Adding Collection Objects to a Collecting Event from the Collecting Event form (when shared).
Searching for Records
Each independent relationship is represented by a magnifying glass icon next to the corresponding subview.
Opening the Search Dialog
Clicking on the magnifying glass icon will open a search dialog, similar to the one found next to a query combobox.
In this dialog, you can search for collection objects using various criteria, including:
- Catalog Number
- Alternate Catalog Number
- Project Number
Note that the fields available to search can be defined in a custom form definition and vary by table.
Using the Query Builder
Clicking the Query Builder button will open the query builder interface, allowing you to create custom queries and select multiple collection objects to add to the accession.
Accessing Record Sets
In the search dialog, you will also find a Record Sets button. Clicking this will open a dialog displaying all record sets associated with the same base table as the one you are searching. From here, you can add these record sets to your current record.
Technical Details 
Some of the technical details on how this feature works!
Save Blocking
When the subview is not being rendered as a button, if there are any fields blocking the record from being saved (required field, invalid value), they will be block the save button.
Adding New Records to an Independent Subview
When the viewname
of the subview is the same view as the default data entry form for the table, the new record is directly added to the collection. If the viewname
for the independent subview is not the default for the table, a separate dialog will be used to create the new record.
Version Control
To handle version control and ensure that the related records do not get out of date, in the background Specify will only care about the values of the related objects (Collection Objects related to an Accession for example) when they are explicitly changed.
In other words, you should only experience an out-of-date error on the “base” record if you attempt to save the “base” record when a change to a related record was already made (i.e., the version has been incremented) and you have made changes to the related record from the “base” record.