J'ai opté pour la méthode suivante :
Les fichiers Entete et Lignes ont tous un Alias dans un répertoire
temporaire sur le serveur
A. Création de piece
1. J'assigne pour la piece un numéro temporaire basé sur l'horloge +
l'identifiant de l'utilisateur ( je suis sur que c'est unique )
2. Je créé dans les alias l'Entete et les Lignes au fur et a mesure de
la saisie.
3. Quand je valide ma piece, je fais une simple copie des
enregistrements de ma piece temporaire ( entete + lignes ) en attribuant le
vrai numéro de piece.
4. Je supprime les lignes et entete temporaire, que j'ai validé ou
annulé la piece.
B. En modification de piece
1. Je copie les enregistrements de la piece dans les fichiers alias (
Entete et ligne ) en conservant le numéro initial de la piece (et non pas
avec un numéro temporaire ). De cette facon, seule une personne peut
modifier une piece a un instant T puisque si j'ai une piece avec le numéro
demandé dans le fichier alias, c'est que quelqu'un travaille sur cette
piece )
2. J'enregistre les modifications sur les alias temporaires.
3. Si je valide la modification, je supprime les lignes dans les
fichiers originaux et je procede comme pour une création de piece, le numéro
étant déja attribiué puisque contenu dans les fichiers Alias.
4. Que je valide ou j'annule, je supprime lignes et entete dans les
fichiers Alias.
Avantage : c'est qu'en cas de plantage du poste en cours de saisie d'une
piece, je suis capable de reprendre la saisie, il me suffit de recharger la
piece avec le contenu des fichiers Alias temporaires ( je filtre par défaut
sur l'identifiant de l'utilisateur qui est enregistré dans le fichier des
entetes , ce qui permet a un admin dans le logiciel de reprendre une saisie
d'un autre user )
Inconvénient : La charge réseau est augmentée puisqu'on va doubler les
lectures/enregistrement. Je vais bientot modifier le process pour qu'en mode
client/serveur, une procédure stockée fasse la duplication Alias <->
Original.
Les suppressions de piece temporaire sont déja faites dans une procédure
stockée.
Pour la gestion du stock, j'ai créé une classe qui gere tout le process de
mise a jour du stock, aucune action sur le fichier stock ne se fait sans
passer par cette classe. J'ai également un trigger serveur pour les calculs
de stocks disponibles.
"Yanmae Informatique" <stephane.bouillennec@club-internet.fr> a écrit dans
le message de news:4805b9e2$1@news.pcsoft.fr...
Là est une bonne question du genre la poule ou l'oeuf.
Moi je supprime tout si c'est une petite appli sinon je créée une clé
unique pour le fichier ligne et ne supprime où ne modifie que les lignes
concernées