ModuleSubstitution (tabla)

La tabla ModuleSubstitution especifica los campos configurables de una base de datos de módulos y proporciona una plantilla para la configuración de cada campo. El usuario o la herramienta de combinación pueden consultar esta tabla para determinar qué operaciones de configuración se van a realizar. Esta tabla no se combina en la base de datos de destino.

Las tablas siguientes no pueden contener campos configurables y no deben aparecer en esta tabla:

ModuleSubstitution (tabla)

ModuleConfiguration (tabla)

ModuleExclusion (tabla)

ModuleSignature (tabla)

La tabla ModuleSubstitution tiene las siguientes columnas.

Columna Tipo Clave Nullable
Tabla Identificador Y No
Fila Texto Y No
Columna Identificador Y No
Value Texto No Y

 

Columnas

Table

Esta columna especifica el nombre de la tabla que se va a modificar en la base de datos del módulo.

Row

Este campo especifica las claves principales de la fila de destino de la tabla cuyo nombre aparece en la columna Table. Las distintas claves principales se separan con punto y coma. Las filas de destino se seleccionan para su modificación antes de que se realicen cambios en la tabla de destino. Si un registro de la tabla ModuleSubstitution cambia el campo de clave principal de una fila de destino, se aplican otros registros de la tabla ModuleSubstitution basándose en los datos de clave principal originales, no en el resultado de las sustituciones de clave principal. El orden de la sustitución de las filas no está definido.

Los valores de esta columna siempre están en formato especial CMSM. Se puede agregar un signo literal de punto y coma (';') o igual ('=') usando una barra diagonal inversa como prefijo del carácter. '\'. Un valor null para una clave se indica mediante un valor null, un punto y coma inicial, dos puntos y comas consecutivos o un punto y coma final, en función de si el valor null es un valor de columna de clave único, inicial, intermedio o final.

Column

Este campo especifica la columna de destino de la fila cuyo nombre se muestra en la columna Row. Si varias filas de la tabla ModuleSubstitution cambian columnas diferentes de la misma fila de destino, todas las sustituciones de columna se realizan antes de insertar la fila modificada en la base de datos. El orden de la sustitución de las columnas no está definido.

Value

Esta columna contiene una cadena que proporciona una plantilla de formato para los datos que se sustituyen en el campo de destino especificado por Table, Row y Column. Cuando se encuentra una cadena de sustitución del formulario [=ItemA], la cadena, incluidos los caracteres de corchete, se reemplaza por el valor de "ItemA" configurable. El elemento configurable "ItemA" se especifica en la columna Name de la tabla ModuleConfiguration, y la herramienta de combinación proporciona su valor. Si la herramienta de combinación rechaza proporcionar un valor para cualquier elemento de una cadena de sustitución, se sustituye el valor predeterminado especificado en la columna DefaultValue de la tabla ModuleConfiguration. Si una cadena hace referencia a un elemento que no está en la tabla ModuleConfiguration, se produce un error en la combinación.

  • Esta columna usa el formato especial CMSM. Se puede agregar a la tabla un signo literal de punto y coma (';') o igual ('=') usando una barra diagonal inversa como prefijo del carácter. '\'.
  • El campo Value puede contener varias cadenas de sustitución. Por ejemplo, la configuración de los elementos "Food1" y "Food2" en la cadena: "[=Food1] es bueno, pero [=Food2] es mejor porque [=Food2] es más nutritivo".
  • Las cadenas de sustitución no deben estar anidadas. La plantilla "[=AB[=CDE]]" no es válida.
  • Si el campo Value se evalúa como null, y el campo de destino no acepta valores null, se produce un error en la combinación y se crea un objeto de error de tipo msmErrorBadNullSubstitution y se agrega a la lista de errores. Para más información, consulte los tipos de error descritos en get_Type (función).
  • Si el campo Value se evalúa como el GUID null: {00000000-0000-0000-0000-000000000000}, el GUID null se reemplaza por el nombre de la característica antes de que la fila se combine en el módulo. Para obtener más información, consulte Referencia a características en módulos de combinación.
  • La plantilla del campo Value se evalúa antes de insertarse en el campo de destino. La sustitución en una fila se realiza antes de reemplazar las características.
  • Si la columna Value se evalúa como una cadena de solo caracteres enteros (con un + o - opcional), la cadena se convierte en un entero antes de sustituirse en un campo de destino del Tipo de formato entero. Si la plantilla se evalúa como una cadena que no consta solo de caracteres enteros (y un + o - opcional), el resultado no se puede sustituir en un campo de destino de enteros. Si se intenta insertar un valor no entero en un campo de enteros, se produce un error en la combinación y se agrega un objeto de error msmErrorBadSubstitutionType a la lista de errores.
  • Si la columna de destino especificada en los campos Table y Column es un tipo de formato de texto y la evaluación del campo Value da como resultado un tipo de formato entero, se inserta una representación decimal del número en el campo de texto de destino.
  • Si el campo de destino es un tipo de formato entero y el campo Value consta de una lista no delimitada de elementos en Formato Bitfield, el valor del campo de destino se combina mediante el operador AND bit a bit con el inverso del operador OR bit a bit de todos los valores de máscara de los elementos, después se combina mediante el operador OR bit a bit con cada uno de los elementos enteros o de campo de bits cuando se enmascaran con sus valores de máscara correspondientes. Básicamente, esto establece explícitamente los bits de las propiedades en los valores proporcionados, pero deja solos todos los demás bits de la celda.
  • Si el campo Value se evalúa como un tipo de formato de clave, y es una clave en una tabla que usa varias claves principales, el nombre del elemento puede ir seguido de un punto y coma y un valor entero que indica el índice basado en 1 en el conjunto de valores que juntos forman una clave principal. Si no se especifica ningún entero, se usa el valor 1. Por ejemplo, la tabla Control tiene dos columnas de clave principal, Dialog_ y Control. El valor de un elemento "Item1" que es una clave en la tabla Control tendrá el formato "DialogName;ControlName", donde DialogName es el valor de la tabla Dialog_ y ControlName es el valor de la columna Control. Para sustituir solo ControlName, se debe usar la cadena de sustitución [=Item1;2].

Comentarios

Los módulos de combinación configurables usan la tabla ModuleSubstition. Mergemod.dll versión 2.0 o posterior es necesario para crear un módulo de combinación configurable.

Para garantizar la compatibilidad con versiones de Mergemod.dll anteriores a la 2.0, la tabla ModuleConfiguration y las tablas ModuleSubstitution deben incluirse en la tabla ModuleIgnoreTable de cada módulo.