GUID Support
A Globally Unique Identifier (GUID) is a persistent unique reference number used as an identifier in computer software. The term GUID typically refers to various implementations of the Universally Unique Identifier (UUID) standard but is often more generally used to refer to other unique identification methods. Comprehensive details about UUIDs, such as how they are stored (typically as 128-bit values, commonly displayed as 32 hexadecimal digits with groups separated by hyphens) and how they are generated can be found on Wikipedia.
With increasing global initiatives in data sharing, the need for a unique identifier for each discrete bit of data is increasingly important. Already organizations such as the US National Science Foundation (NSF) mandate the use of GUIDs for those wishing to participate in its programs.
GUID support is being implemented in EMu in four phases:
- Storage of GUIDs in EMu modules
- GUID generation on EMu record save
- Local IMu web service for local resolution of EMu GUIDs
- Global IMu web service portal for global resolution of EMu GUIDs
As of July 2014 the first two phases have been completed.
Read on for details of:
Almost all EMu modules are capable of making use of GUIDs. Exceptions include:
- Audit Trails (eaudit)
- Condition Checks (econdition)
- Field Help (efieldhelp)
- Gazetteer (egazetteer)
- Internal Movements (einternal)
- Scheduled Operations (eoperations)
- Registry (eregistry)
- Statistics (estatistics)
- Valuations (evaluations)
where the use of GUIDs is thought to be unnecessary. For all GUID capable modules a GUIDs table displays on the Admin tab, allowing GUIDs to be added, edited, displayed, searched and included in reports:
The GUIDs table comprises three columns:
Field |
Value |
---|---|
Preferred | Yes / No. Only one GUID in the GUIDs table can be marked as preferred. |
Type | Lookup List of GUID types. |
GUID | The GUID itself. |
The GUIDs table can hold multiple internally generated and externally generated identifiers.
The GUID fields are also available for querying in Search mode:
EMu can auto-generate GUID values on record save. Currently, GUIDs are auto-generated in compliance with UUID Version 4.
Note: EMu's GUID support is extensible and it is possible for organizations to substitute or extend the base EMu code to generate other or additional GUIDs. Please contact EMu Support for details.
By default, GUID auto-generation is disabled for all modules.
In order to enable auto-generation of GUIDs in a module (or system-wide), the two GUID Registry entries must be specified:
- GUID Enabled Registry entry must be set to
true
-AND-
- A GUID Auto Types Registry entry must specify which GUID type(s) to generate for a module (or system-wide). Currently only
UUID4
is supported.
On record save EMu checks whether the GUIDs table includes an entry for each type specified in a GUID Auto Types Registry entry, and generates a GUID for each type that is missing.
Currently EMu will auto-generate a UUID Version 4 GUID if one has not already been added to the record's GUIDs table.
- Organizations may need to consider their policy for deleting records that contain locally generated GUIDs. Once a record is assigned a GUID, that record should generally never be deleted. Our preference has always been that records are Retired (using Record Level Security settings) rather than deleted. A Retired record is hidden from all users except for those authorized to view it.
- The merging of records that contain GUIDs is another case to be considered. Organizations may want to retain the old GUID(s) from the merged record(s) within the GUIDs table on the master record (i.e. the one into which the merge took place).