ModuleSubstitution-Tabelle

Die ModuleSubstitution-Tabelle gibt die konfigurierbaren Felder einer Moduldatenbank an und stellt eine Vorlage für die Konfiguration jedes Felds bereit. Der Benutzer oder das Mergetool kann diese Tabelle abfragen, um zu bestimmen, welche Konfigurationsvorgänge ausgeführt werden sollen. Diese Tabelle wird nicht mit der Zieldatenbank zusammengeführt.

Die folgenden Tabellen dürfen keine konfigurierbaren Felder enthalten und dürfen nicht in dieser Tabelle aufgeführt werden:

ModuleSubstitution-Tabelle

ModuleConfiguration-Tabelle

ModuleExclusion-Tabelle

ModuleSignature-Tabelle

Die ModuleSubstitution-Tabelle umfasst die folgenden Spalten.

Spalte Typ Schlüssel Nullwerte zulässig
Tabelle Identifier J N
Zeile Text J N
Column Identifier J N
Wert Text N J

 

Spalten

Table

Diese Spalte gibt den Namen der Tabelle an, die in der Moduldatenbank geändert wird.

Row

Dieses Feld gibt die Primärschlüssel der Zielzeile in der Tabelle mit dem Namen in der Spalte „Table“ an. Mehrere Primärschlüssel werden durch Semikolons getrennt. Zielzeilen werden zur Änderung ausgewählt, bevor Änderungen an der Zieltabelle vorgenommen werden. Wenn von einem Datensatz in der ModuleSubstitution-Tabelle das Primärschlüsselfeld einer Zielzeile geändert wird, werden andere Datensätze in der ModuleSubstitution-Tabelle basierend auf den ursprünglichen Primärschlüsseldaten angewendet, nicht auf der Grundlage von Primärschlüsselersetzungen. Die Reihenfolge der Zeilenersetzung ist nicht festgelegt.

Die Werte in dieser Spalte haben immer ein spezielles CMSM-Format. Ein Literal-Semikolon (';') oder -Gleichheitszeichen ('=') kann hinzugefügt werden, indem dem Zeichen ein umgekehrter Schrägstrich vorangestellt wird. '\'. Ein NULL-Wert für einen Schlüssel wird durch eine NULL, ein führendes Semikolon, zwei aufeinanderfolgende Semikolons oder ein nachfolgendes Semikolon gekennzeichnet, je nachdem, ob der NULL-Wert ein einziger, erster, mittlerer oder endgültiger Schlüsselspaltenwert ist.

Column

In diesem Feld wird die Zielspalte in der Zeile angegeben, die in der Spalte „Row“ benannt ist. Wenn von mehreren Zeilen in der ModuleSubstitution-Tabelle unterschiedliche Spalten derselben Zielzeile geändert werden, werden alle Spaltenersetzungen ausgeführt, bevor die geänderte Zeile in die Datenbank eingefügt wird. Die Reihenfolge der Spaltenersetzung ist nicht festgelegt.

Value

