Bonjour,
Merci pour ce petit utilitaire qui peut rendre service.
Quelques remarques :
- C'est dommage de ne positionner qu'un code erreur unique, ici "1" alors que 2 types d'erreur sont possibles : SIRET non numérique (testé au début) et reste de la division différent de zéro (testé à la fin)
tout sous programme doit effectuer un diagnostic fin, avec donc un code erreur par type d'erreur, ici, on aurait pu avoir par exemple 1 et 2. Faute de quoi le traitement en amont ne peut pas savoir ce qu'il en est
- Un filler balise en début et en fin de working est toujours le bienvenu, ca permet, en cas de dump, de retrouver plus facilement le contenu de la WSS
01 FILLER PIC X(32) VALUE '*** DEBUT WSS TSTSIR ***'.
- C'est dommage de déclarer des variables de petite taille en utilisant des level "01" qui vont aligner les éléments sur 16 octets, il est préférable de créer une zone groupe "01 FILLER" dans laquelle on déclare autant de niveaux 02 qu'il y a de petites variable à déclarer, par exemple :
1 2 3 4 5 6 7 8
| 01 FILLER.
02 W-TOTAL PIC 9(3) value 0.
02 w-tot10 pic 999.
02 w-rest pic 99 value 0.
02 w-i pic 99 value 0.
02 w-elesir2 pic 99.
02 w-toggle pic 9 value 0.
88 toggle value is 0. |
Ca peut sembler un détail, mais si on appelle un grand nombre de sous-programmes tous construits ainsi, on charge inutilement la région.
- il faut savoir qu'en COBOL, les variables faisant l'objet de calculs sont plus performantes si elles sont déclarées en packé signé.
si le code source demande un calcul sur une zone déclarée en étendu non signé (PIC 9(nn)) alors le calcul sera fait de la façon suivante :
ajout du signe
pack
calcul
unpack
suppression du signe
restitution du résultat ! (ouf)
Tout ceci n'est évidemment pas neutre en temps de traitement (jusqu'à 8 fois plus pour un calcul)
Partager