Les enregistrements en double sont créés dans INTran pendant la publication du bon de commande

Cet article fournit une résolution du problème lié à la création de transactions d’inventaire en double lors de la publication du bon de commande dans Microsoft Dynamics SL.

S’applique à : Microsoft Dynamics SL
Numéro de la base de connaissances d’origine : 2953073

Cause

Ce problème peut se produire lorsque vous appuyez sur le bouton Annuler pendant le processus de publication par lot du bon de commande (04.400.00) pour un lot qui a des reçus qui utilisent un achat pour de bon pour une commande client, ou des marchandises hors inventaire si un ID de projet est inclus sur la ligne de détails.

Résolution

Déterminez l’enregistrement en double dans la table INTran, puis supprimez l’enregistrement en double. Pour cela, procédez comme suit :

  1. Dans Microsoft SQL Server Management Studio, accédez à la base de données d’application appropriée. Ensuite, exécutez l’instruction suivante pour déterminer s’il existe des enregistrements en double dans la table INTran.

    SELECT InvtID, TranAmt, LineRef, RecordID, * FROM INTran WHERE BatNbr = '<XXXXXX>'
    

    Remarque

    Dans l’instruction , remplacez l’espace <réservé XXXXXX> par le numéro de lot.

  2. Passez en revue les résultats pour déterminer s’il existe des enregistrements en double. S’il existe un enregistrement en double, exécutez l’instruction suivante pour le supprimer.

    Remarque

    Le recordid à supprimer est le PLUS élevé des enregistrements en double.

    Exécutez d’abord la commande suivante :

    Begin Transaction
    

    Exécutez la commande suivante :

    DELETE FROM INTran WHERE BatNbr = '<XXXXXX>' and RecordID = <YYYYYY>
    

    Remarque

    Dans l’instruction , remplacez l’espace <réservé XXXXXX> par le numéro de lot. Remplacez l’espace <réservé AAAA> par la valeur RecordID de l’enregistrement à supprimer.

    La suppression doit retourner une ligne.

    Exécutez la dernière commande suivante :

    Commit transaction
    

    S’il ne supprime pas une seule ligne, exécutez la commande suivante :

    Rollback transaction
    

    Si vous trouvez plusieurs doublons, vous devez identifier le recordid (unique) pour les autres doublons et les supprimer à l’aide de la même procédure.