Bonjour,
Je suis confronté à un (gros) soucis sur lequel je cale depuis de nombreux jours.
Comme cela m'est déjà arrivé plusieurs fois, j'ai créé un projet pour avoir un protocole de reproduction (le soucis se pose initialement dans un gros projet) : souvent l'exercice de reproduction permet de prendre du recul et d'identifier son erreur.
Ici, cependant, nada : le problème se reproduit exactement.
Typiquement, l'application de type comptable repose sur une arborescence de sous répertoires qui représentent chacun un exercice.
Le passage d'un exercice à l'autre se fait par un HChangeRep.
L'incident se produit lorsque j'enchaîne deux opérations, dans la même session.
1/ Une des opérations fait appel à une procédure stockée sur le serveur (aucun HChangeRep dans cette opération) ;
2/ La 2e fait des aller-retours entre deux exercices (clôture comptable de l'un, ouverture de l'autre et écritures automatiques liées au changement d'exercice) via des HChangeRep
Cet enchaînement fout une mélasse sans nom dans les fichiers, supprimant des enregistrement non concernés, et en écrivant là où il ne doit pas.
Cette mélasse se produit au moment d'un HSupprime.
Si j'interroge la communauté, c'est parce que chaque séquence fonctionne parfaitement, pour autant qu'entre les deux je sorte complétement de l'application.
Je n'arrive pas à identifier ce qui provoque ce comportement quand les séquences sont enchaînées dans la même session...
J'ai vérifié mon code par rapport à la libération des filtres et requêtes (lesquels sont "tués" à la fermeture du programme), aucun soucis de ce côté-là.
J'ai aussi vérifié dans quels répertoires l'application travaillait via une trace du ..répertoire : avec ou sans enchaînement, le répertoire est identique.
J'ai également passé l'ensemble du processus en mode débogage.
J'obtiens des résultats erratiques très difficiles à reproduire (dans ces tests j'ai tantôt visualisé la source de donnés dans le débogueur, tantôt via WDMAP).
Toujours est-il que de temps-en-temps, l'enchaînement, en déboguant pas à pas, n'a posé aucun soucis...
J'en suis venu à envisager un problème de connexion (laquelle est "resetée" quand on ferme le programme).
Et de fait, si je fais précéder le HSupprime par un HfermeConnexion suivi d'un HchangeConnexion, tout rentre dans l'ordre !
Est-ce normal ?
A quoi n'ai-je pas pensé ? Je suis à court de ressources...
D'avance merci.
X.
PS je suis prêt à publier le code, mais je ne sais trop ce qui est pertinent.
Je peux également mettre un projet "test" à disposition.
Partager