Procédé de récupération des lignes de pièce

   Dans certain cas rares, il arrive que des pièces achat ou vente se retrouvent sans aucune ligne dans la base de données. Ce cas est survenu dans plusieurs configurations Oxygène, suite à un problème de mémoire insuffisante au moment de l'enregistrement d'une pièce. Pour ne pas pénaliser les utilisateurs, nous avons intégré dans la version Oxygène 10.08 un procédé de récupération des lignes perdues dans les pièces. Ce procédé permet de retrouver les données des lignes qui ont disparu.

Principe de la fonction de récupération en cas de perte de lignes

 

Depuis la version 10.08 Oxygène, il existe un procédé automatique de sauvegarde / stockage des données des pièces achat et vente de la gestion commerciale, qui sauve les données de toutes les pièces appelées en modification. Un traitement de récupération des données a également été ajouté, il se déclenche de plusieurs façons, voir dans les explications ci-dessous. Il y a aussi un traitement de vidage de ces données sauvées, qui se lance tous les jours, afin de ne pas conserver indéfiniment les données sauvées.

 

Principe général : avant modification d'une pièce, sauvegarde des données de la pièce. Si perte des lignes, récupération de ces données sauvegardées. Tous les matins au 1er lancement du menu de la gestion commerciale, détection des pièces sans ligne parmi celles sauvées auparavant, correction des pièces, et vidage des données sauvées des jours précédents.

Depuis la version 11.01 oxygène, cette fonction de sauvegarde et récupération des lignes de pièces a été étendue au cas de la création d'une pièce. Création par une saisie manuelle ou par la transformation de pièces, achat et vente.

 

Ce procédé de sauvegarde / récupération des lignes des pièces achat et vente n'a pas pour objectif de remplacer les sauvegardes complètes de vos données Oxygène que vous devez effectuer très régulièrement. Seules les cas rares de pertes de lignes dans les pièces sont gérés par ce processus.

Aucun autre cas de perte de données n'est pris en charge : ce procédé ne permettra pas de retrouver des données perdues d'une autre façon, par exemple lors d'une suppression de pièces demandée à tort par des utilisateurs, ou si une panne de matériel efface des données.

 

Modification d'une pièce

 

Quel que soit le statut de la pièce (pièce validée ou pas, transformée ou pas), et son type (achat ou vente sauf contrats d’abonnement), à chaque fois qu’un utilisateur commence une modification, le traitement va sauver automatiquement toutes les données des lignes et de l’en tête de la pièce. Ce traitement sauve les données de l’en tête et des lignes telles qu’elles existent dans les tables disques, avant que débutent les modifications effectuées par l'utilisateur. Le traitement enregistre aussi la date du jour de sauvegarde des données de la pièce. Une fois ces données sauvées, suite du traitement normal de modification de la pièce.

Si on demande la modification d’une pièce qui n’a aucune ligne, le traitement ne fait pas la sauvegarde des données de cette pièce, un message alerte l’utilisateur et le traitement de récupération est lancé automatiquement. Et si la récupération ne s'effectue pas un messagfe vous avertit et vous devez refaire la saisie des lignes de la pièce. Ce cas se produit rarement, par exemple si la pièce incorrecte a été créée avant la mise à jour en version Oxygène 10.08 ou plus récente.

Création d'une pièce

 

Quel que soit le type (achat ou vente sauf contrats d’abonnement), à chaque fois qu’un utilisateur termine une création de pièce, le traitement va sauver automatiquement toutes les données des lignes et de l’en tête de la pièce qui ont été saisies. Ce traitement sauve les données de l’en tête et des lignes telles qu’elles existent dans les tables mémoire, avant que débutent les enregistrements sur les tables disques. Le traitement enregistre aussi la date du jour de sauvegarde des données de la pièce. Une fois ces données sauvées, suite du traitement normal de création de la pièce.

Une pièce a perdu ses lignes

 

En cas de perte de toutes les lignes d’une pièce, soit l’utilisateur s’en aperçoit au cours de la journée, soit il ne le voit pas.

 

Si rappel de la pièce sans ligne pendant la journée durant laquelle est survenue la perte des lignes

- Mode modification : si l’utilisateur appelle la pièce en mode modification, il y aura le message d’alerte suivant :

 

 

 

En cliquant sur "OK"  l'outil de récupération se lance automatiquement pour la pièce en cours, sans affichage de compte-rendu, sans indication si d'autres pièces sont altérées. La récupération ne traite alors que la pièce en cours, il n'y a pas de message de fin ni d'affichage de la pièce corrigée. Si la récupération n'est pas possible parce que les données ne sont pas dans les tables de sauvegarde, l'utilisateur devra refaire sa saisie. Cela peut arriver si par exemple la perte des lignes a eu lieu avant l'installation de la version oxygène 10.08.

 

