|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 18 ![]() |
Bonjour,
J'aborde l'appel de procédure, et comme ma boite ne fait aucune formation , j'ai qq soucis pour mettre en oeuvre. Pour mon exemple, j'ai fais une procédure qui me calcule la transformation d'une date (cf,le code dessou) de 'yy/mm/dd' en 'mm/dd/ccyy' : H NOMAIN D Proc001 pr D 8A D 10A * * P PROC001 B D PROC001 Pi D var1 8A D var2 10A /free // 'yy/mm/dd' TO 'mm/dd/ccyy' var2 = %char(%date(var1:*ymd/):*usa/); RETURN ; /end-free J'ai fais 15 pour en faire un module . Maintenant avec l'option 27 (crtsrvpgm) pour en faire un pgm de service ça coince, voila la log: Citation:
|
|
|
|
00
|
|
|
#2 | ||||
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 224 ![]() |
Bonjour,
Alors plusieurs choses :
Maintenant je ne saurais trop te conseiller de chercher un peu sur le net, tu trouveras des tas d'exemples et de conseils. Edit : Un CallP ce n'est intéressant que si ta procédure ne retourne pas de valeur. Ici, je n'aurais pas fais comme çà, mais transmis un seul paramètre, avec une valeur en retour. Comme çà : Code :
|
||||
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Analyste-Programmeur as/400 et Java Inscription : août 2002 Messages : 173 ![]() |
Bonjour,
Il y a des cours gratuits chez IBM : http://www-304.ibm.com/jct03001c/ser...age&c=a0000656 Le cours sur l'ILE a la référence OE41. Pour mat part, je fait : un RPGLE, un BND et un ILESRVPGM. Tu utilises arcad ? larry57 |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Analyste-Programmeur as/400 et Java Inscription : août 2002 Messages : 173 ![]() |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 18 ![]() |
je retarde un peu mais je vais essayer de suite, merci pour les infos.
Une derniere question de bleu. La différence entre l'appel d'un pgm de service et un appel de pgm externe, quelle est la différence? le fait de pouvoir pgm ds un autre lange et la possibilité de l'appeler dans un rpg ? |
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 224 ![]() |
Attention, un programme de service n'est pas un programme dans le sens habituel. C'est plutôt une bibliothèque de fonctions.
On appelle les procédures qu'il contient, pas le programme lui-même. L'avantage conséquent d'un programme de service est de regrouper un ensemble de fonctions sans nécessiter la recompilation des programmes utilisant ces fonctions. Exemple : J'ai personnellement un programme de service dans lequel j'ai une tonne de fonctions. Du traitement de chaînes de caractères, nombres, dates, à l'affichage d'une fenêtre d'erreur standardisée. Lorsque pour des raisons techniques j'ai eu à modifier la procédure d'affichage d'erreur, j'ai modifié le source, reconstruit le module puis le programme de service, et ... c'est tout. Les dizaines de programmes utilisant cette fonction ont immédiatement bénéficié des améliorations. J'ai rajouté des paramètres optionnels, les programmes existants n'y ont vu que du feu. Seuls ceux en ayant besoin et que j'ai modifié à dessein, ont profité des extensions apportées. (en fait j'ai recréé la commande/fonction MsgBox de VisualBasic en apportant des paramètres petit à petit). Autre exemple : Ta procédure de traitement de date va être utilisée dans x programmes. Tu t'aperçois au bout de quelques temps que tu as besoin de rajouter un traitement d'erreur. Tu l'ajoutes à ta procédure, et au lieu de recompiler tous les x programmes liés à la fonction, tu recompiles le module, tu recrées le programme de service et c'est tout. Gain de temps, gain de lisibilité, gain de facilité de maintenance, c'est tout bénef. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com