Table ModuleSubstitution
La table ModuleSubstitution spécifie les champs configurables d’une base de données de module et fournit un modèle pour la configuration de chaque champ. L’utilisateur ou l’outil de fusion peut interroger cette table pour déterminer les opérations de configuration à effectuer. Cette table n’est pas fusionnée dans la base de données cible.
Les tableaux suivants ne peuvent pas contenir de champs configurables et ne doivent pas être répertoriés dans ce tableau :
Table ModuleSubstitution
La table ModuleSubstitution présente les colonnes suivantes.
Colonne | Type | Clé | Nullable |
---|---|---|---|
Table de charge de travail | Identificateur | O | N |
Ligne | Texte | O | N |
Colonne | Identificateur | O | N |
Valeur | Texte | N | O |
Colonnes
-
Table
-
Cette colonne spécifie le nom de la table en cours de modification dans la base de données de module.
-
Ligne
-
Ce champ spécifie les clés primaires de la ligne cible dans la table nommée dans la colonne Table. Les différentes clés primaires sont séparées par des points-virgules. Les lignes cibles sont sélectionnées pour modification avant que des modifications ne soient apportées à la table cible. Si un enregistrement de la table ModuleSubstitution modifie le champ clé primaire d’une ligne cible, d’autres enregistrements de la table ModuleSubstitution sont appliqués en fonction des données de clé primaire d’origine, et non du résultat des substitutions de clé primaire. L’ordre de substitution des lignes n’est pas défini.
Les valeurs de cette colonne sont toujours au format spécial CMSM. Vous pouvez ajouter un point-virgule (« ; ») ou un signe égal (« = ») en mettant une barre oblique inverse devant le caractère. '\'. Une valeur null pour une clé est signifiée par un null, un point-virgule de début, deux points-virgules consécutifs ou un point-virgule de fin, selon que la valeur null est une valeur de colonne de clé unique, première, centrale ou finale.
-
Colonne
-
Ce champ spécifie la colonne cible dans la ligne nommée dans la colonne Ligne. Si plusieurs lignes de la table ModuleSubstitution modifient différentes colonnes de la même ligne cible, toutes les substitutions de colonne sont effectuées avant l’insertion de la ligne modifiée dans la base de données. L’ordre de substitution des colonnes n’est pas défini.
-
Valeur
-
Cette colonne contient une chaîne qui fournit un modèle de mise en forme pour les données remplacées dans le champ cible spécifié par Table, Ligne et Colonne. Lorsqu’une chaîne de substitution ayant la forme [=ItemA] est rencontrée, la chaîne, notamment les caractères entre crochets, est remplacée par la valeur du « ItemA » configurable. L’élément configurable « ItemA » est spécifié dans la colonne Nom de la table ModuleConfiguration et sa valeur est fournie par l’outil de fusion. Si l’outil de fusion refuse de fournir une valeur pour un élément d’une chaîne de remplacement, la valeur par défaut spécifiée dans la colonne DefaultValue de la table ModuleConfiguration est remplacée. Si une chaîne fait référence à un élément qui n’est pas dans la table ModuleConfiguration, la fusion échoue.
- Cette colonne utilise le format spécial CMSM. Un point-virgule (« ; ») ou un signe égal (« = ») peut être ajouté à la table en mettant une barre oblique inverse devant le caractère. '\'.
- Le champ Valeur peut contenir plusieurs chaînes de substitution. Par exemple, la configuration des éléments « Food1 » et « Food2 » dans la chaîne : « [=Food1] est bonne, mais [=Food2] est préférable, car [=Food2] est plus nutritif ».
- Les chaînes de remplacement ne doivent pas être imbriquées. Le modèle « [=AB[=CDE]] » n’est pas valide.
- Si le champ Valeur est estimé comme null et que le champ cible n’autorise pas la valeur null, la fusion échoue et un objet d’erreur de type msmErrorBadNullSubstitution est créé et ajouté à la liste d’erreurs. Pour plus d’informations, consultez les types d’erreurs décrits dans get_Type Function.
- Si le champ Valeur correspond à l’identificateur global unique null : {00000000-0000-0000-0000-000000000000}, l’identificateur global unique null est remplacé par le nom de la fonctionnalité avant que la ligne ne soit fusionnée dans le module. Pour plus d’informations, consultez Référencement des fonctionnalités dans les modules de fusion.
- Le modèle dans le champ Valeur est évalué avant d’être inséré dans le champ cible. La substitution en ligne est effectuée avant de remplacer les fonctionnalités.
- Si la colonne Valeur est évaluée en une chaîne de caractères entiers uniquement (avec un + ou un - facultatifs), la chaîne est convertie en entier avant d’être remplacée par un champ cible du type de format entier. Si le modèle correspond à une chaîne qui ne se compose pas uniquement de caractères entiers (et d’un + ou un - facultatifs), le résultat ne peut pas être remplacé par un champ cible entier. La tentative d’insertion d’un non-entier dans un champ entier entraîne l’échec de la fusion et ajoute un objet d’erreur msmErrorBadSubstitutionType à la liste d’erreurs.
- Si la colonne cible spécifiée dans les champs Table et Colonne est un type de format de texte et que l’évaluation du champ Valeur aboutit à un type de format entier, une représentation décimale du nombre est insérée dans le champ de texte cible.
- Si le champ cible est un type de format entier et que le champ Valeur se compose d’une liste non délimitée d’éléments au format de champ de bits, la valeur du champ cible est combinée à l’aide du niveau du bit ET de l’opérateur avec l’inverse du niveau du bit OU de toutes les valeurs de masque des éléments, puis combinée à l’aide du niveau du bit OU de l’opérateur avec chacun des éléments entiers ou de champs de bits lorsqu’ils sont masqués par leurs valeurs de masque correspondantes. Fondamentalement, cela définit explicitement les bits des propriétés sur les valeurs fournies, mais laisse tous les autres bits seuls dans la cellule.
- Si le champ Valeur correspond à un type de format de clé et qu’il s’agit d’une clé dans une table qui utilise plusieurs clés primaires, le nom de l’élément peut être suivi d’un point-virgule et d’une valeur entière qui indique l’index de base 1 dans l’ensemble de valeurs qui constituent ensemble une clé primaire. Si aucun entier n’est spécifié, la valeur 1 est utilisée. Par exemple, la table Contrôle a deux colonnes de clé primaire, Dialog_ et Contrôle. La valeur d’un élément « Item1 » qui est une clé dans la table Control aura la forme « DialogName;ControlName », où DialogName est la valeur de la table Dialog_ et ControlName est la valeur de la colonne Control. Pour remplacer uniquement ControlName, la chaîne de substitution [=Item1;2] doit être utilisée.
Notes
La table ModuleSubstition est utilisée par les modules de fusion configurables. Mergemod.dll version 2.0 ou ultérieure est nécessaire pour créer un module de fusion configurable.
Pour garantir la compatibilité avec les versions de Mergemod.dll antérieures à la version 2.0, les tables ModuleConfiguration et ModuleSubstitution doivent être incluses dans la table ModuleIgnoreTable de chaque module.