Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
devel:documentation:synchronization:dev:contract-slice-sync [2019/08/13 14:06] doischert |
devel:documentation:synchronization:dev:contract-slice-sync [2020/04/06 18:25] (current) kubicar [Fields for sync contractual relationship mapping] |
||
---|---|---|---|
Line 2: | Line 2: | ||
{{tag> sync contract slice}} | {{tag> sync contract slice}} | ||
- | <note tip>**Time slices of identity (contractual) relationship | + | <note tip>**The synchronization of time slices of identity' |
- | < | + | < |
- | ===== What is time slice of contractual relationship ===== | + | |
- | <note tip>**Typically one contractual relationship is equal to one contract in company for the identity.** One slice of the contractual relationship describes | + | ===== What is the time slice of contractual relationship ===== |
+ | |||
+ | Typically one contractual relationship is equal to one contract in company for the identity. One slice of the contractual relationship describes | ||
+ | |||
+ | From these slices (specifically the latest one), a contract is built. This contract is managed only by time slices and cannot be modified directly. | ||
===== Actions after end of sync ===== | ===== Actions after end of sync ===== | ||
- | <note important> | + | After the synchronization, |
+ | |||
+ | <note important> | ||
+ | |||
+ | ==== Running HR processes manually ==== | ||
+ | |||
+ | As mentioned above, sometimes, you need to run HR processes manually. Each HR process is a long-running task a can be run from Settings > Task scheduler > Scheduled task. There you can run the desired LRT by simply clicking the green arrow button. | ||
+ | |||
+ | You should run HR processes in this order: | ||
+ | - `ClearDirtyStateForContractSliceTaskExecutor` | ||
+ | - `SelectCurrentContractSliceTaskExecutor` | ||
+ | - `HrEnableContractProcess` | ||
+ | - `HrEndContractProcess` | ||
+ | - `HrContractExclusionProcess` | ||
+ | |||
+ | For more details about some of them, see below. | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | So, in a situation where you ran the synchronization and either cancelled it manually before it finished and the HR processes ran or just decided to sync your contracts again (perhaps the data changed), | ||
+ | |||
+ | ==== Clear dirty state for contract slice ==== | ||
+ | |||
+ | This LRT deletes those slices which have the flag " | ||
==== Select current contract slice ==== | ==== Select current contract slice ==== | ||
- | Before HR process the long running task " | + | Before HR processes proper are executed, this long running task selects the current contract |
- | ==== HR processes ==== | + | ==== HR processes |
- | [[devel: | + | |
- | HR processes can be (**should be**) correctly started after the end of the sync. This can be ensured | + | <note important> |
+ | |||
+ | [[devel: | ||
+ | |||
+ | There are three HR processes: HrEnableContractProcess, | ||
+ | |||
+ | HR processes can be (**should be**) correctly started after the end of the sync. This can be ensured | ||
==== Automatic roles ==== | ==== Automatic roles ==== | ||
- | Recalculation of automatic roles is skipped during sync. Recalculation of automatic roles can be (**should be**) correctly | + | Recalculation of automatic roles is skipped during sync but it can be (**should be**) started after the end of the sync. This can be ensured by the property ' |
{{ : | {{ : | ||
===== Fields for sync contractual relationship mapping ===== | ===== Fields for sync contractual relationship mapping ===== | ||
- | Bellow is an example of contractual relationship mapping using slices. This is only an example; in general, slices must be mapped in the same way that contracts are but must have two extra attributes: "Valid from of slice" and some sort of "Slice ID". | + | |
- | + | * **Valid from of slice** - Defines time from which the slice is valid. Valid till of slice is computed | |
- | * **Contract code** - Code of the parent contract. This `String` value represents relation between all slices for the same contract. | + | * **Owner** - Relation' |
- | * **Valid from of slice** - Defines time from that is slice valid. Valid till of slice is computes | + | |
- | * **Slice ID** - ID of the time slice, it is often transformed by combining " | + | |
- | * **Owner** - Relation owner. Must be identity in IdM. This field is required for every relation. Output from attribute transformation can be: | + | |
* 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** - Defines if is the contract main (between | + | |
- | * **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). | + | * **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 superiors, directly linked | + | * **Guarantees** - List of leaders, directly linked |
- | * **Work position** - Defines link to some tree node. Generally defines a place in an organization structure (see below for more details). | + | * **Work position** - Defines link to some tree node. Generally defines a place in the organization structure (see below for more details). |
- | * **Valid from of contract** - Validity for the contractual relationship. Output value from attribute transformation must be ' | + | * **Valid from of contract** - Validity for the contractual relationship. Output value from attribute transformation must be ' |
- | * **Valid till of contract** - Validity for the contractual relationship. Output value from attribute transformation must be ' | + | * **Valid till of contract** - Validity for the contractual relationship. Output value from attribute transformation must be ' |
- | * **Externe** - If the contractual relationship for identity | + | * **External contractor** - If the contractual relationship |
- | * **Description** - String for description the relation. | + | * **Description** - String for the description |
- | + | ||
+ | Link to SQL details for making the Views: [[https:// | ||
==== Guarantees field ==== | ==== Guarantees field ==== | ||
- | List of superiors, directly linked to the contractual relation. Linked leader must exists in IdM. | + | List of leaders, 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 superior | + | * Username of leader |
- | * Id of superior | + | * Id of leader |
- | * List of usernames | + | * List of usernames (List< |
- | * List of Ids of superiors | + | * List of Ids (List< |
- | * Null value. If the value is not defined and in sync the configuration | + | * Null value. If is value not defined and in sync configuration |
- | If some leader is not found the synchronization item will be marked as ' | + | If no leader is found, the synchronization item will be marked as ' |
< | < | ||
Line 68: | Line 96: | ||
==== Work position field ==== | ==== Work position field ==== | ||
- | Defines | + | Defines link to some tree node. Generally defines |
Output from attribute transformation can be: | Output from attribute transformation can be: | ||
* Id of a tree node (UUID or String). | * Id of a tree node (UUID or String). | ||
- | * Code of a tree node. Node by code will be searched | + | * Code of a tree node. Node by code will be looked up in default tree (defined |
- | * Null value. If the value is not defined and in sync the configuration | + | * Null value. If no value is defined and the sync configuration |
- | If a node is not found the synchronization item will be marked as ' | + | If no node is found the synchronization item will be marked as ' |
< | < | ||
Line 87: | Line 115: | ||
</ | </ | ||
<note important> | <note important> | ||
- | If a work-position attribute is not defined in the mapping, then **no** default position will be set.</ | + | If no work-position attribute is defined in the mapping, then **no** default position will be set.</ |
==== State field ==== | ==== State field ==== | ||
- | State of contract. Output from the attribute transformation must be enumeration ContractState or String representation for this enumeration. | + | State of contract. Output from attribute transformation must be enumeration ContractState or String representation for this enumeration. |
ContractState has these values: | ContractState has these values: |