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
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- IA de confiance : le facteur clé pour rentabiliser les projets d’entreprise
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Hôpitaux virtuels : renforcer le système de santé français grâce au numérique
- Cybercriminalité bancaire : l’IA industrialise les attaques en 2026
Articles les + lus
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
À la une de la chaîne Tech
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
