In Simple words Aliases are placeholders that can hold any of the following
1) A User or a Group Name
2) Folder information
Alias is a key value pair where key is the alias name and value is the actual value.
Alias Sets are the Collection of Aliases (Which has alias names and its values)
Typical uses of Aliases
1) Dynamically Resolve task performers in a Workflow
2) Set up ACL, ACL Domain, and Owner name in a Sys Object or its subtypes.
3) Dynamically link or unlink an object of Sys object or its subtype with a Folder path
4) Also used in Template ACL’s (I will explain more about Template ACL in another study note soon)
Internals of an Alias and Alias sets
Documentum uses an Object type named dm_aliase_set to store the aliases and its values. All the objects of this type will have a r_object_id starting with “66”
Let’s see the attributes of this object type
Name |
Info |
Description |
|
alias_category |
Integer (Repeating) |
This defines the category of the aliases value in the corresponding index. These are the possible values and its corresponding categories |
|
Value |
Category |
||
0 |
Unknown |
||
1 |
User |
||
2 |
Group |
||
3 |
User or Group |
||
4 |
Path of Cabinet |
||
5 |
Path of Folder |
||
6 |
Name of ACL |
||
alias_description |
String (255) (Repeating) |
This defines the option description for individual alias values that correspond to the index in alias names. |
|
alias_names |
String (32) (Repeating) |
The name of alias for the corresponding index in the alias values. (This Sting cannot have (.)) |
|
alias_usr_ category |
Integer (Repeating) |
Placeholder for defining user-defined categories for alias values. |
|
alias_value |
String (255) (Repeating) |
The corresponding values for the Aliases defined the corresponding index in the alias names] |
|
object_name |
String (32) (Single) |
Name of the Alias set
|
|
object_description |
String (128 ) (Single) |
Description of the alias sets |
|
owner_name |
String (32) (Single) |
The name of the user who owns this alias sets. |
So now you have seen what makes a dm_alias_set object, now let’s clarify how an Alias is defined within an Alias set.
Alias_names stores the name of the Alias and Alias_value stores the corresponding value for the Alias and it’s stored as a repeatable attribute. Means value of an index position defines an Alias Category, Alias Name and Alias Value
In an example of an Alias manager = John Smith the index of listing manager in attribute alias_name and index of listing John Smith in attribute alias_value will be same
Alias Reference and Scope of Alias
Alias is referenced used %alias_name
Referencing an Alias can also include Object_name of Alias Set; in that case, the reference will be %alias_set_object_name.alias_name
So if the alias is referenced with the Alias set names (%alias_set_object_name.alias_name
) Server finds the Alias set by name and picks up the Alias name and resolve its Alias value, this is pretty much a straightforward job for the server to do.
But where the Alias name is referred without Alias set name the Server searches for the Alias in some specific scopes, This Order, and location, where the search is made for alias, depends upon where that alias is referenced.
The following table describes few important Scopes, underlying object type and attribute of that object that helps server to identify the alias set to resolve the alias names.
Scope |
Object type |
Attribute |
Notes |
User |
dm_user |
alias_set_id |
Server user alias_set_id property of the user who has done the action that resulted in alias resolution. |
Group |
Dm_group |
alias_set_id |
Default group of the user who performed the action |
Lifecycle |
Dm_sysobject |
R_alias_set_id |
R_alias_set_id is set by the server when the object is attached to a lifecycle. |
Server Configuration |
Dm_server_config |
Alias_set_id |
This alias set object represents the alias set that’s used as the default system-level Alias set. |