Partilhar via


Tabela ModuleSubstitution

A tabela ModuleSubstitution especifica os campos configuráveis de um banco de dados de módulo e fornece um modelo para a configuração de cada campo. O usuário ou a ferramenta de mesclagem pode consultar esta tabela para determinar quais operações de configuração devem ocorrer. Esta tabela não é mesclada no banco de dados de destino.

As tabelas a seguir não podem conter campos configuráveis e não devem ser listadas nesta tabela:

Tabela ModuleSubstitution

tabela ModuleConfiguration

tabela ModuleExclusion

tabela ModuleSignature

A tabela ModuleSubstitution tem as seguintes colunas.

Coluna Tipo Chave Nulo
Tabela Identificador Y N
Linha de texto Y N
Coluna Identificador Y N
Valor de texto N Y

 

Colunas

Tabela

Esta coluna especifica o nome da tabela que está sendo modificada no banco de dados do módulo.

Linha

Este campo especifica as chaves primárias da linha de destino na tabela nomeada na coluna Tabela. Várias chaves primárias são separadas por ponto-e-vírgula. As linhas de destino são selecionadas para modificação antes que quaisquer alterações sejam feitas na tabela de destino. Se um registro na tabela ModuleSubstitution alterar o campo de chave primária de uma linha de destino, outros registros na tabela ModuleSubstitution serão aplicados com base nos dados de chave primária originais, não no resultado de substituições de chave primária. A ordem de substituição de linha é indefinida.

Os valores nesta coluna estão sempre em formato especial CMSM. Um ponto-e-vírgula (';') literal ou sinal de igual ('=') pode ser adicionado prefixando o caractere com uma barra invertida. '\'. Um valor nulo para uma chave é significado por um ponto e vírgula nulo, um ponto-e-vírgula à esquerda, dois ponto-e-vírgula consecutivos ou um ponto-e-vírgula à direita, dependendo se o valor nulo é um valor de coluna de chave único, primeiro, médio ou final.

Coluna

Este campo especifica a coluna de destino na linha nomeada na coluna Linha. Se várias linhas na tabela ModuleSubstitution alterarem colunas diferentes da mesma linha de destino, todas as substituições de coluna serão executadas antes que a linha modificada seja inserida no banco de dados. A ordem de substituição da coluna é indefinida.

Valor

Esta coluna contém uma cadeia de caracteres que fornece um modelo de formatação para os dados que estão sendo substituídos no campo de destino especificado por Tabela, Linha e Coluna. Quando uma cadeia de caracteres de substituição do formulário [=ItemA] é encontrada, a cadeia de caracteres, incluindo os caracteres entre colchetes, é substituída pelo valor para o "ItemA" configurável. O item configurável "ItemA" é especificado na coluna Nome da tabela ModuleConfiguration e seu valor é fornecido pela ferramenta de mesclagem. Se a ferramenta de mesclagem se recusar a fornecer um valor para qualquer item em uma cadeia de caracteres de substituição, o valor padrão especificado na coluna DefaultValue da tabela ModuleConfiguration será substituído. Se uma cadeia de caracteres fizer referência a um item que não esteja na tabela ModuleConfiguration, a mesclagem falhará.

  • Esta coluna usa formato especial CMSM. Um ponto-e-vírgula (';') literal ou sinal de igual ('=') pode ser adicionado à tabela prefixando o caractere com uma barra invertida. '\'.
  • O campo Valor pode conter várias cadeias de substituição. Por exemplo, a configuração dos itens "Food1" e "Food2" na string: "[=Food1] é bom, mas [=Food2] é melhor porque [=Food2] é mais nutritivo."
  • As cadeias de caracteres de substituição não devem ser aninhadas. O modelo "[=AB[=CDE]]" é inválido.
  • Se o campo Valor for avaliado como nulo e o campo de destino não for anulável, a mesclagem falhará e um objeto de erro do tipo msmErrorBadNullSubstitution será criado e adicionado à lista de erros. Para obter detalhes, consulte os tipos de erro descritos em get_Type Função.
  • Se o campo Valor for avaliado como o GUID nulo: {00000000-0000-0000-0000-000000000000}, o GUID nulo será substituído pelo nome do recurso antes que a linha seja mesclada no módulo. Para obter detalhes, consulte recursos de referência em módulos de mesclagem.
  • O modelo no campo Valor é avaliado antes de ser inserido no campo de destino. A substituição em uma linha é feita antes de substituir quaisquer recursos.
  • Se a coluna Valor for avaliada como uma cadeia de caracteres inteiros apenas (com um + ou -) opcional, a cadeia de caracteres será convertida em um inteiro antes de ser substituída em um campo de destino do Integer Format Type. Se o modelo for avaliado como uma cadeia de caracteres que não consiste apenas em caracteres inteiros (e um opcional + ou -), o resultado não poderá ser substituído em um campo de destino inteiro. A tentativa de inserir um não inteiro em um campo inteiro faz com que a mesclagem falhe e adiciona um objeto de erro msmErrorBadSubstitutionType à lista de erros.
  • Se a coluna de destino especificada nos campos Tabela e Coluna for um Tipo de Formato de Texto e a avaliação do campo Valor resultar em um Tipo de Formato Inteiro , uma representação decimal do número será inserida no campo de texto de destino.
  • Se o campo de destino for um Integer Format Type, e o campo Value consistir em uma lista não delimitada de itens em Bitfield Format, o valor no campo de destino será combinado usando o operador bit a bit E com o inverso do bit a bit OU de todos os valores de máscara dos itens, em seguida, combinado usando o operador bit a bit OU com cada um dos itens inteiros ou de campo de bits quando mascarados por seus valores de máscara correspondentes. Essencialmente, isso define explicitamente os bits das propriedades para os valores fornecidos, mas deixa todos os outros bits na célula sozinhos.
  • Se o campo Valor for avaliado como um Tipo de Formato de Chave e for uma chave em uma tabela que usa várias chaves primárias, o nome do item poderá ser seguido por um ponto-e-vírgula e um valor inteiro que indique o índice baseado em 1 no conjunto de valores que, juntos, formam uma chave primária. Se nenhum inteiro for especificado, o valor 1 será usado. Por exemplo, a tabela Control tem duas colunas de chave primária, Dialog_ e Control. O valor de um item "Item1" que é uma chave na tabela Control será do formato "DialogName; ControlName", onde DialogName é o valor na tabela Dialog_ e ControlName é o valor na coluna Control. Para substituir apenas ControlName, a cadeia de caracteres de substituição [=Item1; 2] deve ser usado.

Comentários

A tabela ModuleSubstition é usada por Módulos de mesclagem configuráveis. Mergemod.dll versão 2.0 ou posterior é necessária para criar um módulo de mesclagem configurável.

Para garantir a compatibilidade com versões do Mergemod.dll anteriores à versão 2.0, as tabelas ModuleConfiguration e ModuleSubstitution devem ser incluídas no da tabela ModuleIgnoreTable de cada módulo.