- Mode consultation : Si l’utilisateur s’en aperçoit car il a ouvert la pièce en mode consultation : il va pouvoir utiliser dans le menu du haut « commandes » le choix "récupération lignes perdues" permettant de lancer l’outil de récupération seulement pour la pièce en cours de consultation :

 

 

Dans ce cas aussi le traitement de récupération corrige uniquement la pièce en cours, sans affichage de compte-rendu ni alerte si d'autres pièces sont altérées. Toutefois la pièce corrigée est actualisée à l'écran afin que l'utilisateur puisse constater la réapparition des lignes.

 

Si on appelle par erreur ce choix alors que la pièce en cours a des lignes, un message le signale et l'outil de récupération n'est pas lancé.

 

 

 

 

Si pas de rappel de la pièce sans ligne pendant la journée durant laquelle est survenue la perte des lignes :

 

Si l’utilisateur ne s’en aperçoit pas au cours de la journée, parce qu'il ne demande pas de modifier ou consulter la pièce qui a perdu ses lignes, le jour suivant, au premier lancement du menu de la gestion commerciale par un utilisateur, un traitement de contrôle va se lancer. Ce traitement va vérifier si parmi les pièces sauvées il y en a sans ligne. Si c'est le cas l'utilisateur a un message d’alerte, il peut lancer le traitement de compte-rendu des pièces sans lignes et il a dans ce traitement la possibilité de toutes les corriger en une seule fois.

 

Voici le message d'alerte qui s'affiche le matin au 1er lancement du menu de la gestion commerciale, si des pièces sauvées auparavant sont sans lignes :

 

 

Si vous répondez oui vous aurez le compte-rendu à l'écran de la ou des pièces sans lignes pour lesquelles l'outil de récupération sera utilisable. C'est à dire celles qui ont fait l'objet de la sauvegarde de leurs données le jour précédent, ou à une date plus ancienne si par exemple vous n'utilisez pas tous les jours l'application de gestion commerciale Oxygène.

 

Traitement du compte-rendu des pièces sans lignes

 

Ce traitement est lancé de 2 façons différentes, soit manuellement par un utilisateur via les utilitaires de maintenance, soit automatiquement le matin au 1er passage dans le menu de la gestion commerciale, parce que la procédure automatique de vérification a trouvé des pièces sans ligne parmi les données sauvegardées la veille ou les jours précédents.

 

Ce traitement présente dans une liste à l’écran toutes les pièces sans lignes parmi celles contenues dans la sauvegarde. Dans la liste, pour chaque pièce on a le type de pièce, le n° pièce, la date pièce, la date de la sauvegarde avant perte des lignes, le nom du client ou du fournisseur, le type si facture ou avoir ou bon de retour (F ou A ou R), et le statut par une case à cocher "validée". Le tri des colonnes et l'export EXCEL sont possibles sur cette liste à l'écran.

 

 

En bas de cette liste, on a les boutons suivants :

 Bouton "Sortie" : permet de quitter le traitement sans procéder aux corrections des pièces sans lignes.

Bouton "Corriger" : permet de lancer la récupération des lignes pour toutes les pièces de la liste.

 

Bouton "Voir la pièce" : pour chaque pièce de la liste on peut consulter la pièce, et lancer sa récupération par le menu «commandes».

 

Si vous lancez la correction des pièces de cette liste, la correction va s'effectuer pièce par pièce selon le procédé décrit ci-dessous.

 

Traitement de récupération pour une pièce

 

La récupération s'effectue de la même façon pour chaque pièce traitée, que ce soit lors de l'appel par l'utilisateur pour corriger une pièce, ou bien quand on lance la récupération le lendemain pour toutes les pièces trouvées sans lignes.

 

Si la pièce en cours n’est pas présente dans les tables de sauvegarde des données modifiées, un message le signale et la récupération ne se fait pas Cela peut arriver si l’installation de la version 10.08 Oxygène a été faite après des pertes de lignes non corrigées.

 

La récupération se passe comme ceci : re création des lignes de la pièce à partir des données sauvegardées puis récupération des données de l'en tête de la pièce à partir des données sauvegardées. Pas de recalcul des valeurs de la pièce, car le traitement a sauvé la totalité des données, ses valeurs sont restituées comme elles étaient avant la dernière modification précédant la perte des lignes.

 