Diese Spalte enthält eine Zeichenfolge, die eine Formatierungsvorlage für die Daten bereitstellt, die in dem durch „Table“, „Row“ und „Column“ angegebenen Zielfeld ersetzt werden. Wenn eine Ersetzungszeichenfolge im Format [=ItemA] gefunden wird, wird die Zeichenfolge, einschließlich der Klammerzeichen, durch den Wert für das konfigurierbare „ItemA“ ersetzt. Das konfigurierbare Element „ItemA“ wird in der Spalte „Name“ der ModuleConfiguration-Tabelle angegeben, und sein Wert wird vom Mergetool bereitgestellt. Wenn das Mergetool die Angabe eines Werts für ein Element in einer Ersatzzeichenfolge ablehnt, wird der in der DefaultValue-Spalte der ModuleConfiguration-Tabelle angegebene Standardwert ersetzt. Wenn eine Zeichenfolge auf ein Element verweist, das nicht in der ModuleConfiguration-Tabelle enthalten ist, schlägt die Zusammenführung fehl.

  • Für diese Spalte wird ein spezielles CMSM-Format verwendet. Ein Literal-Semikolon (';') oder -Gleichheitszeichen ('=') kann der Tabelle hinzugefügt werden, indem dem Zeichen ein umgekehrter Schrägstrich vorangestellt wird. '\'.
  • Das Wertfeld kann mehrere Ersetzungszeichenfolgen enthalten. Beispiel: Konfiguration der Elemente „Food1“ und „Food2“ in der Zeichenfolge: „[=Food1] ist gut, aber [=Food2] ist besser, weil [=Food2] nahrhafter ist.“
  • Ersetzungszeichenfolgen dürfen nicht geschachtelt werden. Die Vorlage „[=AB[=CDE]]“ ist ungültig.
  • Wenn das Wertfeld als NULL ausgewertet wird und das Zielfeld keine NULL-Werte zulässt, schlägt die Zusammenführung fehl, und ein Fehlerobjekt vom Typ msmErrorBadNullSubstitution wird erstellt und der Fehlerliste hinzugefügt. Ausführliche Informationen finden Sie in den Fehlertypen, die in get_Type-Funktion beschrieben werden.
  • Wenn das Wertfeld zur NULL-GUID ausgewertet wird ({00000000-0000-0000-0000-000000000000}), wird die NULL-GUID durch den Namen des Features ersetzt, bevor die Zeile mit dem Modul zusammengeführt wird. Weitere Informationen finden Sie unter Verweise auf Features in Mergemodulen.
  • Die Vorlage im Wertfeld wird ausgewertet, bevor sie in das Zielfeld eingefügt wird. Das Ersetzen in eine Zeile erfolgt vor dem Ersetzen von Features.
  • Wenn die Wertspalte zu einer Zeichenfolge mit nur ganzzahligen Zeichen (mit optionalem + oder -) ausgewertet wird, wird die Zeichenfolge in eine ganze Zahl konvertiert, bevor sie in ein Zielfeld des Ganzzahlformattyps ersetzt wird. Wenn die Vorlage zu einer Zeichenfolge ausgewertet wird, die nicht nur aus ganzzahligen Zeichen (und optionalem + oder -) besteht, kann das Ergebnis nicht in ein ganzzahliges Zielfeld ersetzt werden. Wenn Sie versuchen, eine Nichtganzzahl in ein Ganzzahlfeld einzufügen, schlägt die Zusammenführung fehl, und der Fehlerliste wird ein msmErrorBadSubstitutionType-Fehlerobjekt hinzugefügt.
  • Wenn die in den Tabellen- und Spaltenfeldern angegebene Zielspalte den Typ „Textformat“ aufweist und die Auswertung des Wertfelds zum Typ „Ganzzahlformat“ führt, wird eine Dezimaldarstellung der Zahl in das Zieltextfeld eingefügt.
  • Wenn das Zielfeld den Typ „Ganzzahlformat“ aufweist und das Wertfeld aus einer nicht durch Trennzeichen getrennten Liste von Elementen im Bitfeldformat besteht, wird der Wert im Zielfeld mithilfe des bitweisen AND-Operators mit dem Umgekehrten des bitweisen OR-Operators aller Maskenwerte aus den Elementen kombiniert und dann mithilfe des bitweisen OR-Operators mit jedem ganzzahligen oder bitfeldbasierten Element kombiniert, wenn er durch die entsprechenden Maskenwerte maskiert wird. Dadurch werden die Bits aus den Eigenschaften explizit auf die angegebenen Werte festgelegt, alle anderen Bits in der Zelle bleiben jedoch unverändert.
  • Wenn das Wertfeld als Schlüsselformattyp ausgewertet wird und ein Schlüssel in einer Tabelle ist, die mehrere Primärschlüssel verwendet, kann auf den Elementnamen ein Semikolon und ein ganzzahliger Wert folgen, der den 1-basierten Index in den Werten angibt, die zusammen einen Primärschlüssel bilden. Wenn keine ganze Zahl angegeben wird, wird der Wert 1 verwendet. Die Control-Tabelle enthält beispielsweise die beiden Primärschlüsselspalten „Dialog_“ und „Control“. Der Wert eines Elements „Item1“, das ein Schlüssel in der Control-Tabelle ist, hat die Form „DialogName;ControlName“, wobei DialogName der Wert in der „Dialog_“-Tabelle und ControlName der Wert in der Spalte „Control“ ist. Damit nur ControlName ersetzt wird, muss die Ersetzungszeichenfolge [=Item1;2] verwendet werden.

Bemerkungen

Die ModuleSubstition-Tabelle wird von konfigurierbaren Mergemodulen verwendet. Zum Erstellen eines konfigurierbaren Mergemoduls wird Mergemod.dll 2.0 oder höher benötigt.

Zur Gewährleistung der Kompatibilität mit Mergemod.dll-Versionen, die älter sind als Version 2.0, müssen die ModuleConfiguration-Tabelle und die ModuleSubstitution-Tabellen der ModuleIgnoreTable-Tabelle jedes Moduls hinzugefügt werden.