Unit of Information
What is a Unit of Information?
A "Unit of Information" (UoI) is the complete set of metadata about a "Managed Object" in ShareAspace. Examples of Managed Objects are Parts, Documents, Requirements, etc. Taking Part as an example, the UoI of a Part includes information about that Part and all its versions. All Managed Objects (UoIs) can be "SoftTyped". UoIs can have references to other UoIs. The reference itself is contained within the UoI that is referring to another UoI.
Example:
A Master contains a set of Versions and each Version may contain one or more Definitions.
An instance of a Master with all its contained objects (including identifiers, names,
descriptions, versions, other attributes, references etc.) is considered a UoI.
A UoI can reference other UoIs, the referring UoI contains the reference but not the referenced UoI.
Update and Creation Metadata
A UoI and the entries that form a part of the UoI e.g. identifiers, names, descriptions, versions, definitions, references, etc. have metadata. The metadata is information about the instance itself, such as when it was created and possibly updated as well as who was the creator or who did the update.
The creation date and the creator is set when a UoI or entry is created and it will never change. At that point no data is set for the update date and updater. When a new entry is created it is added as a child to an existing entry or UoI, the action will lead to the parent entry or UoI getting a new update date and a new updater. When anything is updated the entry or UoI update date and updater will change and also the parent if it the updated item is not an UoI. The update date and updater data will propagate up to the next pivot object i.e. Master, Version or Definition.
Example
A UoI is created by adam.brown@eurostep.com
at 2001-01-01
but has not been updated.
All entries and the UoI will have adam.brown@eurostep.com
as creator and all entries and the
UoI will have 2001-01-01
as creation date.
A reference is then added to the definition by beth.smith@eurostep.com
at 2015-12-01
. The
creator will remain for the UoI and the pre-existing entries but for the new reference
beth.smith@eurostep.com
will be the creator with creation date set to 2015-12-01
.
The definition will get its updater set to beth.smith@eurostep.com
and the update date will be
set to 2015-12-01
. The version and master metadata are not changed.
The reference is then updated by adam.brown@eurostep.com
at 2018-06-01
and the updater of
the reference and the definition is changed to adam.brown@eurostep.com
and also is the update
date for the reference and the definition changed to 2018-06-01
. The version and master
metadata is not changed.
If the reference had been created on the version the metadata propagation would have gone up to the version but not to the master nor the definition. The pattern is the same for a reference created/updated on the master.
Delete UoI
A Unit of Information (UoI) can be deleted. However, it is not completely deleted. Instead it enters
a status called tombstone
where all links and data are removed from the UoI but there
remains a small remnant of the UoI left so that objects that previously referred to the
removed UoI will not be left with invalid references.
There is a status on each UoI called "Availability" and it can have the following values:
None:
The UoI status is unknown.NoAccess:
There is no access to the UoI.Active:
This is the default state of a UoI, it is searchable and operational.SoftDeleted:
The UoI is soft-deleted, removed from end user access. No longer part of uniqueness checks. Can only be found via navigation to the object. Cannot be reactivated.Deleted:
The UoI is hard-deleted. The internal data are removed. Only entry related meta data partially remain to maintain external reference integrity. This is also called a "tombstone." Cannot be reactivated.Destroyed:
The UoI has been removed in its entirety and can never be reactivated. Not implemented and would not be visible.
The capability to "Delete" a UoI is now available In the "Model Browser" window. There you will find the button "Remove" that allows you to "delete" a UoI and thereby set the "availability" to "Deleted":
The result is that a "deleted" UoI cannot be updated/read/deleted from the SoftType engine. It also will not be returned by queries. It can only be used internally for external reference and it will be able to be fetched by oid from the DataStore before the purge step. Referring to its entry is possible in SoftType update but not in SoftType create.
Deletion example
Before deletion of the UoI you can see that all the references are pointing to a complete UoI:
However, after the deletion of the UoI, you see only a tombstone left.
Then if you click on the tombstone you see nothing inside the UoI and the "availability" is set to "Deleted".
Outside of the "Model Browser" you should never be able to see the instance any more except from within an "update" dialog.
Generic module
In the "Generic Module" you can add the action "Delete" as well as "Multi-Edit-Delete".