Cas des chaînages amont : Si parmi les lignes de la pièce on a des lignes issues d’un chaînage, la récupération va vérifier la quantité transformée dans la ligne amont de chaque ligne récupérée. Et si au moins une ligne amont est corrigée, le traitement va aussi lancer la modification de la ou des pièces amont, afin de recalculer les quantités et montants non transformés de l’en tête et les quantités transformées et non transformées des lignes.

 

Exemple : on a un devis avec un article A de quantité 10, transformé en commande et quantité dans la commande = 6. La ligne du devis est avec une quantité transformée = 6, et un reste à transformer de 4.

Modification de la commande (cela sauve ses lignes) et modification de la quantité commandée qui passe de 6 à 4. Puis perte des lignes dans la commande.

 

L’outil de récupération va restaurer la ligne de commande avec quantité = 6. Puis le devis amont sera vérifié, et corrigé si la quantité transformée est différente de 6 pour la ligne. Et ce traitement corrigera aussi la quantité non transformée et les 2 montants non transformés de la pièce origine.

 

Cas des lots séries : les lots séries des lignes d'une pièce sont enregistrés dès leur saisie, avant l’enregistrement des données de la pièce. De ce fait ils ne sont jamais perdus lors de la perte des lignes d'une pièce. C'est pour cela que le traitement de récupération ne change pas les lots série associés aux lignes perdues de la pièce. On n'aura pas besoin de les ressaisir.

 

On aura donc des lots séries avec une quantité différente de celle de la ligne restaurée mais cela pourra être utile : la quantité des lots série permettra de retrouver les quantités des lignes perdues, c’est donc intéressant de les conserver.

 

Quand le traitement aura restauré les lignes de la pièce les lots seront corrects et ce sont les quantités des lignes de la pièce qui seront à corriger. Donc la consultation des lots donnera l’information des quantités des lignes de la pièce telles qu'elles étaient avant la perte des données. Il faudra modifier les quantités des lignes de la pièce et ne pas changer les lots.

 

Ce principe de retrouver les quantités des lignes en consultant les lots associés sera valable seulement si les lots des lignes perdues avaient été saisis complètement pour chaque ligne avant leur perte, il est évidement possible que cela ne soit pas pertinent dans tous les cas.

 

Si on omet de rectifier la cohérence entre les quantités des lignes et les lots, la validation définitive de la pièce sera impossible. D’autre part les outils de contrôle de stock et de lots permettront aussi de détecter les écarts.

 

Pour les encours client et fournisseur : En cas de perte de lignes, une fois la récupération effectuée, vous devez vérifier l'encours du client ou du fournisseur.  Et si incorrect il faudra lancer l'outil de maintenance de recalcul des encours pour le corriger.

 

Pour le suivi du stock : même chose que pour le cas des encours, vérifier que le stock des articles des lignes restaurées et correct, et si nécessaire, lancer les outils de maintenance qui corrigent le stock.

Ces outils de maintenance devant être lancés en mode exclusif, c'est à dire en interdisant l'utilisation d'Oxygène à tous les utilisateurs, vous devrez peut-être décaler leur lancement en fin de journée, ou à une heure de non utilisation d'Oxygène.

 

Traitement de vidage des données sauvegardées

 

Chaque jour, au 1er lancement du menu de la gestion commerciale, ce traitement va effectuer la suppression des données sauvées de la veille (ou d'un jour précédent en cas de non utilisation d'Oxygène tous les jours). Par exemple le lundi matin, si vous n'avez pas utilisé Oxygène pendant le week-end, cela va traiter les pièces sauvées le vendredi précédant la date du jour.

Ceci a pour but de ne pas stocker de gros volumes de données au fil du temps, tous les jours cela éliminera les données sauvées la veille.

 

Pour chaque pièce contenue dans les données sauvées, vérification qu'elle a au moins une ligne, et qu’elle n’est pas en cours de modification sur un autre poste. Si ces 2 conditions sont remplies, suppression automatique des données sauvées de la pièce.

 

Pour chaque pièce sans ligne : pas de vidage des données sauvées de ces pièces, et en fin de vidage message d'alerte signalant que des pièces sans ligne ont été détectées, et lancement du traitement de récupération si l'utilisateur le demande : message "Des pièces sans ligne ont été détectées. Voulez-vous en afficher la liste?"

 

 

De cette façon on conserve les données sauvées tant que l'utilisateur n'a pas procédé à la récupération des données de ces pièces sans lignes.

 

Si pièce en cours de modification sur un autre poste : on conserve ses données sauvées, elles seront vidées le jour suivant.

 

En cas d’une pièce qui n’existerait plus car supprimée par un utilisateur : vidage des données sauvées, on ne conserve pas les données dans ce cas.