Both sides previous revision
Previous revision
|
Next revision
Both sides next revision
|
devel:documentation:synchronization:dev:contract-slice-sync [2019/08/13 13:30] doischert [Fields for sync contractual relationship mapping] |
devel:documentation:synchronization:dev:contract-slice-sync [2019/08/13 14:06] doischert |
{{tag> sync contract slice}} | {{tag> sync contract slice}} |
| |
<note tip>**Time slices of identity (contractual) relationship synchronization** works according to the same rules as identity synchronization. In this page we will described only extra behavior specific for this synchronization.</note> | <note tip>**Time slices of identity (contractual) relationship synchronization** work according to the same rules as identity synchronization. In this page we will describe only behavior different from standard synchronization.</note> |
| |
<note> **Sync of contract slice** using specific configuration from sync of contract. **Valid till date** is set only if slice is last (in sync)!</note> | <note> **Sync of contract slice** uses the same configuration as the sync of contract. **Valid till date** is set only if the slice is last (in sync)!</note> |
===== What is time slice of contractual relationship ===== | ===== What is time slice of contractual relationship ===== |
<note tip>**Typically one contractual relationship is equals to one contract in company for the identity.** One slice of the contractual relationship describes how looked the contract in specific time slot. Sync of slices persists slices to the entity `IdmContractSlice` and creates relation on the account with entity `AccContractSliceAccount`. If more slices exists for same contract, then only one is using as source at one time.</note> | <note tip>**Typically one contractual relationship is equal to one contract in company for the identity.** One slice of the contractual relationship describes the state of the contract in a specific time slot. Sync of slices persists slices to the entity `IdmContractSlice` and creates relation with the account with entity `AccContractSliceAccount`. If more slices exist for the same contract, then only one is used as source at one time.</note> |
| |
===== Actions after end of sync ===== | ===== Actions after end of sync ===== |
| |
<note important>Actions executes after end of sync are **not executed** when user **canceled sync**!</note> | <note important>Actions executed after the end of sync are **not executed** if user **canceled sync**!</note> |
| |
==== Select current contract slice ==== | ==== Select current contract slice ==== |
| |
Before HR process is executed long running task select current contract slice. This options is controlled by checkbox *After end, start HR process*. LRT is started synchronously and complete log will contain information about it. | Before HR process the long running task "select current contract slice" is executed. This options is controlled by checkbox *After end, start HR process*. LRT is started synchronously and complete log will contain information about it. |
| |
==== HR processes ==== | ==== HR processes ==== |
[[devel:dev:workflow:hr-processes| HR processes]] in the base ensure the correct state of identity depending on the state of their contractual relationships. Because we need to evaluate the status of contractual relationships as a whole (to a given identity), it is not possible to trigger HR processes during the synchronization of each contractual relationship. Therefore, no HR processes are executed during this synchronization. | [[devel:dev:workflow:hr-processes| HR processes]] basically ensure the correct state of identity depending on the state of their contractual relationships. Because we need to evaluate the status of contractual relationships as a whole (to a given identity), it is not possible to trigger HR processes during the synchronization of each contractual relationship. Therefore, no HR processes are executed during this synchronization. |
| |
HR processes can be (**should be**) correctly started after the end of the sync. This can be ensured by the property `After end, start the HR processes` on the detail of sync configuration. If is this property ticked, then HR processes '**Enabled contract**', '**End of contract**', '**Contract exclusion**' (in this order) will be automatically started after correctly end of contract relationships sync. | HR processes can be (**should be**) correctly started after the end of the sync. This can be ensured by the property `After end, start the HR processes` on the detail of sync configuration. If this property is ticked, then HR processes '**Enabled contract**', '**End of contract**', '**Contract exclusion**' (in this order) will be automatically started after correctly end of contract relationships sync. |
| |
==== Automatic roles ==== | ==== Automatic roles ==== |
* ID of IdM identity in String or UUID format. | * ID of IdM identity in String or UUID format. |
* Username of IdM identity in String. | * Username of IdM identity in String. |
* **Main** - Define if is the contract main (between all contracts for the identity). Output from attribute transformation must be Boolean. | * **Main** - Defines if is the contract main (between all contracts of the identity). Output from attribute transformation must be Boolean. |
* **State** - State of contract. Output from attribute transformation must be enumeration ContractState or String representation for this enumeration (DISABLED, EXCLUDED) (more details see below). | * **State** - State of contract. Output from attribute transformation must be enumeration ContractState or String representation for this enumeration (DISABLED, EXCLUDED) (see below for more details). |
* **Position** - String representation of contract. Typically name of contract. | * **Position** - String representation of contract. Typically name of contract. |
* **Guarantees** - List of leaders, directly linked on the contractual relationship (more details see below). | * **Guarantees** - List of superiors, directly linked to the contractual relationship (see below for more details). |
* **Work position** - Define link to some tree node. Generaly define place in organization structure (more details se below). | * **Work position** - Defines link to some tree node. Generally defines a place in an organization structure (see below for more details). |
* **Valid from of contract** - Validity for the contractual relationship. Output value from attribute transformation must be 'org.joda.time.LocalDate' (or String in the format `yyyy-MM-dd`). | * **Valid from of contract** - Validity for the contractual relationship. Output value from attribute transformation must be 'org.joda.time.LocalDate' (or String in the format `yyyy-MM-dd`). |
* **Valid till of contract** - Validity for the contractual relationship. Output value from attribute transformation must be 'org.joda.time.LocalDate' (or String in the format `yyyy-MM-dd`). | * **Valid till of contract** - Validity for the contractual relationship. Output value from attribute transformation must be 'org.joda.time.LocalDate' (or String in the format `yyyy-MM-dd`). |
* **Externe** - If is the contractual relationship for externe identity, then is output value (boolean true) . | * **Externe** - If the contractual relationship for identity is set as extern, then the output value is (boolean true). |
* **Description** - String for description the relation. | * **Description** - String for description the relation. |
| |
| |
==== Guarantees field ==== | ==== Guarantees field ==== |
List of leaders, directly linked on the contractual relation. Linked leader must exists in IdM. | List of superiors, directly linked to the contractual relation. Linked leader must exists in IdM. |
Output from attribute transformation can be: | Output from attribute transformation can be: |
* Username of leader (String). | * Username of superior (String). |
* Id of leader (UUID or String). | * Id of superior (UUID or String). |
* List of usernames (List<String>). | * List of usernames of superiors (List<String>). |
* List of Ids (List<String> or List<UUID>). | * List of Ids of superiors (List<String> or List<UUID>). |
* Null value. If is value not defined and in sync configuration has set '**Default leader**', then will be this leader set to relation. | * Null value. If the value is not defined and in sync the configuration is set to '**Default leader**', then this leader will be set to relation. |
| |
If some leader will not found. Then will be synchronization item marked as 'warning' (relation will be created/saved). Detail information will be saved in item log: | If some leader is not found the synchronization item will be marked as 'warning' (relation will be created/saved). Detailed information will be saved in item log: |
| |
<code> | <code> |
| |
==== Work position field ==== | ==== Work position field ==== |
Define link to some tree node. Generaly define place in organization structure. | Defines a link to some tree node. Generally defines place in an organization structure. |
Output from attribute transformation can be: | Output from attribute transformation can be: |
* Id of tree node (UUID or String). | * Id of a tree node (UUID or String). |
* Code of tree node. Node by code will be searching in default tree (define in sync configuration '**Default type of structure**'). | * Code of a tree node. Node by code will be searched in default tree (define in sync configuration '**Default type of structure**'). |
* Null value. If is value not defined and in sync configuration has set '**Default position in structure**', then will be this node set to relation. | * Null value. If the value is not defined and in sync the configuration is set to '**Default position in structure**', then this node will be set to relation. |
| |
If node will not found. Then will be synchronization item marked as 'warning' (relation will be created/saved). Detail information will be saved in item log: | If a node is not found the synchronization item will be marked as 'warning' (relation will be created/saved). Detailed information will be saved in item log: |
| |
<code> | <code> |
</code> | </code> |
<note important> | <note important> |
When isn't work-position attribute defined in the mapping, then **none** default position will be set.</note> | If a work-position attribute is not defined in the mapping, then **no** default position will be set.</note> |
| |
==== State field ==== | ==== State field ==== |
State of contract. Output from attribute transformation must be enumeration ContractState or String representation for this enumeration. | State of contract. Output from the attribute transformation must be enumeration ContractState or String representation for this enumeration. |
| |
ContractState have this values: | ContractState has these values: |
* **[[..:..:identities:dev:contractual-relationship#invalid_cr|DISABLED]]** | * **[[..:..:identities:dev:contractual-relationship#invalid_cr|DISABLED]]** |
* **[[..:..:identities:dev:contractual-relationship#invalid_cr|EXCLUDED]]** | * **[[..:..:identities:dev:contractual-relationship#invalid_cr|EXCLUDED]]** |
| |