Tabelles
Une tabelle contient un tableau de données datées permettant de déterminer une valeur (montant, taux, etc) selon un ou deux paramètres d’entrée. Généralement ces paramètres sont basés sur des champs du dossier de l’employé.
Il y a 3 façons dont les tabelles sont stockées:
UNI19
: tabelles stockées en mémoire interne (legacy, ne plus utiliser)UNI18
: tabelles stockées sous forme de fichierUNI85
: tabelles intégrées directement dans l’application
Le fonctionnement des tabelles UNI18
et UNI19
fonctionne de la même manière, seul le stockage diffère.
Il est préférable d’utiliser la tâche UNI18
pour stocker les tabelles, la tâche UNI19
étant gardée pour des raisons historiques.
Tabelles simples (1 code - UNI18/UNI19)
Une tabelle simple se présente de la manière suivante:
Valeur
: Date de début de validité.Classe
: Code correspondant à une combo dans les données de l’employé.Description
: Description du code (peut être laissé vide, uniquement présente pour facilier la compréhension).taux_employe
: Colonne de données 1taux_employeur
: Colonne de données 2
Il est important que toutes les colonnes aient un nom unique sur la 1ère ligne. Sans cela, le moteur de calcul générera une erreur.
La tabelle doit être enregistrée au format CSV. Il se peut que Excel prenne des de libertés quand aux données enregistrées (surtout les dates). Voici ce qui doit être affiché lorsque la tabelle est ouverte avec un éditeur de texte (notepad):
Une fois le fichier CSV créé avec Excel (ou directement en format texte), voici comment la tabelle est enregistrée dans SAINet:
Le nom de la tabelle est préfixée par la langue: <langue><tabelle>.CSV
(ici, FRLPP.CSV
). La langue correspond à la langue de l’utilisateur. Le préfixe de langue est facultatif, le moteur va de toute façon faire un fallback sur le nom de la table sans la langue.
Dans l’exemple ci-dessous, la ligne L50
est de type 5 Base * taux
. La tabelle contient les taux à appliquer selon le status de l’employé.
Le champ de l’employé FORMBASE.POSITIONPROF
est chargé dans T Table
, indiquant au moteur de l’utiliser pour trouver la ligne correspondante dans la tabelle.
La tabelle LPP.CSV
va automatiquement pointer vers <langue>LPP.CSV
, la langue étant celle de l’utilisateur exécutant le SAL24
.
La dérivation TBR/RATE
est un code spécial: TBR/
indique au moteur que la tabelle se trouve dans UNI18
ou UNI19
et RATE
est une variable indiquant ou la valeur de la tabelle doit être stockée. Par défaut, si RATE
n’est pas indiqué, la valeur sera stockée dans le montant (AMOUNT
).
Finalement, le paramètre taux_employe
indique quelle doit être la colonne lue pour retourner le résultat. En l’occurrence, ce paramètre est facultatif ici car s’il n’est pas précisé, c’est la 1ère colonne de données qui sera utilisée.
Tabelles croisées (2 codes - UNI18/UNI19)
Ces tabelles se présentent comme les tablles simples, mais utilisent 2 codes pour faire leur recherche. Cela implique que la tabelle est définie différemment:
Valeur
: Date de début de validité.Classe
: Code correspondant à une combo dans les données de l’employé.Description
: Description du code (peut être laissé vide, uniquement présente pour facilier la compréhension).10 CDI mensuel
: Colonne de données pour le code 1011 CDI Temps travail
: Colonne de données pour le code 1112 CDI horaire
: Colonne de données pour le code 12- …
Comme dans une tabelle simple, chaque en-tête de colonne doit être unique. De plus, dans les colonnes de données, le code doit toujours se trouver avant le premier espace. Ce qui vient après le code est un libellé libre qui sera ignoré par le moteur de salaire.
Les mêmes remarques s’appliquent quant aux modifications faites par Excel.
La ligne L51
est configurées avec le type 4 Montant directement
.
Les champs FORMBASE.POSITIONPROF
puis FORMBASE.TYPECONTRAT
sont tous les deux chargés dans le T Table
. L’ordre de chargement est déterminant ! En effet, le moteur de salaire va utiliser le premier code chargé pour chercher la ligne, puis le deuxième pour chercher la colonne.
Dans ce cas-ci, seule la dérivation TBR/
est précisée puisque les valeurs de la tabelles sont directement des montants.
Si le 2ème code est fixe (ne dépend pas de l’employé), il est possible de le préciser directement dans le champ Paramètre.
Tabelles intégrées simples (UNI85)
Ces tabelles sont directement stockées dans la tâche UNI85
et leur identifiant est statique.
Elles servent à faire une recherche pour obtenir une valeur en fonction d’une tranche et d’un code. Cette valeur est ensuite mise:
- dans le montant si la ligne est de type “4 Montant directement”.
- dans le taux de base (de la ligne) si le type est “3 Nbre heures supp. * taux horaire * %”.
- dans le taux pour tout autre type.
- Champs d’en-tête de la tabelle. La combo sélectionnée est libre et peut être statique (provenant du paramétrage) ou dynamique (UNI17).
- Créer les différentes tranches/palier selon le critère qui sera utilisé.
- Définir la valeur pour chaque code.
- La dérivation
TBS/
indique que la tabelle se trouve dansUNI85
. Il faut indiquer ensuite le code de la tabelle. - Le montant donné dans la
BASE
est utilisé pour effectuer la recherche dans les tranches. - La valeur indiquée dans la codification est utilisée pour retourner le montant/taux du champ correspondant. La codification dépend de la combo utilisée en UNI85.
Tabelles intégrées en palier (UNI85)
Ces tabelles sont directement stockées dans la tâche UNI85
et leur identifiant dépend de la construction qui est faite au niveau du moteur de salaire.
Elles sont spécialement faites pour les taux IJM/LAAC car elles appliquent des taux différents pour chaque tranche/palier.
Typiquement, s’il y a une tranche de 0-2000 à 5% et de 7% au-delà de 2000, alors pour un montant de 5000.- le système calculera 2000*5% + 3000*7% = 310
.
A noter que dans ce cas-là, il y aura plusieurs lignes de calcul générées, soit une par palier.
Les montant de ces tabelles sont des montants annuels. Le moteur de calcul les ramène ensuite à des montants mensuels, au prorata de la présence de l’employé -basé sur le nombre de jours- dans l’année.
- Champs d’en-tête de la tabelle. L’identifiant doit correspondre à la construction faite dans
SAL02
. La combo doit êtreS Statique
avecSAL_TAUX_DATES
afin d’obtenir les bonnes valeurs dans le sous-panel. - Les tranches/paliers sont à laisser vides.
- Données des plancher/plafond et taux correspondants.
La dérivation TBL/
indique que la tabelle se trouve dans UNI85
. Il faut indiquer ensuite le préfixe de la tabelle qui va constituer son identifiant (ici LAAC
).
Le suffix de l’identifiant de la tabelle est ensuite constitué de deux code provenant de CODEMSAI.CODLAAC1
puis de COSEXE
.
Il est possible d’ajouter un paramètre correspondant au code combo à utiliser dans la combo SAL_TAUX_DATES
. Par défaut, cette valeur est à T
(taux employé), et sinon pourrais être à E
(taux employeur).
Pour les lignes concernant les assurances (notamment L30,L32,L40,L42,L50), le moteur de salaire va en premier faire un lookup avec le suffixe de l’identifiant de l’assurance en SAL05, par exemple LAAC-11F-LAAC01
. Cela permet de configurer des tabelles spécifiques pour chaque assurance.
Lorsque l’option sal24.legacy_table_lookup_strict
est activée en SYS22, une erreur sera affichée lorsque le système ne trouve pas une tabelle intégrée en UNI85 (uniquement pour la dérivation TBL/
).
Il y a toutefois une exception pour le code 10
qui généralement correspond à Non soumis. Dans ce cas, même lorsque le mode strict est activé, il n’y aura pas d’erreur si la tabelle
n’existe pas.