In order for the abstraction layer to work, additional schema definitions are added to eDirectory™. The schema extensions add objects and attributes that store the process definitions and process states.
DirXML-Processes: An object class. It is a container object that can be created anywhere in the directory. It is the central repository for the process definition objects. It contains a name and optional description.
DirXML-Process: An object class. It is the process definition object. It stores the definition of the process. Objects of this class are named after the process type used in the process table. It contains a name, an optional description, and the process definition in XML format.
DirXML-ProcessDef: An attribute. It is the process definition in XML format. (Not yet implemented.)
DirXML-ProcessesAux: An auxiliary class. It stores attributes that contain the process table and history. Because it is an auxiliary class, processes can be defined for objects of any class.
DirXML-ProcessTable: An attribute. It contains a list of the currently running processes. After a process is finished, it is removed from this table.
Each process is represented as a delimited string and the attribute is a substring indexed to make queries efficient. The delimiter used to separate the fields inside a process is the pound sign #. See Table 5-2 for a list of the defined fields.
DirXML-ProcessHistory: An attribute. It contains all of the previous states of a running process. After the process is finished, all entries in the history pertaining to that process are removed. DirXML-ProcessHistory entries follow the same format as the entries in the DirXML-ProcessTable attribute. See Table 5-2 for a list of the defined fields.
Table 5-2 DirXML-ProcessTable and DirXML-ProcessHistory Fields.
Field |
Format |
Description |
---|---|---|
type |
String |
Identifies the process through its name, such as hire or termination. The value in this field must match the name of the DirXML-Process object that defines the process. |
state key |
Signed Integer |
Tracks the current state of the process. |
pid |
String |
A unique process identifier. |
time |
YYYYMMDDhhmmss |
The last time and date the process was updated. |
state name |
String |
A human-readable string describing the state. This is closely linked to the state key. It is recommended that camel-case is used and no spaces or special characters are added. |
params |
String |
Parameter necessary to perform the requested step. |
msg |
String |
An optional result status message. |
The following example shows how the DirXML-ProcessTable attribute and the DirXML-ProcessHistory attribute are used. This information is taken from an LDIF export of a user object.
DirXML-ProcessTable: elcp#10#PID0000124950#20080208013104#hired## DirXML-ProcessHistory: elcp#0#PID0000124950#20080208010831#enabled## DirXML-ProcessHistory: hire#0#PID0000124951#20080208010832#enabled## DirXML-ProcessHistory: hire#39#PID0000124951#20080208010832#noConfirmationRequired## DirXML-ProcessHistory: hire#40#PID0000124951#20080208010832#readyForHire## DirXML-ProcessHistory: hire#49#PID0000124951#20080208010832#directHirePending## DirXML-ProcessHistory: hire#50#PID0000124951#20080208013057#directHireComplete## DirXML-ProcessHistory: hire#99#PID0000124951#20080208013058#completionPending## DirXML-ProcessHistory: elcp#9#PID0000124950#20080208010831#startHire## DirXML-ProcessHistory: hire#100#PID0000124951#20080208013101#completed##