Partager via


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 Entrée de transaction commerciale dans le traitement des commandes

Cet article propose une solution à l'erreur Votre session précédente de publication au niveau des transactions n'a pas terminé le traitement qui peut survenir lorsque vous tentez d’ouvrir la fenêtre d'Entrée de transaction de vente dans le module de traitement des commandes de vente de Microsoft Dynamics GP ou de Microsoft Business Solutions - Great Plains.

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

Symptômes

Vous pouvez recevoir le message d’erreur suivant lorsque vous essayez d’ouvrir la fenêtre Entrée de transaction commerciale dans le traitement des commandes commerciales 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. Veuillez laisser le temps pour qu’il se termine. Si vous pensez qu’elle a échoué, déconnectez-vous de Great Plains et reconnectez-vous pour récupérer des transactions.

Note

Pour ouvrir la fenêtre Entrée de transaction commerciale, sélectionnez Transactions, pointez sur Ventes, puis sélectionnez Entrée de transaction de vente.

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 utilisateur est répertorié comme numéro de lot.

Résolution

Pour résoudre ce problème, effectuez les opérations suivantes :

  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 SQL Query Analyzer, 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 d’entreprise.

    Note

    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.

    Note

    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 commerciale. Pour ouvrir cette fenêtre, sélectionnez Transactions, pointez sur Ventes, puis sélectionnez Entrée de transaction de vente. Si vous souhaitez supprimer un document existant, sélectionnez Supprimer. Si vous souhaitez annuler un document existant, sélectionnez Void.

  8. Si vous continuez à recevoir le message d’erreur ou si vous ne pouvez pas sélectionner les documents existants dans la fenêtre Entrée de transaction commerciale, exécutez les scripts suivants dans SQL Query Analyzer sur la base de données d’entreprise pour localiser les enregistrements de problème dans la table SOP10100.

    Note

    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 les enregistrements retournés, puis exécutez l’instruction suivante dans SQL Query Analyzer pour supprimer les enregistrements problématiques de la table SOP10100.

    Note

    • Vous devez vérifier que les transactions sont publiées dans le module Inventaire et dans le module de gestion des créances. Si les transactions n'ont pas été enregistrées dans le module Inventaire et dans le module de Gestion des Comptes Clients, vous devez réentérer les transactions dans la fenêtre Entrée de transaction de vente après avoir exécuté les instructions DELETE.
    • 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érie , sélectionnez Ventes, puis exécutez la procédure de vérification des liens dans le groupe de tables Sales Work .

  12. Si les transactions n’ont pas été effectuées dans le module Gestion des comptes clients et dans le module Inventaire, réentez les transactions dans la fenêtre Entrée des transactions commerciales.