Announcement!
This is a notification for product news or an alert. If you have a question, please start a new discussion

Bonnes pratiques à adopter lorsqu'on développe dans un point d'entrée?

SOLVED

Je rencontre un souci où la valeur de la variable système [S]nolign change "sans prévenir" dans un bout de code spécifique développé dans un point d'entrée. Plus de détails dans ce post: https://sagecity.na.sage.com/fr/enterprise-management-sage-x3-france/f/enterprise-management-sage-x3-france-technique/124457/instructions-susceptibles-de-faire-changer-de-valeur-la-variable-systeme-s-nolign

Voici donc ma question: quelles sont les bonnes pratiques à adopter lorsqu'on développe dans un point d'entrée pour ne pas perturber le contexte utilisé par le standard? 

  • +1
    verified answer

    Voici les éléments de réponse que j'ai pour l'instant: 

    - Sauvegarder la valeur de la variable [S]nolign dans une variable locale au début du code et la restaurer à la fin. 

    - Si l'on doit ouvrir des tables supplémentaires via l'instruction clalev, veiller à le faire dans des sous-programmes et non dans des étiquettes, car cela perturbe la pile des tables ouvertes. Si après le standard tente d'accéder à la classe [F] au sommet de la pile sans préciser d'abréviation, la table peut ne plus être celle à laquelle il s'attend. Il n'est apparemment pas suffisant de refermer les tables par un Close: l'ordre de la pile peut tout de même être perturbé.