> Tech > Eviter la répétition

Eviter la répétition

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

Lorsqu'on essaie de s'attendre à  l'inattendu, il peut en résulter une grande quantité de code. Dans notre cas, le calcul du pourcentage de profit, qui a commencé par une seule ligne de code, en est maintenant à  une bonne dizaine. Nous avons tendance à  utiliser de tels calculs fréquemment. Et

Eviter la répétition

même dans sa version finale, notre exemple pourrait être amélioré. Avec tout calcul commun, un petit effort supplémentaire peut rendre les applications plus faciles à  maintenir. En fait, il faut diviser le code commun en une procédure et un programme de service.
Avec les applications de gestion, il est facile de créer un programme de service pour chaque ensemble de calculs de même nature. On peut, par exemple, créer un programme de service appelé SlsAnlPrc, qui contient des procédures pour effectuer des fonctions d’analyse de ventes communes. Le programme de service en capsule le calcul du pourcentage de profit dans une procédure appelée GetPrfPc. Le membre d’en-tête Sales Analysis Procedures (SlsAnlPrcH, figure 1) définit des prototypes de procédures copiables dans n’importe quel programme. Le membre Sales Analysis Procedures (SlsAnlPrc, figure 2) contient le code du programme de service proprement dit.
Le programme de service SlsAnlPrc contient la procédure GetPrfPc chargée d’extraire le pourcentage de profit. La procédure GetPrcPc attend le montant de la vente au détail dans le paramètre RtlAmt et le montant du coût dans le paramètre CstAmt et elle envoie le pourcentage de profit à  PrfPc. La procédure renvoie une valeur logique de *On (réussite) ou de *Off (échec). La procédure contient tout le code nécessaire pour vérifier d’éventuelles erreurs sur les expressions arithmétiques. Notons comment les cartes D dans la procédure définissent PrfPcMax et PrfPcMin pour éviter de coder en dur les valeurs maximales et minimales que PrfPc peut contenir.
Pour utiliser les procédures de SlsAnlPrc dans un programme, il faut coder une directive Copy pour le membre SlsAnlPrcH en n’importe quel point des cartes D du programme :

/Copy AppKitCpy,SlsAnlPrcH

Pour appeler la procédure GetPrfPc, il faut ensuite coder les cartes C suivantes :

C If Not GetPrfPc( Retail:
C Cost:
C PrfPc )
C Eval ErrId = SlsAnlErrId
. . . Signaler l’erreur
C EndIf

Observons comment la valeur logique renvoyée par la procédure sert à  traiter les erreurs éventuelles rencontrées par la procédure. Le membre d’en-tête SlsAnlPrcH définit une variable externe appelée SlsAnlErrId qui est exportée par le programme de service SlsAnlPrc et importée dans les programmes applicatifs. Les variables externes constituent un moyen de partager des informations entre des procédures sans encombrer les interfaces de ces dernières. SlsAnlErrId contient l’ID de l’erreur qui a provoqué la défaillance d’une procédure dans SlsAnlPrc. On peut référencer SlsAnlErrId directement dans les programmes, comme illustré ci-dessus, au lieu de le transmettre comme un paramètre.

Téléchargez cette ressource

Guide de Cyber-résilience pour Microsoft 365

Guide de Cyber-résilience pour Microsoft 365

La violation de votre tenant M365 va au-delà d’un simple incident de cybersécurité. Elle peut entraîner une interruption opérationnelle généralisée, des perturbations commerciales et une exposition de vos données sensibles. Découvrez les méthodes et technologies pour évaluer, comparer et renforcer votre posture de sécurité Microsoft 365.

Les plus consultés sur iTPro.fr

A lire aussi sur le site

À la une de la chaîne Tech