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
Mac en entreprise : le levier d’un poste de travail moderne
Ce livre blanc répond aux 9 questions clés des entreprises sur l’intégration du Mac : sécurité, compatibilité, gestion, productivité, coûts, attractivité talents, RSE et IA, et l’accompagnement sur mesure proposé par inmac wstore.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Vers l’Industrie 5.0 : quand l’IA agentique change la donne
- Ready For IT 2026 : IA industrialisée, deepfakes et Prix Start-up au cœur des enjeux
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Ready For IT 2026 : quand l’accélération de l’innovation redessine les priorités des décideurs IT
Articles les + lus
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
À la une de la chaîne Tech
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
