Présentation générale
Le moteur d'évaluation des expressions de règles évalue les fonctions entre crochets et les espaces réservés aux champs dans eADM. Les expressions apparaissent dans :
|
Consommateur |
Utilisation courante |
|---|---|
|
Ensembles de règles (Regelsett) |
Filtrer les utilisateurs, les services et les groupes ; contrôler les flux de messages, les étapes de synchronisation et les autorisations |
|
Modèles de messages |
Destinataire, objet et corps du message dynamiques (HTML) |
|
Exporter des modèles / synchroniser les lignes de flux des modèles |
Mappage des attributs cibles |
|
Configuration client |
Expression du nom d'utilisateur, dénomination automatique des groupes, filtre de poste |
|
Modèles de formulaires |
Liaisons de champs de formulaire |
|
Générateur d'expressions |
Aperçu pour un utilisateur, un service ou un groupe de test |
Comment fonctionne l'évaluation ?
-
Le moteur analyse l'expression pour rechercher
[...]jetons. -
[ARRAYFOREACH...]s'exécute en premier — avant le passage « innermost-first » — de sorte que les espaces réservés des modèles???et???ilier chaque élément séparé par une barre verticale. -
Sinon, il résout d'abord la paire d'accolades la plus interne.
-
Chaque fonction renvoie un résultat en texte brut qui remplace le crochet.
-
Lorsqu'il ne reste plus aucune fonction, il reste
[FieldName]les jetons sont remplacés à partir du objet actuel (et facultatif ligne d'historique dans les flux de messages). -
Les noms de champs non reconnus sont conservés tels quels
[FieldName]dans la sortie.
Listes séparées par des barres verticales (|) sont utilisés pour les données à valeurs multiples — notamment dans le domaine des ressources humaines postes sur un utilisateur.
Données fictives utilisées dans les exemples ci-dessous
Sauf indication contraire, les exemples prennent pour hypothèse que le client est la commune d'Eksempel, avec :
|
Objet |
Valeurs clés |
|---|---|
|
Utilisateur : Kari Nordmann |
Prénom= |
|
Positions des utilisateurs (alignées sur le tuyau) |
|
|
Service informatique (type 2) |
Id= |
|
Service RH (rattaché au service informatique) |
Id= |
|
Rôle système (autorisation) |
Id= |
|
Autorisation concernant Kari |
SystemRoleId= |
Identifiants de type d'objet (pour les recherches) : Utilisateur=1, Département=2, Groupe=3, utilisateur de l'API =14.
Conventions syntaxiques
-
Fonctions :
[NAME;arg1;arg2;...]— arguments séparés par des points-virgules (;). -
Champs :
[FieldName]— valeur de l'objet actuel (sans distinction de casse). -
Expressions imbriquées : les parenthèses intérieures sont évaluées avant les parenthèses extérieures.
-
Séparateur de liste : caractère « pipe »
|(barre verticale) entre les valeurs — par exemple :POS-01|POS-02. Ne tapez jamais de barre oblique inversée ;|n'apparaît que sous forme d'échappement Markdown dans les fichiers source, et non dans les expressions. -
Les dates dans les champs sont souvent stockées sous la forme
dd.MM.yyyy HH:mm:ss; les importations peuvent utiliseryyyy-MM-ddet d'autres formats courants.
Mini-langage de requête
À l'intérieur [FOREACH], [IFTHENELSE], et avancé [OBJECT...] filtres.
|
Jeton |
Signification |
|---|---|
|
|
Égal |
|
|
Supérieur à / inférieur à |
|
|
Pas égal |
|
|
Correspondance de motif (like) |
|
|
Valeur dans la liste |
|
|
ET la condition suivante |
|
|
OU la condition suivante |
Faites précéder les données de object., system., systemrole., objectpermission., etc.
Imbrication
D'abord le champ interne, puis la fonction externe
|
Étape |
Fragment d'expression |
Décide de |
|---|---|---|
|
1 |
|
|
|
2 |
|
|
Bloqué si le champ interne est manquant : [SUBSTRING;0;10;[UnknownField]] reste inchangé lorsque UnknownField ne se trouve pas sur l'objet.
Chaîne d'autorisations type (à lire de l'intérieur vers l'extérieur) :
[REFERENCE;DisplayName;UserId;1;[REFERENCE;Manager;Id;2;[OBJECTPERMISSION;ManagerOf;SystemRoleId;501]]]
-
Autorisation → identifiant du service
2100 -
Service → identifiant de l'utilisateur responsable
-
Nom d'affichage de l'utilisateur → responsable
[ARRAYFOREACH...] est différent : il développe une liste séparée par des barres verticales avant fonctions internes dans l'exécution du modèle. Utilisez ??? pour l'élément courant et ???i en raison de son indexation à partir de 0. Imbrication [ARRAYFOREACH...] à l'intérieur d'un autre [ARRAYFOREACH...] n'est pas pris en charge — utilisez [ARRAYJOIN] / [ARRAYPREFIX] ou bien des appels entre frères et sœurs.
Niveaux d'accès
|
Fonction |
Quelles sont les conséquences ? |
|---|---|
|
Super manager |
Aperçu du générateur d'expressions |
|
Administrateur de la société |
Liste complète des fonctionnalités dans le générateur ; |
|
Administrateur de l'organisation |
Expressions modifiant des champs protégés dans l'aperçu |
|
Super-administrateur |
|
L'automatisation (synchronisation, messages, exportations) évalue les expressions avec les privilèges du serveur. Une fonction qui fonctionne en production peut néanmoins être bloquée dans le générateur d'expressions pour votre rôle.
Espaces réservés pour les champs
Il ne s'agit pas de fonctions — elles sont remplacées à partir de l'objet actuel (ou de la ligne d'historique dans les flux de messages pilotés par les événements).
Exemple : Modèle Hello [GivenName] [Surname] à propos de Kari Nordmann → Hello Kari Nordmann
|
Espace réservé |
Source typique |
|---|---|
|
|
Nom de la personne |
|
|
Compte / e-mail |
|
|
École primaire |
|
|
Date et heure de début d'emploi |
|
|
Référence du responsable fournie par les RH |
|
|
Multiposition (séparé par des barres verticales) |
Uniquement l'historique (flux de messages après la synchronisation) : [OldValue], [NewValue], [EntryType], [AttributeName], [Comment].
Référence des fonctions avec des exemples
Chaque entrée présente les paramètres, un exemple concret avec des données fictives et le résultat attendu.
Date et heure
[NÅ] / [NOW]
Renvoie la date et l'heure du serveur.
|
Paramètre |
Objectif |
|---|---|
|
(aucun) |
Moment présent |
|
|
Ajouter ou soustraire N jours |
|
Expression |
Date par défaut du serveur |
Résultat |
|---|---|---|
|
|
17 juin 2026 14 h 30 min 00 s |
|
|
|
17.06.2026 |
|
Utilisation : autorisation d'afficher les dates limites relatives dans les modèles.
[DATEFORMAT;date;format]
Reformate une chaîne de caractères représentant une date.
|
Paramètre |
Objectif |
|---|---|
|
|
Date de saisie, ou dates séparées par des barres verticales |
|
|
Format de sortie (par exemple, |
|
Expression |
Données d'entrée (après résolution des champs) |
Résultat |
|---|---|---|
|
|
— |
|
|
|
deux dates |
|
Utilisation : formats d'exportation, dates au format ISO dans les charges utiles de l'API.
[DATEDIFF;date1;date2;unit]
Différence numérique entre deux dates.
|
Paramètre |
Objectif |
|---|---|
|
|
Date ultérieure ou date initiale |
|
|
Date antérieure ou date de référence |
|
|
|
|
Expression |
Résultat |
Signification |
|---|---|---|
|
|
|
77 jours entre le début et aujourd'hui |
|
|
|
La même année civile dans cet exemple |
Utilisation : vérifications de la durée de validité dans les ensembles de règles, « nombre de jours avant le début » dans les messages.
[DAYOFYEAR;date]
|
Paramètre |
Objectif |
|---|---|
|
|
Date à évaluer |
|
Expression |
Résultat |
|---|---|
|
|
|
Utilisation : règles saisonnières, astuces relatives à l'exercice comptable.
Manipulation de chaînes de caractères
[SUBSTRING;start;length;text]
|
Paramètre |
Objectif |
|---|---|
|
|
Indice de départ à partir de 0 |
|
|
Nombre de caractères à prendre en compte |
|
|
Chaîne source (souvent un champ imbriqué) |
|
Expression |
Résolu |
Résultat |
|---|---|---|
|
|
— |
|
|
|
— |
|
Utilisation : Affichage de la date uniquement (à partir d'une date-heure) dans les e-mails de bienvenue : [SUBSTRING;0;10;[Start]] → 01.04.2026.
[SPLIT;text;delimiter;index]
|
Paramètre |
Objectif |
|---|---|
|
|
Chaîne à diviser |
|
|
Séparateur (par exemple : |
|
|
index des pièces à partir de 0, ou |
|
Expression |
Résultat |
|---|---|
|
|
|
|
|
|
Utilisation : formule de politesse à partir du champ « nom composé » ; sélectionner le code de position finale.
[REPLACE;text;find;replace]
|
Paramètre |
Objectif |
|---|---|
|
|
Chaîne d'origine |
|
|
Sous-chaîne(s) à remplacer ; pipe = plusieurs ; |
|
|
Texte de remplacement |
|
Expression |
Résultat |
|---|---|
|
|
|
|
|
|
Utilisation : normaliser les numéros de téléphone, inverser les séparateurs dans les noms d'utilisateur.
[REPLACELIST;text;fromChars;toChars]
Correspondance caractère à caractère (les deux listes de caractères doivent avoir la même longueur).
|
Paramètre |
Objectif |
|---|---|
|
|
Saisie |
|
|
Caractères à convertir |
|
|
Caractères à associer à |
|
Expression |
Résultat |
|---|---|
|
|
|
Utilisation : corrections apportées aux jeux de caractères hérités lors des importations.
[RTRIM;text;chars] / [LTRIM;text;chars]
|
Paramètre |
Objectif |
|---|---|
|
|
Entrée ; si elle contient |
|
|
Caractère(s) à supprimer à la fin (RTRIM) ou au début (LTRIM) |
|
Expression |
Résultat |
|---|---|
|
|
|
|
|
|
Utilisation : Nettoyer les listes de canalisations après [ARRAYDIFF].
[RPAD;text;padChar;totalLength] / [LPAD;text;padChar;totalLength]
|
Paramètre |
Objectif |
|---|---|
|
|
Valeur à insérer |
|
|
Caractère de remplissage |
|
|
Largeur cible |
|
Expression |
Résultat |
|---|---|
|
|
|
|
|
|
Utilisation : numéros d'employés à largeur fixe dans les exportations de fichiers.
[RIGHT;length;text]
|
Paramètre |
Objectif |
|---|---|
|
|
Combien de caractères à partir de la droite ? |
|
|
Source |
|
Expression |
Résultat |
|---|---|
|
|
|
Utilisation : derniers chiffres du numéro d'identification national dans les environnements de test.
[INITIALS;text;startWord;endWord]
|
Paramètre |
Objectif |
|---|---|
|
|
Nom complet ou expression |
|
|
Index des mots à partir de (compté à partir de 0) |
|
|
Fin de l'index des mots, ou |
|
Expression |
Résultat |
|---|---|
|
|
|
|
|
|
Utilisation : codes abrégés dans les noms de groupes ou les alias de messagerie.
[PRETTIFY;text]
Majuscules après un espace ou un trait d'union.
|
Expression |
Résultat |
|---|---|
|
|
|
|
|
|
Utilisation : afficher les noms dans les messages lorsque le service des ressources humaines envoie des messages en majuscules.
[LOWER;text] / [UPPER;text]
|
Expression |
Résultat |
|---|---|
|
|
|
|
|
|
Utilisation : Normaliser avant [CLEAN] dans les règles relatives aux noms d'utilisateur.
[CLEAN;text] / [STRICTCLEAN;text] / [CNCLEAN;text]
Supprimer ou remplacer les caractères non autorisés dans les noms d'utilisateur, les identifiants stricts ou les noms communs (CN) Active Directory.
|
Expression |
Exemple de résultat |
Utilisation |
|---|---|---|
|
|
|
Nom d'utilisateur / uid |
|
|
Formulaire « CN-safe » pour AD |
Nom commun (CN) du groupe ou de l'utilisateur |
Le résultat exact dépend des règles de caractères définies par le client ; effectuez un test dans le générateur d'expressions.
[GETKEYVALUE;key;delimiter;metadata]
Nombre de lectures key<delimiter>value des paires contenues dans une chaîne de métadonnées séparées par des barres verticales.
|
Paramètre |
Objectif |
|---|---|
|
|
Clé à trouver |
|
|
Séparateur entre la clé et la valeur (souvent |
|
|
Liste de paires clé-valeur séparées par des barres verticales |
|
Expression |
|
Résultat |
|---|---|---|
|
|
— |
|
Utilisation : métadonnées d'importation personnalisées sur les attributs d'extension.
Logique et flux de contrôle
[IFTHENELSE;query;thenValue;elseValue]
|
Paramètre |
Objectif |
|---|---|
|
|
Condition relative à objet actuel (par exemple : |
|
|
Renvoyé si la requête correspond |
|
|
Renvoyé si ce n'est pas le cas |
|
Contexte |
Expression |
Résultat |
|---|---|---|
|
Utilisateur Kari (type 1) |
|
|
|
Service informatique (type 2) |
idem |
|
Utilisation : modèle unique pour des types d'objets mixtes.
[IFEMPTYUSE;primary;fallback;reversed]
|
Paramètre |
Objectif |
|---|---|
|
|
Valeur à tester |
|
|
À utiliser lorsque le champ principal est vide (par défaut) |
|
|
Facultatif |
|
Expression |
Expiration de l'autorisation de Kari |
Résultat |
|---|---|---|
|
|
vide |
|
|
|
|
|
|
|
Responsable = |
`` (vide — inversé : recours à la solution de secours uniquement si le gestionnaire existe) |
Utilisation : texte par défaut en cas d'absence de date d'expiration, de responsable ou de commentaire.
[EXISTS;value;resultIfNonEmpty]
|
Paramètre |
Objectif |
|---|---|
|
|
Chaîne testée |
|
|
N'est renvoyé que si |
|
Expression |
Champ « Kari Manager » |
Résultat |
|---|---|---|
|
|
|
|
|
|
vide |
`` (vide) |
Utilisation : Recherches imbriquées via des portes — exécuter uniquement [REFERENCE...] quand [Manager] est défini.
[TRANSFORM;input;mapping...]
|
Paramètre |
Objectif |
|---|---|
|
|
Valeur à mapper |
|
|
Faire correspondre l'entrée à la sortie |
|
|
Caractère générique si aucune clé ne correspond |
|
Expression |
|
Résultat |
|---|---|---|
|
|
— |
|
|
|
— |
|
Utilisation : codes RH → afficher le texte dans les messages.
[CONTAINS;valueList;targetList;ifYes;ifNo]
|
Paramètre |
Objectif |
|---|---|
|
|
Aiguilles séparées par un tube |
|
|
Une meule de foin séparée par des tuyaux |
|
|
Chaînes renvoyées en cas de correspondance / d'absence de correspondance |
|
Expression |
Résultat |
|---|---|
|
|
|
|
|
|
Utilisation : création de branchements de type « Ruleset » au sein d'un modèle.
Opérations sur les tableaux (séparés par des barres verticales)
Les listes se présentent comme suit : A|B|C. De nombreux postes dans le domaine des ressources humaines utilisent cette structure.
[COUNT;ignored;list]
|
Paramètre |
Objectif |
|---|---|
|
|
Espace réservé (inutilisé) |
|
|
Valeurs séparées par des barres verticales |
|
Expression |
Résultat |
|---|---|
|
|
|
Utilisation : « Combien de postes cet utilisateur occupe-t-il ? »
[ARRAYAPPEND;list1;list2]
|
Expression |
Résultat |
|---|---|
|
|
|
Utilisation : fusionner les listes de rôles issues de deux requêtes d'autorisation.
[ARRAYUNIQUE;list]
|
Expression |
Résultat |
|---|---|
|
|
|
Utilisation : dédupliquer les identifiants des services avant l'exportation.
[ARRAYFILTER;list;allowed]
Ne conserve que les éléments qui apparaissent dans allowed.
|
Expression |
Résultat |
|---|---|
|
|
|
Utilisation : Ajouter des types de poste à la liste blanche pour un message.
[ARRAYDIFF;current;previous]
Éléments dans current pas dans previous.
|
Contexte |
|
|
Résultat |
|---|---|---|---|
|
Ajout d'un nouveau poste |
|
|
|
|
Pas de changement |
|
|
`` |
Utilisation : Détecter nouveau poste dans le flux de messages (à associer à [LASTVALUE;APositionCodeId]). Avertissement : peut poser problème si plusieurs postes sont modifiés au cours d'une même importation.
[ARRAYJOIN;list1;list2]
Fusionne deux listes par index.
|
Expression |
Résultat |
|---|---|
|
|
|
Utilisation : regroupez les colonnes parallèles pour obtenir des lignes d'exportation au format CSV.
[ARRAYFOREACH;array;template] / [ARRAYFOREACH;array;separator;template]
Parcourt un séparés par des barres verticales liste. Pour chaque élément non vide, remplace par ??? avec l'élément et ???i avec son index commençant à 0 dans le modèle, évalue les éléments imbriqués [...] dans le modèle, puis regroupe les résultats.
|
Paramètre |
Objectif |
|---|---|
|
|
Liste séparée par des barres verticales (souvent un champ de type |
|
|
Chaîne de jonction facultative entre les itérations (par défaut |
|
|
Texte ou expression imbriquée ; |
|
Expression |
Kari |
Résultat |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Les segments de tuyau vides sont sauté (selon la même convention que [ARRAYUNIQUE] / [ARRAYPREFIX]).
Non pris en charge : [ARRAYFOREACH...] imbriqué à l'intérieur d'un autre [ARRAYFOREACH...] — L'évaluation de l'expression a échoué. Utilisez deux appels consécutifs ou [ARRAYJOIN] au lieu de cela.
Utilisation : formater chaque poste sur une ligne distincte dans un message ; ajouter un préfixe à chaque identifiant d'unité en vue de l'exportation.
[ARRAYPREFIX;list;mode;text]
|
Paramètre |
Objectif |
|---|---|
|
|
Éléments séparés par des barres verticales |
|
|
|
|
|
Chaîne de préfixe ou de suffixe |
|
Expression |
Résultat |
|---|---|
|
|
|
Utilisation : identifiants externes d'espace de noms.
[ARRAYTRIM;list;delimiter;maxCount]
|
Expression |
Résultat |
|---|---|
|
|
|
Utilisation : Afficher uniquement les N premières positions dans un e-mail récapitulatif.
[PRUNEARRAY;list;regex;reverse]
|
Paramètre |
Objectif |
|---|---|
|
|
Éléments séparés par des barres verticales |
|
|
Expression régulière .NET |
|
|
|
|
Expression |
Résultat |
|---|---|
|
|
|
|
|
|
Utilisation : supprimer les codes de poste temporaires de l'exportation.
[UNION;headers;list1;list2;...]
Fusionne des listes parallèles ligne par ligne pour former des lignes combinées, séparées par des espaces ou des barres verticales.
|
Expression |
Résultats conceptuels |
|---|---|
|
|
|
Utilisation : blocs de texte à plusieurs colonnes dans les rapports.
Aléatoire, hachage, unicité
[RND;min;max]
|
Paramètre |
Objectif |
|---|---|
|
|
Nombre entier minimal (inclus) |
|
|
Nombre entier maximal (exclusif en pratique — vérifiez votre plage) |
|
Expression |
Exemple de résultat |
|---|---|
|
|
|
Utilisation : numéros de ticket dans les modèles de test.
[STRRND;minLen;maxLen;chars]
|
Paramètre |
Objectif |
|---|---|
|
|
Plage de longueurs |
|
|
Jeu de caractères autorisés (vide = alphanumérique par défaut) |
|
Expression |
Exemple de résultat |
|---|---|
|
|
|
Utilisation : codes à usage unique lorsque la règle relative au mot de passe n'est pas appliquée.
[PASSWORD;ruleId]
|
Paramètre |
Objectif |
|---|---|
|
|
Identifiant de la règle de génération de mot de passe configurée dans eADM |
|
Expression |
Résultat |
|---|---|
|
|
par exemple |
Utilisation : mot de passe initial indiqué dans le message de bienvenue — à traiter avec la plus grande prudence.
[HASH;text]
|
Expression |
Résultat (exemple) |
|---|---|
|
|
Chaîne hexadécimale MD5 de 32 caractères (valeur fixe pour une même entrée) |
Utilisation : jetons opaques dans les liens (à ne pas utiliser uniquement pour le hachage dans le cadre de la sécurité).
[UNIQUE;base;fieldName;replacement]
Garantit base n'existe pas encore dans fieldName sur un autre objet ; ajoute 2, 3, … ou des insertions avant replacement.
|
Paramètre |
Objectif |
|---|---|
|
|
Nom d'utilisateur ou adresse e-mail proposé(e) |
|
|
Champ à utiliser pour vérifier l'unicité (par exemple, |
|
|
Marqueur de suffixe facultatif à remplacer par un nombre |
|
Scénario |
Expression |
Résultat |
|---|---|---|
|
|
|
|
|
|
idem |
|
Utilisation : Configuration client expression du nom d'utilisateur ainsi que [CLEAN] / [LOWER].
Recherche dans une base de données et relations
Ces données proviennent en temps réel du système eADM du client. Les identifiants doivent exister dans votre environnement.
[REFERENCE;returnField;whereField;objectTypeId;searchValue;exactMatch]
|
Paramètre |
Objectif |
|---|---|
|
|
Champ(s) à renvoyer à partir de l'objet correspondant ( |
|
|
Champ à utiliser pour la recherche |
|
|
|
|
|
Valeur à déterminer |
|
|
|
|
Expression |
Match amical |
Résultat |
|---|---|---|
|
|
Code service 2100 = Informatique |
|
|
|
Gestionnaire d'utilisateurs |
|
Utilisation : Numéro du service figurant sur l'autorisation ManagerOf id :
[REFERENCE;OrgUnitnr;Id;2;2100]
[OBJECTPERMISSION;returnField;whereField;filterValue;exactMatch;aggregate]
Lit les droits d'accès de l'utilisateur actuel.
|
Paramètre |
Objectif |
|---|---|
|
|
Champ d'autorisation (Comment, ManagerOf, ExpiryDate, SystemRoleId, …) |
|
|
Champ à utiliser pour le filtrage |
|
|
Valeur de correspondance, ou |
|
|
Mode de comparaison de chaînes |
|
|
|
|
Expression |
Sortie (Kari) |
|---|---|
|
|
|
|
|
|
Abréviation du nom du rôle :
|
Expression |
Résultat |
|---|---|
|
|
|
[OBJECTHISTORIES;returnField;whereField;filterValue;exactMatch;aggregate]
Lit l'historique des objets de l'utilisateur actuel (journal d'audit issu de la synchronisation/de l'interface utilisateur).
|
Exemple de filtre |
Expression |
Exemple de résultat |
|---|---|---|
|
Dernière autorisation ajoutée |
|
|
Utilisation : « Qui a attribué cette autorisation ? » dans les flux de messages (souvent imbriqués dans [SPLIT] / [REFERENCE]).
[FOREACH;collection;query;returnFields;headers;format]
|
Paramètre |
Objectif |
|---|---|
|
|
|
|
|
Filtre (critère « entreprise » ajouté automatiquement) |
|
|
Champs séparés par des virgules (facultatif) |
|
|
Titres de colonnes pour les fichiers CSV/HTML |
|
|
|
Exemple (conceptuel) : Tous les utilisateurs ayant le rôle 501, CSV :
[FOREACH;objectpermission;SystemRoleId=501;object.DisplayName,object.Email;Name,Email;csv]
Sortie (variable fictive) :
Name,Email
Kari Nordmann,kari.nordmann@eksempel.kommune.no
Ola Hansen,ola.hansen@eksempel.kommune.no
Utilisation : rapport de gestion intégré au corps d'un e-mail.
[DESCENDANTS;rootId;returnField;parentKey;foreignKey]
|
Paramètre |
Objectif |
|---|---|
|
|
Identifiant d'objet du service à partir duquel commencer |
|
|
Champ à récupérer à partir de chaque nœud |
|
|
Champ enfant pointant vers le champ parent (par exemple : |
|
|
Champ d'identifiant parent (par exemple : |
|
Démarrer |
Arbre |
Expression |
Résultat |
|---|---|---|---|
|
Identifiant informatique |
Informatique → Ressources humaines |
|
|
Utilisation : tous les sous-services relevant de la compétence d'un responsable.
[SYSTEM;type;id;field]
|
Paramètre |
Objectif |
|---|---|
|
|
|
|
|
Identifiant numérique ou |
|
|
Nom(s) de champ(s) à renvoyer |
|
Expression |
Sortie (variable fictive) |
|---|---|
|
|
|
|
|
|
Utilisation : coordonnées du propriétaire du système dans la notification d'administration.
[SELECTION;rulesetId;returnField]
|
Paramètre |
Objectif |
|---|---|
|
|
Ensemble de règles à évaluer pour chaque objet |
|
|
Champ de chaque objet qui correspond |
|
Expression |
Sortie (variable fictive) |
|---|---|
|
|
|
Utilisation : liste de diffusion regroupant toutes les personnes répondant aux critères de l'ensemble de règles « Nouveaux arrivants ».
[AVAILABLESYSTEM;field] / [AVAILABLEROLE;systemId;field]
Renvoie les valeurs séparées par des barres verticales correspondant aux systèmes ou aux rôles qui satisfont à la condition « Disponible pour » appliquée à l'utilisateur actuel.
|
Expression |
Signification |
|---|---|
|
|
Noms des systèmes pour lesquels Kari pourrait obtenir des autorisations |
|
|
Noms des rôles du système 12 auxquels elle pourrait être affectée |
Utilisation : listes de sélection dynamiques dans les formulaires ou les messages.
[AVAILABLEDEPARTMENTS;fields;targetUserId]
|
Paramètre |
Objectif |
|---|---|
|
|
Champs de service séparés par des virgules |
|
|
Utilisateur à évaluer ; vide = objet actuel |
Utilisation : répertorie les services qu'un responsable peut gérer (à partir de « ManagerOf », des identifiants d'unité et des rôles « mega.eadm.no »).
[DATAOWNER;returnField]
Suit la relation « propriétaire des données » sur l'objet ; renvoie le champ correspondant au propriétaire.
|
Expression |
Sortie (si le nom du groupe propriétaire est enregistré) |
|---|---|
|
|
|
[ANTECEDANTS.SYSTEMROLE;roleId;departmentId;returnField]
Les dirigeants détenant roleId sur ancêtre départements de departmentId.
|
Expression |
Sortie (variable fictive) |
|---|---|
|
|
|
Utilisation : e-mail de remontée lorsque le service enfant des RH ne dispose d'aucun approbateur local.
[COUNTEMPLOYEE] / [COUNTMEMBERS]
Évalué respectivement au niveau du service ou du groupe.
|
Objet |
Expression |
Sortie (variable fictive) |
|---|---|---|
|
Service informatique |
|
|
|
Groupe « Prosjekt Alfa » |
|
|
[GETLASTSYNCID]
|
Expression |
Sortie (variable fictive) |
|---|---|
|
|
|
Utilisation : dépannage des pieds de page dans les e-mails d'administration.
[LASTVALUE;attributeName]
Valeur précédente du champ issue de la dernière importation de l'historique RH, sinon valeur actuelle du champ.
|
Contexte |
Expression |
Résultat |
|---|---|---|
|
Avant la synchronisation, Kari occupait un poste |
|
|
|
Après avoir ajouté le POS-02 |
|
|
À déguster avec [ARRAYDIFF;[APositionCodeId];[LASTVALUE;APositionCodeId]] → POS-02|.
Postes (ressources humaines multipostes)
Les champs de position partagent l'index entre les tuyaux : index 0 = première position, 1 = seconde.
[POSITION;returnField;whereField;matchValue]
|
Paramètre |
Objectif |
|---|---|
|
|
Champ de position à renvoyer (par exemple, |
|
|
Champ à faire correspondre (par exemple : |
|
|
Unité ou code à rechercher |
|
Expression |
Résultat |
|---|---|
|
|
|
|
|
|
[POSITIONS;returnField;whereField;matchValue]
Identique à [POSITION] mais renvoie une chaîne de caractères « | » alignée sur toutes les positions (avec un espace vide là où il n'y a pas de correspondance).
|
Expression |
Résultat |
|---|---|
|
|
|
[GROUPPRIMARYPOSITION;returnField]
Sélection primaire position : la plus élevée APositionPercentage, départage selon la date la plus proche APositionStartDate.
|
Postes chez Kari |
Expression |
Résultat |
|---|---|---|
|
100 % informatique, 20 % ressources humaines |
|
|
[ACTIVEPOSITIONCOUNT;asOfDate]
|
Expression |
Résultat |
|---|---|
|
|
|
Messagerie et intégration
[COUNTMESSAGESENT;messageId;fromDate]
|
Paramètre |
Objectif |
|---|---|
|
|
Identifiant du modèle de message. Facultatif — s'il est omis (équivalent à |
|
|
Ne prendre en compte que les envois postérieurs à cette date (facultatif) |
|
Expression |
Sortie (variable fictive) |
|---|---|
|
|
|
Omis messageId: Si l'identifiant du modèle de message n'est pas fourni ([COUNTMESSAGESENT;] est égal à 0), l'expression est évaluée dans le contexte du modèle de message dont l'envoi a déclenché l'ensemble de règles. En d'autres termes, elle correspond à la question « le message en cours d'envoi a-t-il déjà été envoyé à ce destinataire ? », et non à un identifiant de modèle fixe. De ce fait, un même ensemble de règles peut être réutilisé comme protection contre les envois en double pour plusieurs modèles de message différents, au lieu de créer un ensemble de règles distinct pour chaque modèle.
Avertissement : L'aperçu de l'ensemble de règles dans le générateur d'expressions ne fonctionnera pas lorsque messageId est omis, car en dehors d'un envoi de message proprement dit, aucun modèle de message ne se déclenche pour fournir ce contexte.
Utilisation : condition « Déjà notifié ? » dans le flux de suivi ; condition commune de prévention des envois en double dans plusieurs modèles de message.
[SYSTEMOWNER]
Nécessite l'historique des modifications d'autorisation (autorisation d'ajout, de modification ou de suppression).
|
Contexte |
Sortie (variable fictive) |
|---|---|
|
Ajout d'une autorisation sur le rôle 501 |
|
Utilisation : propriétaire du système CC lorsque l'autorisation automatique est accordée.
[SYNCSTEPPARAMETER;key;companySyncStepId]
|
Paramètre |
Objectif |
|---|---|
|
|
Nom du paramètre lors de l'étape de synchronisation |
|
|
Identifiant d'instance de l'étape de synchronisation client |
|
Expression |
Résultat |
|---|---|
|
|
|
Accès : Administrateur de l'entreprise dans l'aperçu du générateur d'expressions.
[APITOKEN;apiUsername]
|
Paramètre |
Objectif |
|---|---|
|
|
Nom d'utilisateur de l'API (type d'objet 14) |
|
Expression |
Résultat |
|---|---|
|
|
Chaîne de caractères du jeton de session opaque (variable) |
Accès : administrateur de l'entreprise en version préliminaire. À utiliser uniquement dans des flux sécurisés côté serveur.
Aides HTML (modèles de messages)
[HTMLLISTMEMBEROF;displayField]
Pour un utilisateur membre d'un groupe: affiche la liste des groupes parents.
|
Expression |
Résultat |
|---|---|
|
|
|
[HTMLLISTARRAY;list]
|
Expression |
Résultat |
|---|---|
|
|
|
Contrôles de modèle de formulaire
Utilisé dans les modèles de formulaire, et non dans les ensembles de règles standard.
|
Fonction |
Objectif |
|---|---|
|
|
Saisie de texte liée à l'identifiant d'un champ de formulaire |
|
|
Entrée booléenne |
|
|
Menu déroulant (cinq paramètres) |
|
|
Groupe radiophonique |
|
|
Sélecteur de date |
|
|
Texte sur plusieurs lignes |
|
|
Bouton d'action |
Exemple de modèle : [INPUTBOX;1042;Avdeling;IT-100;] affiche la valeur saisie dans le champ intitulé « Avdeling » avec la valeur par défaut IT-100.
Marqueurs [NOTIFY...], [HIDDEN...], [SERVERFUNCTION...] Il s'agit de « hooks » de comportement, et non de fonctions de données.
Scénarios de bout en bout (données fictives)
E-mail de bienvenue — date de début uniquement
Ny ansatt [DisplayName] starter [SUBSTRING;0;10;[Start]].
Résultat : Ny ansatt Kari Nordmann starter 01.04.2026.
Ligne d'expiration de l'autorisation
Gyldig til: [IFEMPTYUSE;[OBJECTPERMISSION;ExpiryDate;SystemRoleId;501];Permanent tilgang]
Résultat : Gyldig til: Permanent tilgang
Responsable absent — transmettre au responsable du service parent
[IFEMPTYUSE;
[EXISTS;[Manager];];
[REFERENCE;Email;UserId;1;[REFERENCE;Manager;Id;2;[REFERENCE;ParentDepartmentNumber;DepartmentNumber;2;[DepartmentNumber]]]]]
|
Kari, responsable |
Résultat |
|---|---|
|
vide |
|
|
ensemble |
vide (branche EXISTS — adaptez la logique du modèle si vous avez besoin de l'adresse e-mail du responsable lorsqu'elle est disponible) |
Adaptez la combinaison IFEMPTYUSE/EXISTS en fonction de l'objectif de votre modèle ; testez-la dans le générateur d'expressions.
Nouveau poste uniquement — destinataire du message
Après la synchronisation, les ajouts POS-02:
[REFERENCE;Email;UserId;1;[POSITION;APositionManager;AUnitId;[RTRIM;[ARRAYDIFF;[APositionCodeId];[LASTVALUE;APositionCodeId]];|]]]
Résultat : Adresse e-mail du responsable du service auquel appartient le nouveau poste (placebo : ny-leder@eksempel.kommune.no).
Nom du groupe de sécurité automobile (configuration client)
SG-[Department]-[CLEAN;[OrgUnitnr]]
Résultat : SG-IT og digitalisering-IT-100 (le résultat exact de CLEAN peut varier).
Mappage d'exportation — samAccountName
[UserName]
Résultat : kari.nordmann
Ensemble de règles — l'utilisateur dispose d'un rôle dans le système
Expression d'attribut de règle :
[OBJECTPERMISSION.SYSTEMROLE;Name;SystemRoleId;501]
Valeur calculée : Bruker Fagsystem X — opérateur « comparer avec » Er lik / opérateurs proposant des abonnements.
Générateur d'expressions
|
Article |
Détails |
|---|---|
|
Où |
Générateur d'expressions pour les icônes d'en-tête, éditeurs de modèles de messages, certains écrans d'eHub |
|
Liste des fonctions |
Tous les champs d'objet du type sélectionné, ainsi que les fonctions standard |
|
Aperçu |
Sélectionner un utilisateur/service/groupe de test ; nécessite des droits de super-gestionnaire |
|
Ensembles de règles |
Automatisation → Ensembles de règles — super-gestionnaire minimum |
Deux modes de saisie pour la valeur d'une condition de règle
Chaque ligne de condition de l'onglet « Règles » d'un ensemble de règles comporte un champ « Attribut » (ou « Argument ») muni de deux petites icônes permettant de basculer entre les modes de saisie :
-
Mode menu déroulant (icône représentant des flèches haut/bas) — mode par défaut. Affiche un menu déroulant permettant d'effectuer une recherche parmi les valeurs d'attributs de l'objet, regroupées par type (attributs d'utilisateur, de groupe, de service ou de formulaire, selon l'ensemble de règles utilisé).
-
Mode texte libre (icône de clavier) — transforme le champ en zone de texte simple. Utilisez cette option pour saisir du texte figé ou une expression de fonction en utilisant la syntaxe entre crochets décrite plus haut dans cet article, par exemple :
[COUNTMESSAGESENT;7166].
Le mode texte libre propose toujours la saisie semi-automatique : en tapant une partie du nom d'une fonction ou d'un champ (par exemple, [count) des surfaces présentant des caractéristiques et des fonctions similaires, telles que [COUNTEMPLOYEE], [COUNTMEMBERS], et [COUNTMESSAGESENT;message id].
Tester une expression à l'aide de la fonction « Modifier l'expression »
Lorsqu'un champ de condition est en mode texte libre, une icône supplémentaire située à côté de celui-ci permet d'ouvrir la boîte de dialogue « Modifier l'expression ». Utilisez-la pour tester une expression de fonction sur un objet réel avant d'enregistrer la règle.
La boîte de dialogue affiche :
-
Type d'objet — le type d'objet principal du jeu de règles (par exemple, « Utilisateur ») et les contextes secondaires disponibles (« Fonction », « Alias de fonction », « Événement », « Historique »).
-
Contexte: objet de test à utiliser pour l'évaluation. Utilisez la fonction « Rechercher » pour sélectionner un objet spécifique, ou « Choisir au hasard » pour laisser eADM en sélectionner un.
-
Expression — zone de texte modifiable, préremplie avec l'expression actuelle de la condition.
-
Résultat — le résultat du calcul, affiché après avoir cliqué sur « Exécuter ».
Lors de l'édition, lorsque vous passez la souris sur une fonction au sein d'une expression, une infobulle d'aide s'affiche, indiquant la syntaxe complète de cette fonction, une brève description et la signification de chaque paramètre. L'infobulle met en surbrillance l'expression entière en vert et affiche en gras la partie correspondant à la position actuelle du curseur, ce qui facilite considérablement la navigation dans les expressions longues ou profondément imbriquées.
Remarque : comme pour le générateur d'expressions en général, tester une expression dans la section « Modifier l'expression » nécessite des droits d'administrateur (voir « Niveaux d'accès » ci-dessus).
Dépannage
|
Symptôme |
Cause probable |
Action |
|---|---|---|
|
Littéral |
Champ interne vide ou erreur de frappe |
Corriger l'imbrication ; vérifier les noms des champs de l'objet |
|
Erreur d'évaluation d'expression |
Imbriqué |
Diviser en appels entre frères et sœurs ou utiliser |
|
Chaîne vide |
Identifiant / autorisation introuvable |
Vérifier l'identifiant du rôle système et l'identifiant système dans l'accès au système |
|
Position incorrecte dans l'e-mail |
Plusieurs postes ont été modifiés simultanément |
Ne vous fiez pas uniquement aux fonctions ARRAYDIFF et LASTVALUE |
|
Aperçu bloqué |
Rôle ou champ protégé |
Élever le rôle ou simplifier l'expression de test |
|
Ça fonctionne dans le générateur, mais pas dans le message |
Le flux d'événements a besoin de l'historique des objets issu de la synchronisation |
Lancer l'importation ; vérifier le type d'entrée dans l'historique |
|
Preview ne fonctionne pas / plante sans afficher de message d'erreur |
|
Comme prévu — le contexte du modèle de message déclencheur n'existe que lors d'un envoi effectif. Testez la logique associée sans cette condition, ou fournissez temporairement un véritable |
Index rapide
|
Catégorie |
Fonctions |
|---|---|
|
Date et heure |
NÅ, NOW, DATEFORMAT, DATEDIFF, DAYOFYEAR |
|
Chaîne de caractères |
SUBSTRING, SPLIT, REPLACE, REPLACELIST, RTRIM, LTRIM, RPAD, LPAD, RIGHT, INITIALS, PRETTIFY, LOWER, UPPER, CLEAN, STRICTCLEAN, CNCLEAN, GETKEYVALUE |
|
Logique |
IFTHENELSE, IFEMPTYUSE, EXISTS, TRANSFORM, CONTAINS |
|
Tableaux |
COUNT, ARRAYAPPEND, ARRAYUNIQUE, ARRAYFILTER, ARRAYDIFF, ARRAYJOIN, ARRAYFOREACH, ARRAYPREFIX, ARRAYTRIM, PRUNEARRAY, UNION |
|
Sécurité |
HASH, PASSWORD, UNIQUE, RND, STRRND |
|
Recherche |
RÉFÉRENCE, AUTORISATION D'OBJET, HISTORIQUES D'OBJET, POUR CHAQUE, DESCENDANTS, SYSTÈME, SÉLECTION, SYSTÈME DISPONIBLE, RÔLE DISPONIBLE, SERVICES DISPONIBLES, PROPRIÉTAIRE DES DONNÉES, ANTÉCÉDENTS.RÔLE SYSTÈME, NOMBRE D'EMPLOYÉS, NOMBRE DE MEMBRES, OBTENIR DERNIÈRE ID DE SYNCHRONISATION, DERNIÈRE VALEUR |
|
Postes |
POSITION, POSITIONS, POSITION_PRINCIPALE_DU_GROUPE, NOMBRE_DE_POSITIONS_ACTIVES |
|
Messagerie |
COUNTMESSAGESENT, SYSTEMOWNER, SYNCSTEPPARAMETER, APITOKEN |
|
HTML |
HTMLLISTMEMBEROF, HTMLLISTARRAY |
|
Formulaires |
ZONE DE SAISIE, CASE À COCHER, BOUTON, LISTE DÉROULANTE, BOUTON RADIO, ZONE DE DATE, ZONE DE SÉLECTION |
Notes de l'assistant IA
-
Préférer
[DisplayName]les champs de type « - » avant de les encapsuler dans des fonctions. -
Demandez où se trouve l'expression : ensemble de règles, message, exportation ou configuration client.
-
Remplacer les identifiants fictifs (
501,2100) avec les données réelles du client rôle système et département identifiants provenant de accès au système. -
Le filtre de position appliqué lors de l'importation exclut les correspondances ; le jeu de règles de l'étape de synchronisation inclut les correspondances.
-
Les flux de messages d'événement ont besoin de l'historique des objets issu d'une synchronisation.
-
Créer des exemples imbriqués à l'envers — sauf que
[ARRAYFOREACH...], qui se lie à???par élément avant l'exécution des fonctions de modèle. -
Ne pas imbriquer
[ARRAYFOREACH...]; utilisez des appels entre frères et sœurs ou[ARRAYJOIN]. -
[COUNTMESSAGESENT;]avec lemessageIdLa fonction « omitted » s'applique au modèle de message en cours d'envoi ; ainsi, un même ensemble de règles peut contrôler plusieurs modèles de message — mais son aperçu ne fonctionnera pas en dehors d'un envoi réel. -
Il existe deux façons de définir la valeur d'une condition de règle : via un menu déroulant (sélecteur d'attributs) ou en saisie libre (icône du clavier, texte fixe ou expressions) ; en mode saisie libre, l'option « Modifier l'expression » permet de tester la condition sur un objet d'exemple.
-
Termes : ensemble de règles (Regelsett), flux de messages (meldingsflyt), accès au système (systemtilgang), autorisation (tilgang), historique des objets (objekthistorikk).