Gestionnaire des transactions : règles et regroupements de règles
Les règles dans Transaction Manager sont similaires aux règles de configuration. Vous pouvez également regrouper des règles lorsqu’elles sont destinées à fonctionner ensemble.
Comme dans la configuration, les règles dans Transaction Manager régissent les actions effectuées lorsqu’un utilisateur effectue une entrée dans l’interface utilisateur buyside du gestionnaire de transaction. Les règles se composent de trois composants dans Transaction Manager : niveau, conditions et actions.
Le niveau détermine si la règle s’exécute au niveau de la transaction ou au niveau de la ligne de transaction. Le niveau détermine quels champs peuvent être utilisés dans la définition des conditions et des actions de la règle.
Les conditions déterminent quand une règle exécute ses actions. Si les conditions définies pour une règle sont évaluées comme VRAI, les actions de la règle sont exécutées. Si les conditions d’une règle sont évaluées comme FAUX, les actions de règle ne s’exécutent pas.
Les actions déterminent ce que font les règles lorsqu’elles sont exécutées.
Chaque type d’action dispose d’un ensemble unique de paramètres de règles qui doivent être définis. Les actions sont décrites plus en détail dans les sections suivantes.
Créer une nouvelle règle
Dans le menu Administrateur de Transaction Manager, cliquez sur Règles connexes. Pour créer une règle, cliquez sur + Nouvelle règle.
Dans la fenêtre contextuelle Nouvelle règle , saisissez le nom de la nouvelle règle et vérifiez le nom de la variable. Pour modifier le nom de la variable, cliquez sur l’icône en forme de crayon à droite.
Pour définir le niveau de la nouvelle règle, cliquez sur Transaction ou Ligne de transaction.
- Les règles au niveau des transactions peuvent utiliser des champs au niveau des transactions dans les conditions et les actions de la règle.
- Les règles au niveau de la ligne de transaction peuvent utiliser des champs au niveau de la transaction et au niveau de la ligne de transaction dans les conditions de la règle, mais uniquement des champs au niveau de la ligne de transaction dans les actions de la règle.
Cliquez sur Enregistrer.
Sur la page de l’éditeur de règles, vous pouvez modifier le nom et la description de la règle. Le bouton Actif vous permet d’activer ou de désactiver la règle.
La zone Condition se trouve sous le champ Description. Cliquez sur le menu Prendre des mesures quand affiche des options d’implémentation des conditions de cette nouvelle règle. Sélectionnez la méthode de conditions à utiliser pour cette nouvelle règle.
- Always True exécute la règle chaque fois qu’un utilisateur apporte un changement à l’interface utilisateur buyside du gestionnaire de transaction.
- Toutes les conditions sont remplies exécute la règle si une condition est évaluée comme VRAI. (Les conditions sont logiquement OU ensemble.)
- Toutes les conditions sont remplies exécute la règle si toutes les conditions sont évaluées comme VRAI. (Les conditions sont logiquement ET ensemble.)
- La logique personnalisée permet d’utiliser des parenthèses et un mélange de ET et de OU pour créer une évaluation de logique personnalisée des conditions de la liste de conditions (par exemple, Si Cond_1 ET (Cond_2 OU Cond_3)).
- La fonction avancée permet à l’administrateur d’écrire un script pour déterminer si les règles doivent être exécutées. Le script renvoie une valeur TRUE ou FALSE.
Si vous modifiez la valeur du menu Prendre des mesures quand à partir de la valeur par défaut Toujours , vous devez spécifier la liste des conditions qui déterminent si la règle s’exécute. Vous pouvez définir une ou plusieurs conditions individuelles pour une règle. Pour définir une condition, utilisez le menu Saisir/Sélectionner un champ pour sélectionner le champ du Gestionnaire de transactions à tester, puis choisissez l’opérateur de la condition dans le menu Est égal à, puis définissez la valeur de test pour le champ dans le menu Entrer/Sélectionner une valeur pour déterminer si la condition est VRAI ou FAUX. Utilisez le bouton +Ajouter une condition pour ajouter plusieurs conditions à la règle.
Une fois les conditions définies, vous pouvez définir les actions que la règle exécute. Comme pour les conditions, vous pouvez ajouter une ou plusieurs actions à une règle, et différents types d’actions peuvent être inclus dans la même règle.
Pour ajouter une action, sélectionnez le type d’action à ajouter et cliquez dessus dans la zone Actions. Vous accédez alors au paramètre Type d’action défini pour définir l’action.
- Une action de masquage masque conditionnellement un champ.
- Une action de message affiche un message texte à l’utilisateur buyside.
- Une action d’exclusion masque ou désactive une option de menu dans un champ de liste déroulante.
- Une action d’inclusion affiche une option de menu dans un champ de liste déroulante.
- Une action de détermination définit ou efface la valeur d’un champ.
On trouvera ci-après un examen des différents ensembles de paramètres d’action.
Action de masquage
L’action Masquage vous permet de masquer un champ sur la mise en page côté achat. Le seul paramètre pour ce type d’action est le champ à masquer. Utilisez la zone de recherche du champ pour identifier le champ.
Action Message
Une action Message permet d’afficher un message texte à l’utilisateur buy-side dans la mise en page du gestionnaire des transactions. Quatre types de messages se trouvent dans le menu I want to display :
- Un message d’informations utilise une icône bleue circulaire et un texte de message bleu. L’icône et la couleur du texte ne peuvent pas être modifiées.
- Un message d’avertissement utilise une icône jaune triangulaire et un texte de message jaune. L’icône et la couleur du texte ne peuvent pas être modifiées.
- Un message d’erreur utilise une icône rouge triangulaire et un texte de message rouge. L’icône et la couleur du texte ne peuvent pas être modifiées.
- Les messages personnalisés peuvent avoir n’importe quelle icône et couleur de texte.
Utilisez le champ Afficher le message sur pour définir l’emplacement où vous souhaitez que le message apparaisse dans la mise en page buy-side. Le message est souvent attaché à un champ, mais il peut également être associé à un composant de mise en page tel qu’un niveau ou un ensemble de colonnes.
Le champ Contenu du message vous permet d’écrire le message à afficher à l’utilisateur buyside. Définir le bouton bascule Avancé vous permet d’écrire un script pour créer le message. Utilisez le champ Lorsque le message est affiché pour déterminer si la transaction peut être enregistrée lorsque le message est affiché.
Action d’exclusion/d’inclusion
Les actions d’exclusion et d’inclusion vous permettent de définir la visibilité et l’utilisation des options de menu qui sont définies pour un champ de liste déroulante. Les actions d’exclusion vous permettent de masquer ou de désactiver les options de menu. Les actions d’inclusion vous permettent d’afficher ou d’activer les options de menu. Les actions d’exclusion et d’inclusion utilisent le même ensemble de paramètres.
Utilisez le menu For this Field (Pour ce champ ) afin de sélectionner le champ de la liste de sélection dont les options de menu doivent être exclues ou incluses dans le menu.
Utilisez le menu I want to [exclude|include] these options (Je souhaite [exclure|inclure] ces options pour sélectionner les options du menu de liste déroulante à exclure ou à inclure dans le menu. Vous pouvez sélectionner plusieurs options une par une. Utilisez le bouton bascule Avancé pour utiliser un script afin de déterminer quelles options de menu font partie de l’exécution de la règle.
Utilisez le menu Pour les options exclues afin de déterminer le mode de traitement des options de menu exclues. (Dans une action d’inclusion, les options de menu non incluses dans le menu sont traitées comme des options de menu exclues.) Choisissez Masquer pour masquer les options. Choisissez Désactivez-les pour les conserver dans le menu à l’état désactivé.
Utilisez le menu S’il y en a déjà sélectionné pour déterminer ce qu’il faut faire lorsque l’utilisateur a déjà sélectionné un élément de menu exclu lors de l’exécution de la règle :
- Laisser inchangé laisse l’élément exclu comme élément sélectionné.
- Les désélectionner désélectionne l’option exclue, ce qui oblige l’utilisateur à sélectionner une autre option.
- Sélectionner la première option valide désélectionne l’option exclue, mais la remplace par la première option disponible dans le menu suivant l’exécution de la règle.
Action de détermination
Les actions de détermination vous permettent de définir et d’effacer la valeur d’un champ dans le Gestionnaire des transactions.
Utilisez le menu Pour ce champ pour rechercher et sélectionner le champ sur lequel la règle doit agir.
Sous Je veux..., définissez s’il faut définir ou effacer la valeur du champ et s’il faut autoriser ou empêcher l’utilisateur de modifier sa valeur après qu’elle a été modifiée par la règle.
Dans le menu Si l’utilisateur a modifié les valeurs , vous pouvez choisir de conserver une valeur dans le champ que l’utilisateur a modifié ou de remplacer la valeur par la valeur de la règle. Pour conserver la valeur saisie par l’utilisateur, utilisez le menu Lorsque les valeurs utilisateur sont conservées pour déterminer s’il faut afficher à l’utilisateur un message avec une recommandation sur la valeur du champ.
Enfin, définissez la valeur à affecter au champ. Le champ Utiliser cette valeur définit cette valeur. Vous pouvez utiliser le bouton bascule Avancé pour activer un script afin de déterminer la valeur.
Regroupements de règles
Les regroupements de règles sont des ensembles de règles à exécuter ensemble. Un regroupement de règles peut contenir à la fois des règles au niveau de la transaction et au niveau de la ligne de transaction.
Les regroupements de règles sont utilisés dans les étapes et les événements pour lier des groupes de règles à exécuter. Chaque étape peut être associée à un nombre quelconque de groupes de règles, déterminant quelles règles s’exécutent lorsqu’un utilisateur apporte des modifications à un champ de l’étape. Pour que les règles s’exécutent, l’administrateur doit associer un groupe de règles à une étape ou à un événement. Pour obtenir des instructions sur la procédure à suivre, consultez les articles suivants :
Création d’un regroupement de règles
Pour commencer, cliquez sur Regroupements de règles dans le menu Administration, puis sur + Nouveau regroupement de règles.
Dans la fenêtre Nouveau regroupement de règles , entrez un nom de variable pour le nouveau regroupement de règles, puis cliquez sur Enregistrer.
La page de l’éditeur de regroupement de règles s’ouvre. Cliquez sur + Associer les règles.
Un volet coulissant apparaît, dans lequel vous pouvez sélectionner les règles à inclure dans le nouveau regroupement de règles. Cliquez sur + dans la colonne Résultats pour déplacer une règle vers la colonne Sélectionné . Répétez cette opération pour chaque règle à inclure dans le groupe de règles.
Lorsque vous avez terminé de sélectionner des règles, cliquez sur Terminé. Vous êtes redirigé vers la page de l’éditeur de regroupement de règles, où vous voyez les règles qui ont été ajoutées au groupe.
Agrégats de règles
Les agrégats sont des fonctions de script à utiliser dans une action de détermination de règle. Les agrégats peuvent améliorer l’automatisation, optimiser les calculs de tarification et améliorer l’organisation des données dans les workflows de devis et de transactions. Ils ont été créés pour optimiser les performances du moteur de règles dans Transaction Manager.
Les fonctions d’agrégat effectuent divers calculs mathématiques sur les champs de ligne de transaction. Les résultats de ces calculs sont stockés dans un champ de transaction (en-tête) ou dans un champ de ligne de transaction.
Les agrégats de règles comprennent les catégories suivantes :
- Moy, Nombre, Min, Max, Somme
- AvgIf, CountIf, SumIf
- SommeEnfants
- Référence
Moy, Nombre, Min, Max, Somme
Ces fonctions d’agrégat regroupent la valeur du champ de ligne de transaction pour toutes les lignes et stockent le résultat dans un champ d’en-tête (le champ cible de l’action de détermination) :
renvoyer txn.line.functions.<function>(txn.line.<fieldVarName>)
Les valeurs de < fonction > incluent avgField, countField, minField, maxField et sumField.
AvgIf, CountIf, SumIf
Ces fonctions d’agrégat appliquent un filtre à la valeur du champ de la ligne de transaction pour toutes les lignes, puis effectuent le calcul sur les lignes restantes, en stockant le résultat dans un champ d’en-tête (le champ cible de l’action de détermination) :
txn.line.functions.<function>(txn.line.<fieldVarName>, <condition> [, <default>])
Les valeurs de < fonction > incluent avgFieldIf, countFieldIf et sumFieldIf.
- booleanField = vrai
- txn.line.functions.sumChildrenField(txn.line.<fieldVarName>)> 0
S’il n’y a pas d’enfants à regrouper et que la valeur par défaut n’est pas définie, la fonction renvoie null.
Les vérifications conditionnelles du texte sont sensibles à la casse.
Exemple de cas d’utilisation : Addition des prix catalogue pour les ventes de type BOM
L’exemple de transaction d’étape de brouillon ci-dessous calcule la somme des prix catalogue des articles dont le type de nomenclature est VENTES. Le type BOM est un champ de ligne dérivé du système qui reflète le type défini lors de la création de l’élément de configuration.
Étapes :
- Créez un champ d’en-tête nommé Prix type de ventes totales.
- Ajoutez-le à la mise en page et déployez la transaction.
- Configurez une règle de détermination à l’aide de la fonction
sumFieldIf, appliquée à l’étape de brouillon avec le script suivant :return txn.line.functions.sumFieldIf(txn.line.pricing.list, txn.line.configuration.item.bomType == 'SALES');Remarque :La vérification conditionnelle est sensible à la casse. UtilisezSALES,pasSALES. Une casse incorrecte ne génère aucune erreur, mais génère une somme de 0, car dans le cas d’utilisation, aucune ligne n’a un type BOM de ventes. - Déployez et rechargez la transaction. Le champ renvoie correctement le total des prix de ligne correspondants : 46 000 $ (de 0, 40 000, 2 500, 1 000, 2 500).
SommeEnfants
Cette fonction d’agrégat regroupe la valeur du champ de ligne de transaction pour toutes les lignes enfants et stocke le résultat dans le champ au niveau de la ligne parent immédiat des lignes enfants (champ cible de l’action de détermination) :
txn.line.functions.sumChildrenField(txn.line.<fieldVarName>)Référence
Ces fonctions d’agrégat récupèrent des valeurs au lieu de calculer des totaux. Ils renvoient soit une valeur unique, soit un tableau de valeurs, ce qui permet aux utilisateurs d’extraire dynamiquement des informations clés pour les utiliser dans les calculs de prix, les règles de validation et les documents de sortie.
Les fonctions de recherche de base sont les suivantes :
txn.line.functions.lookupField(<field>)Récupère un tableau de valeurs du champ spécifié sur toutes les lignes de transaction.
txn.line.functions.lookupFirstField(<field> [, <default>])Récupère la première valeur de champ correspondante. Si aucun n’est trouvé, renvoie la valeur par défaut facultative.
txn.line.functions.lookupChildrenField(<field>)Récupère un tableau de valeurs à partir des éléments de ligne enfants.
txn.line.functions.lookupFirstChildrenField(<field> [, <default>])Récupère la première valeur correspondante des éléments de ligne enfants, avec une valeur par défaut facultative.
Les vérifications conditionnelles du texte sont sensibles à la casse. Les fonctions de recherche conditionnelle incluent :
txn.line.functions.lookupFieldIf(<field>, <condition>)Récupère un tableau de valeurs de champ en fonction d’une condition.
txn.line.functions.lookupFirstFieldIf(<field>, <condition> [, <default>])Récupère la première valeur de champ correspondante en fonction d’une condition, avec une valeur par défaut facultative.
txn.line.functions.lookupChildrenFieldIf(<field>, <condition>)Récupère un tableau de valeurs à partir des éléments de ligne enfants en fonction d’une condition.
txn.line.functions.lookupFirstChildrenFieldIf(<field>, <condition> [, <default>])Récupère la première valeur de champ d’élément de ligne enfant correspondante en fonction d’une condition, avec une valeur par défaut facultative.
Les fonctions suivent une convention de dénomination structurée pour plus de clarté et de cohérence.
la rechercherenvoie un tableau.lookupFirstrenvoie une seule valeur.- Contexte : aucun contexte (toutes les lignes) ou
enfants(éléments de ligne enfants uniquement). - Objet :
champ(s’applique uniquement à une recherche de champ). - Condition : Aucune condition ou
Si(recherche conditionnelle).
Les fonctions de recherche stockent les valeurs récupérées dans des champs intermédiaires, les rendant disponibles pour des calculs ultérieurs et l’automatisation. Cela permet l’intégration avec les règles de tarification, les approbations et les documents de sortie.
Les avantages des champs intermédiaires sont les suivants :
- Ils minimisent les calculs redondants en stockant les valeurs couramment référencées
- Ils maintiennent un ensemble cohérent de valeurs de champ dans les processus de tarification et de devis
- Ils permettent des mises à jour dynamiques des champs dépendants, garantissant ainsi une précision en temps réel des prix et des approbations
Les agrégations de recherche s’ajustent dynamiquement lorsque les éléments de ligne cités sont supprimés. Le système s’assure que les références aux lignes de transaction supprimées sont effacées, ce qui maintient l’exactitude des données dans les prix et les remises recalculés. Consultez les exemples suivants.
var taxCodes =
txn.line.functions.lookupFieldIf("taxCode", txn.line.amount > 0);
var firstPrice =
txn.line.functions.lookupFirstField("price", 0); var childService =
txn.line.functions.lookupChildrenField("serviceType"); var totalTax =
txn.line.functions.lookupFirstField(txn.line.taxAmount, 0); return totalTax * 1.05; //
Applies a 5% surcharge based on retrieved tax amount