> Tech > Override du même fichier plusieurs fois

Override du même fichier plusieurs fois

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

  Les overrides au niveau d'appel ont la particularité de combiner plusieurs overrides pour le même fichier, afin que chacun des attributs différents touchés par l'override s'applique. Analysons les fragments de programme suivants, qui émettent la commande OvrPrtF (Override with Printer File) :

ProgramA :
OvPrtF   File(Report) OutQ(Sales01) *
         OvrScope(*CallLvl)
Call

Pgm(ProgramB)

ProgramB :
OvPrtF File(Report) Copies(3) +
OvrScope(*CallLvl)
Call Pgm(PrintPgm)

  Quand le programme PrintPgm ouvre et spoule le fichier d’imprimante Report, les overrides provenant des deux programmes sont combinés, avec les résultats suivants : le fichier spoulé est placé dans le file d’attente de sortie Sales01 et trois copies sont prêtes à  imprimer.

  Voyons maintenant le fragment de programme suivant :

ProgramC :
OvPrtF   File(Report) OutQ(Sales01) +
         OvrScope(*CallLvl)
OvPrtF   File(Report) Copies(3) +
         OvrScope(*CallLvl)
Call     Pgm(PrintPgm)

  A votre avis, que se passe-t-il ? Si vous croyez que ce programme est fonctionnellement équivalent aux deux précédents, vous vous trompez. A l’intérieur d’un niveau d’appel unique, seul l’override le plus récent est en vigueur. Autrement dit, l’override le plus récent remplace l’override précédent en vigueur. Dans le cas de ProgramC, l’override Copies(3) est en vigueur, mais l’override OutQ(Sales01) ne l’est pas. Cette particularité procure un moyen commode de remplacer un override dans un niveau d’appel unique, sans qu’il soit nécessaire de supprimer d’abord l’override précédent. Il est également amusant de montrer aux programmeurs ProgramA et ProgramB, d’expliquer que tout s’est passé parfaitement, puis de leur demander de vous aider à  trouver pourquoi les choses se sont gâtées juste après avoir modifié l’application pour qu’elle ressemble à  ProgramC ! Quand ils s’aperçoivent en définitive que seul l’override le plus récent dans un programme est en vigueur, montrez leurs votre dernière modification –

ProgramA :
OvPrtF   File(Report) OutQ(Sales01) *
         OvrScope(*CallLvl)
TfrCtl   Pgm(ProgramB)

ProgramB :
OvPrtF   File(Report) Copies(3) +
         OvrScope(*CallLvl)
Call     Pgm(PrintPgm)

et regardez-les s’affoler à  nouveau ! Ce dernier changement est identique à  la première itération de ProgramA et ProgramB, à  cela près que, au lieu d’émettre un appel (Call) au ProgramB depuis le ProgramA, on utilise la commande TfrCtl pour invoquer ProgramB. Souvenez-vous que TfrCrl ne démarre pas un nouveau niveau d’appel. ProgramB remplacera simplement ProgramA dans la pile d’appel et s’exécutera donc au même niveau d’appel que ProgramA. Du fait que le niveau d’appel ne change pas, les overrides ne sont pas combinés.

  Vous devrez peut-être faire remarquer aux programmeurs que cela leur a complètement échappé quand ils ont déterminé que seul l’override le plus récent dans un programme est en vigueur. La règle est la suivante : seul l’override le plus récent dans un niveau d’appel est en vigueur.

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010