Erreur « Votre session de publication au niveau de la transaction précédente n’a pas terminé le traitement » lors de l’ouverture de la fenêtre Sales Transaction Entry dans Traitement des commandes client

Cet article fournit une résolution pour l’erreur de traitement de votre session de publication au niveau de la transaction précédente qui peut se produire lorsque vous essayez d’ouvrir la fenêtre Sales Transaction Entry dans Traitement des commandes dans Microsoft Dynamics GP ou dans Microsoft Business Solutions - Great Plains.

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

Symptômes

Le message d’erreur suivant peut s’afficher lorsque vous essayez d’ouvrir la fenêtre Sales Transaction Entry dans Sales Order Processing dans Microsoft Dynamics GP ou dans Microsoft Business Solutions - Great Plains :

Votre session de publication au niveau de la transaction précédente n’a pas terminé le traitement. Prévoyez du temps pour qu’elle se termine. Si vous pensez qu’il a échoué, déconnectez-vous de Great Plains et reconnectez-vous pour récupérer les transactions.

Remarque

Pour ouvrir la fenêtre Sales Transaction Entry, sélectionnez Transactions, pointez sur Ventes, puis sélectionnez Sales Transaction Entry.

Cause

Ce problème peut se produire lorsque les enregistrements sont verrouillés dans la table SY00500, dans la table SY00800 ou dans la table SOP10100. Les enregistrements ont un numéro de lot vide, ou l’ID d’utilisateur est répertorié comme numéro de lot.

Résolution

Pour résoudre ce problème, procédez comme suit :

  1. Faites en sorte que tous les utilisateurs quittent Microsoft Dynamics GP.

  2. Effectuez une sauvegarde de la base de données de l’entreprise.

  3. Dans l’Analyseur de requêtes SQL, exécutez l’instruction delete suivante sur la table SY00800 sur la base de données DYNAMICS.

    DELETE SY00800
    
  4. Recherchez les enregistrements de problème dans la table SY00500 en exécutant les deux instructions suivantes sur la base de données de l’entreprise.

    Remarque

    Dans les instructions suivantes, xxx représente l’ID utilisateur qui contient l’erreur.

    SELECT * from SY00500 where BACHNUMB = ''
    SELECT * from SY00500 where BACHNUMB = 'xxx'
    
  5. Si vous avez des enregistrements retournés avec un champ BACHNUMB vide, utilisez l’instruction delete suivante.

    DELETE SY00500 where BACHNUMB = ''
    
  6. Si vous avez des enregistrements retournés avec un ID d’utilisateur dans le champ BACHNUMB, utilisez l’instruction delete suivante.

    Remarque

    Dans l’instruction suivante, xxx représente l’ID utilisateur qui contient l’erreur.

    DELETE SY00500 where BACHNUMB ='xxx'
    
  7. Vérifiez que vous pouvez sélectionner des documents existants dans la fenêtre Entrée de transaction de vente. Pour ouvrir cette fenêtre, sélectionnez Transactions, pointez sur Ventes, puis sélectionnez Sales Transaction Entry. Si vous souhaitez supprimer un document existant, sélectionnez Supprimer. Si vous souhaitez annuler un document existant, sélectionnez Annuler.

  8. Si vous continuez à recevoir le message d’erreur, ou si vous ne pouvez pas sélectionner les documents existants dans la fenêtre Sales Transaction Entry, exécutez les scripts suivants dans l’Analyseur de requête SQL sur la base de données de l’entreprise pour localiser les enregistrements de problème dans la table SOP10100.

    Remarque

    Dans les scripts suivants, xxx représente l’ID utilisateur qui contient l’erreur.

    SELECT BACHNUMB,* from SOP10100 where BACHNUMB = '' SELECT BACHNUMB,* from SOP10100 where BACHNUMB = '<xxx>'
    SELECT * FROM SOP10200 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = 'xxx')
    SELECT * FROM SOP10200 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = ' ')
    SELECT * FROM SOP10102 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = 'xxx')
    SELECT * FROM SOP10102 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = ' ')
    
  9. Notez tous les enregistrements retournés, puis exécutez l’instruction suivante dans l’Analyseur de requêtes SQL pour supprimer les enregistrements problématiques de la table SOP10100.

    Remarque

    • Vous devez vérifier que les transactions sont publiées dans le module Inventaire et dans les modules Gestion des créances. Si les transactions n’ont pas été effectuées dans le module Inventaire et dans le module Gestion des créances, vous devez entrer à nouveau les transactions dans la fenêtre Sales Transaction Entry après avoir exécuté les instructions de suppression.
    • Dans les instructions suivantes, xxx représente l’ID utilisateur qui contient l’erreur.
    DELETE SOP10200 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = 'xxx')
    DELETE SOP10200 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = ' ')
    DELETE SOP10102 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = 'xxx')
    DELETE SOP10102 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = ' ')
    DELETE SOP10100 where BACHNUMB = '' DELETE SOP10100 where BACHNUMB = 'xxx'
    
  10. Dans Microsoft Dynamics GP, pointez sur Maintenance dans le menu Microsoft Dynamics GP, puis sélectionnez Vérifier les liens.

  11. Dans la liste Séries, sélectionnez Ventes, puis exécutez la procédure de liens case activée dans le groupe de tables Sales Work.

  12. Si les transactions n’ont pas été effectuées dans le module Gestion des créances et dans le module Inventaire, entrez à nouveau les transactions dans la fenêtre Sales Transaction Entry.