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. A ferramenta de mesclagem ou usuário pode consultar essa 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
A tabela ModuleSubstitution tem as colunas a seguir.
Coluna | Tipo | Chave | Nullable |
---|---|---|---|
Mesa | identificador de | Y | N |
Remar | de Texto | Y | N |
Coluna | identificador de | 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
-
Esse 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 as 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 originais da chave primária, 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 no 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 é assinado por um ponto e vírgula nulo, um ponto-e-vírgula à esquerda, dois ponto-e-vírgula consecutivo ou um ponto-e-vírgula à direita, dependendo se o valor nulo é um valor de coluna de chave única, primeira, intermediária ou final.
-
Coluna
-
Esse 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 de 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 de colchete, é substituída pelo valor do "ItemA" configurável. O item configurável "ItemA" é especificado na coluna Name da tabela ModuleConfiguration e seu valor é fornecido pela ferramenta de mesclagem. Se a ferramenta de mesclagem recusar 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 está 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 caracteres de substituição. Por exemplo, a configuração dos itens "Food1" e "Food2" na cadeia de caracteres: "[=Food1] é boa, 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 no get_Type Function.
- Se o campo Valor for avaliado como 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 os recursos.
- Se a coluna Valor for avaliada como uma cadeia de caracteres somente inteiros (com um opcional + ou -), a cadeia de caracteres será convertida em um inteiro antes de ser substituída em um campo de destino do tipo de formato inteiro . 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 tipo de formato inteiro, e o campo Valor consistir em uma lista não delimitada de itens em de Formato de Campo bit, o valor no campo de destino será combinado usando o operador de E bit a bit com o inverso do OR bit a bit de todos os valores de máscara dos itens, em seguida, combinado usando o operador or bit a bit com cada um dos itens inteiros ou bitfield 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 indica o índice baseado em 1 no conjunto de valores que juntos fazem uma chave primária. Se nenhum inteiro for especificado, o valor 1 será usado. Por exemplo, a tabela controle tem duas colunas de chave primária, Dialog_ e Control. O valor de um item "Item1" que é uma chave na tabela Controle será do formulário "DialogName; ControlName", em que 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.
Observações
A tabela ModuleSubstition é usada por módulos de mesclagem configuráveis. Mergemod.dll versão 2.0 ou posterior é necessário para criar um módulo de mesclagem configurável.
Para garantir a compatibilidade com versões de Mergemod.dll anteriores à versão 2.0, as tabelas ModuleConfiguration e ModuleSubstitution devem ser incluídas na tabela ModuleIgnoreTable de cada módulo.