Contraintes d’expression
Les contraintes contrôlent les valeurs d’attribut que vous pouvez sélectionner lorsque vous configurez des produits pour une commande vente, un devis, une commande fournisseur ou un ordre de fabrication. Vous pouvez utiliser des contraintes d’expression ou de table, selon la façon dont vous préférez créer les contraintes.
Contraintes d’expression
L’utilisation d’un modèle de configuration de produit basé sur les contraintes implique que certaines limitations existent lorsque l’utilisateur sélectionne des valeurs pour les différents attributs. Vous pouvez implémenter ces limitations en tant que contraintes d’expression à l’aide du langage de modélisation d’optimisation (OML, Optimization Modeling Language).
Les contraintes d’expression sont caractérisées par une expression qui utilise des opérateurs et fonctions arithmétiques et booléens. Vous devez écrire une contrainte d’expression pour un composant spécifique dans un modèle de configuration de produit. Un autre composant ne peut pas la réutiliser et vous ne pouvez pas la partager avec un autre composant. Cependant, les contraintes d’expression d’un composant peuvent référencer des attributs des sous-composants du composant.
Vous pouvez également implémenter une contrainte sous la forme d’une contrainte de table.
Configuration d’une contrainte d’expression
(Color == "Black" & (size == "30" | size == "50")) | (color == "Red" & size =="20")
Vous pouvez écrire une contrainte d’expression à l’aide des opérateurs de préfixe disponibles ou d’une notation infixe. Pour les opérateurs Min, Max et Abs, vous ne pouvez pas utiliser la notation infixe. Ces opérateurs sont inclus en tant qu’opérateurs standard dans la plupart des langages de programmation.
Contraintes de table
Vous pouvez inclure une contrainte de table dans un modèle de configuration de produit en référençant la définition de contrainte de table et en mappant les attributs pertinents du modèle aux colonnes de la contrainte de table.
Les contraintes de table peuvent être définies par l’utilisateur ou par le système :
Définie par l’utilisateur : avec ce type, l’utilisateur crée une contrainte de table. L’utilisateur sélectionne une combinaison de types d’attributs pour représenter les colonnes de la table, puis saisit les valeurs des domaines des types d’attributs sélectionnés pour former les lignes de la contrainte de table.
Une contrainte de table définie par l’utilisateur est statique et se compose de colonnes qui représentent les types d’attributs. Chaque ligne est une combinaison légale de valeurs d’attribut que le système extrait des types d’attributs.
Définie par le système : vous pouvez définir ce type de contrainte de table en sélectionnant la table Supply Chain Management à utiliser comme référence, puis en sélectionnant des champs de cette table pour former les colonnes de la contrainte. Les lignes de la contrainte de table sont les lignes de la table Supply Chain Management présentes au moment de la configuration.
Les contraintes de table répertorient les combinaisons de valeurs autorisées pour les attributs lorsque vous configurez un produit. Vous pouvez utiliser les définitions de contraintes de table de manière générique. Lorsque vous créez une contrainte de table pour un composant dans un modèle de configuration de produit, sélectionnez une définition de contrainte de table. Pour créer les combinaisons autorisées, vous pouvez ajouter des attributs de types spécifiques aux composants. Chaque type d’attribut a une valeur spécifique.
L’exemple suivant montre comment limiter la configuration d’un haut-parleur à des finitions et façades d’armoires spécifiques. Le premier tableau comporte les finitions et façades d’armoire généralement disponibles pour la configuration. Les valeurs sont prédéfinies pour les types d’attributs Finition de l’armoire et Grille avant.
Type d’attribut | Valeurs |
---|---|
Finition de l’armoire | Noir, Chêne, Bois de rose, Blanc |
Grille avant | Noir, Métal, Blanc |
Le tableau suivant comporte les combinaisons que la contrainte de table Couleur et finition définit. À l’aide de cette contrainte de table, vous pouvez configurer un haut-parleur qui a une finition en chêne et une grille noire, une finition en bois de rose et une grille blanche, etc.
Finition | Grille |
---|---|
Chêne | Noir |
Bois de rose | Blanc |
Blanc | Noir |
Blanc | Blanc |
Noir | Noir |
Noir | Métal |
Syntaxe
Lors de l’écriture de contraintes, vous devez utiliser la syntaxe OML (Optimization Modeling Language ou langage de modélisation d’optimisation). Le système résout les contraintes à l’aide du solveur de contraintes Microsoft Solver Foundation (MSF).
Utiliser des contraintes de table ou d’expression
Vous pouvez utiliser des contraintes d’expression ou de table, selon la façon dont vous préférez créer les contraintes. Une contrainte de table est créée comme une matrice, tandis qu’une contrainte d’expression est une instruction individuelle. Lorsque vous configurez un produit, peu importe le type de contrainte que vous utilisez. L’exemple suivant montre en quoi les deux méthodes diffèrent.
Lorsque vous configurez un produit à l’aide des configurations de contraintes suivantes, ces combinaisons sont autorisées :
Un produit de couleur Noir et de taille 30 ou 50
Un produit de couleur Rouge et de taille 20
Contraintes de table définies par le système et par l’utilisateur
Les deux types de contraintes de table pour les composants dans un modèle de configuration de produit sont définies par l’utilisateur et définies par le système.
Les contraintes de table représentent des matrices des combinaisons d’attributs autorisées, où chaque ligne définit un ensemble de valeurs d’attribut possibles.
Les contraintes de table représentent des matrices des combinaisons d’attributs autorisées pour les composants dans un modèle de configuration de produit. Chaque ligne de la table définit un ensemble de valeurs d’attribut possibles. Vous pouvez déclarer deux types de contraintes dans un modèle de configuration de produit :
Contrainte d’expression : créez une expression qui définit les relations entre les attributs pour garantir que les utilisateurs peuvent sélectionner uniquement les valeurs compatibles lors de la configuration du produit.
Contrainte de table : créez une table qui définit toutes les combinaisons autorisées pour un ensemble d’attributs spécifié. Deux types de contraintes de table sont disponibles : définies par l’utilisateur et définies par le système.
Contraintes de table définies par l’utilisateur
Une contrainte de table définie par l’utilisateur est un type de matrice vous permettant de décrire les combinaisons de valeurs d’attribut que les types d’attributs définissent. Par exemple, si vous produisez des haut-parleurs, vous pouvez inclure des colonnes pour la finition de l’armoire et la grille avant dans la contrainte de table définie par l’utilisateur.
Le type d’attribut pour la finition de l’armoire a quatre valeurs et le type d’attribut pour la grille avant a trois valeurs. Par conséquent, si vous n’utilisez aucune contrainte, 4 × 3 = 12 combinaisons sont possibles. Cependant, dans cet exemple, seules six combinaisons sont autorisées, comme indiqué dans le tableau suivant.
Gestion des informations produit>Produits>Modèles de configuration de produit>Contraintes
Dans l’onglet Combinaisons autorisées, vous pouvez afficher les informations concernant les combinaisons en accédant à la page Modifier une contrainte de table sous Gestion des informations produit > Produits > Modèles de configuration de produit > (Sélectionner un modèle) > Contraintes > Modifier une contrainte de table.
Contraintes de table définies par le système
Une contrainte de table définie par le système crée un mappage dynamique entre un type d’attribut et un champ dans une table. Lorsque vous incluez une contrainte de table définie par le système dans un modèle de configuration de produit, le mappage garantit que les données de la table s’affichent à la place des valeurs du type d’attribut. Le résultat est une contrainte dynamique, car d’autres modules peuvent modifier le contenu de la table, par exemple.
Lors de la création d’une contrainte de table définie par le système, vous pouvez sélectionner une table, définir éventuellement la requête à utiliser, puis associer des types d’attributs aux champs de la table sélectionnée. Les types de champs doivent correspondre aux types d’attributs.
Avant qu’une contrainte de table puisse prendre effet sur un modèle de configuration de produit, vous devez inclure la contrainte de table dans une contrainte sur l’un des composants du modèle. La procédure consiste à créer une contrainte, sélectionner le type de contrainte de table, puis sélectionner la définition de contrainte de table à utiliser. Enfin, vous devez mapper tous les champs de la contrainte de table à des attributs dans le modèle de configuration de produit.
Cependant, mettre en correspondance des valeurs telles que les valeurs d’énumération et les plages d’entiers n’est pas nécessaire. Le système remplace les valeurs de type d’attribut par les valeurs du champ de la table sélectionnée. Après avoir créé une contrainte de table définie par le système, vous pouvez ajouter la contrainte à un composant, puis mapper l’attribut aux noms de colonne dans la contrainte de table.