O preparo baseado em entidade do MDS pode falhar quando um valor de Marca de Lote duplicado é usado no SQL Server 2012

Este artigo ajuda você a resolve o problema em que o preparo baseado em entidade de Master Data Services (MDS) pode falhar quando um valor de Marca de Lote duplicado é usado no SQL Server 2012.

Versão original do produto: SQL Server 2012
Número de KB original: 2712547

Sintomas

Considere o seguinte cenário:

  • Você usa o processo de preparo baseado em entidade do Microsoft SQL Server 2012 MDS para importar dados para o MDS.

  • Você preenche várias tabelas de preparo de MDS (stg.name) com os dados de preparo usando a BatchTag coluna para identificar o lote.

  • Você usa o mesmo BatchTag valor para preencher uma tabela de preparo separada que pertence a uma entidade diferente em um modelo MDS diferente.

  • Execute os procedimentos armazenados necessários para iniciar o processamento em lote. Ou inicie o lote de preparo da área funcional do Integration Management no site do MDS.

Ao iniciar o processo de preparo, você usa um dos três procedimentos armazenados:

  • stg.udp_name_Leaf

  • stg.udp_name_Consolidated

  • stg.udp_name_Relationship

Observação

O <espaço reservado de nome> é o nome da tabela de preparo especificada quando a entidade foi criada.

Os exemplos a seguir mostram como iniciar o processo de preparo usando o procedimento armazenado de preparo:

  • exec mds.stg.udp_entityname1 'versionAdescription',0,'batchtag'

  • exec mds.stg.udp_entityname2 'versionBdescription',0,'batchtag'

Neste cenário, você recebe a seguinte mensagem de erro ao iniciar o processo de preparo:

MDSERR310029
O status do lote especificado não é válido.

Além disso, quando você marcar o lote status, você observa que o lote que tem o BatchTag valor permanece indefinidamente preso em status Em execução.

Observação

Você pode marcar o lote status no site do MDS clicando em Gerenciamento de Integração e selecionando o modelo para exibir o status ou consultando a [mdm].[tblStgBatch] tabela.

Motivo

Esse problema ocorre porque o processo de preparo baseado em entidade do MDS verifica o BatchTag status independentemente do modelo MDS.

Resolução

Se o lote estiver preso em Execução status, interrompa o processo do lote e tente processar o lote novamente. Para interromper o processo de lote, execute a instrução SQL: Exec [mdm].[udpStagingBatchQueueActivate] Para resolve esse problema, atualize o valor BatchTag na tabela de preparo dos registros para um novo nome. Além disso, verifique se o importstatus_ID campo está definido como 0 para os registros.

Mais informações

Para obter mais informações sobre como iniciar o processo de preparo, acesse o seguinte site: