La mise en lots basée sur les entités MDS peut échouer lorsqu’une valeur d’étiquette Batch en double est utilisée dans SQL Server 2012

Cet article vous aide à résoudre le problème où la mise en lots basée sur des entités Master Data Services (MDS) peut échouer lorsqu’une valeur de balise Batch en double est utilisée dans SQL Server 2012.

Version d’origine du produit : SQL Server 2012
Numéro de la base de connaissances d’origine : 2712547

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous utilisez le processus de préproduction basé sur les entités MICROSOFT SQL Server 2012 MDS pour importer des données dans MDS.

  • Vous remplissez différentes tables intermédiaires MDS (stg.name) avec les données intermédiaires à l’aide de la BatchTag colonne pour identifier le lot.

  • Vous utilisez la même BatchTag valeur pour remplir une table de mise en lots distincte qui appartient à une entité différente dans un modèle MDS différent.

  • Vous exécutez les procédures stockées nécessaires pour démarrer le traitement par lots. Vous pouvez également démarrer le lot intermédiaire à partir de la zone fonctionnelle Gestion de l’intégration sur le site web MDS.

Lorsque vous démarrez le processus intermédiaire, vous utilisez l’une des trois procédures stockées :

  • stg.udp_name_Leaf

  • stg.udp_name_Consolidated

  • stg.udp_name_Relationship

Remarque

L’espace <réservé de nom> est le nom de la table de mise en lots qui a été spécifiée lors de la création de l’entité.

Les exemples suivants montrent comment démarrer le processus intermédiaire à l’aide de la procédure stockée intermédiaire :

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

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

Dans ce scénario, vous recevez le message d’erreur suivant lorsque vous démarrez le processus intermédiaire :

MDSERR310029
La status du lot spécifié n’est pas valide.

En outre, lorsque vous case activée le lot status, vous remarquez que le lot qui a la BatchTag valeur reste indéfiniment bloqué dans status En cours d’exécution.

Remarque

Vous pouvez case activée le status de lot à partir du site web MDS en cliquant sur Gestion de l’intégration, puis en sélectionnant le modèle pour afficher le status ou en interrogeant la [mdm].[tblStgBatch] table.

Cause

Ce problème se produit parce que le processus intermédiaire basé sur les entités MDS vérifie l’status BatchTag quel que soit le modèle MDS.

Résolution

Si votre lot est bloqué dans l’status en cours d’exécution, arrêtez le processus de traitement par lots, puis réessayez de traiter le lot. Pour arrêter le processus de traitement par lots, exécutez l’instruction SQL : Exec [mdm].[udpStagingBatchQueueActivate] pour résoudre ce problème, mettez à jour la valeur BatchTag dans la table intermédiaire pour les enregistrements avec un nouveau nom. En outre, vérifiez que le importstatus_ID champ est défini sur 0 pour les enregistrements.

Plus d’informations

Pour plus d’informations sur le démarrage du processus intermédiaire, accédez au site web suivant :