bonjour à tous
je suis nouveau sur ce forum et dans la programmation cobol.
je voudrais pouvoir automatiser la compilation de 900 programmes sous dos avec microfocus cobol 5.
pour compiler et linker, je fais les opérations suivantes :
cobol [nom du fichier];
puis :
link [nom du fichier]+adis+adisinit+adiskey+cobintfn+extfh;
dois-je créer un .bat? si oui, comment gérer la variable [nom du fichier]?
Tu n'y va pas par le dos de la cuillère. 900 composants, par TOUTATIX !!!
Chez nous pour compiler avec MICROFOCUS sous UNIX, quand on lance la
compile d'un composant, il fait le LINK dans la fouléé (si bien sûr il n'y a pas
d'erreur de compile)
Dans ton cas, comme tu es sous DOS, une solution, un fichier .BAT récapitulant la liste de tout les programmes à compiler.
Tu rencontrera peut être le problème suivant :
A savoir que ton fichier .BAT sera interpreter trop rapidement par le système.
Ce qui aura pour but de lancer quasiment tout le contenu de ton fichier BAT
(soit tes 900 programmes) à la suite l'un de l'autre. Je crois que tu vas saturer
très rapidement ton système, voir le faire planter.
l'idéal, serait qu'il traite compile par compile comme dans une pile.
ex : démarrage compile 01 puis fin compile
démarage compile 02 puis fin compile etc ...
Peut être un découpage par lot de 10 ou + de programmes
Une autre solution, consisterai à écrire un petit programme COBOL, qui lirai
un fichier TXT contenant la liste de tes programmes à compiler.
Puis lancerai la compile composant par composant.
Dans tout les cas de figures, je ne vois pas comment tu échaperrai à la saisie
d'un fichier contenant tes composants à compîler.
A moins que les gens de ta cellule système ont un utilitaire de compile de
MASSE.
HULK77
__________________________
Ma fabrique de chemises tourne à plein régime !!!
tout d'abord, pour corriger une petite erreur de ma part, il n'y a pas 900 mais 500 programmes à compiler, ce qui en fait quand même un certain nombre. 900, c'est approximativement le nombre d'écrans qui leur sont associés.
mais pour en revenir au sujet, je me retrouve confronté à un nouveau problème à savoir que la quantité de texte que l'on peut saisir en ligne de commande est limitée et cela m'empêche de pouvoir faire des link sur plusieurs programmes en même temps qui appartiennent tous au même menu dans l'application.
est-ce que la création d'un .bat ou d'un .txt me permettrait de solutionner ce problème? sinon, peut-on augmenter la taille d'une ligne de commande?
Merci de suivre mon problème avec autant d'attention HULK77.
l'environnement MSDOS est en monoposte pour l'instant pour la phase de test, mais une fois les mises à jour et la compile terminées, l'application passera en réseau.
d'après ce que je comprends, une solution serait dans un premier temps de faire appel lors de la compile à un fichier txt avec la liste de tous les programmes à compiler, puis dans un deuxième temps exécuter un fichier bat pour linker toutes ces compils sans limitation de caractères.
un exemple :
cobol menu;
cobol smenu;
cobol pgm1;
cobol pgm2;
cobol pgm3;...
puis :
link menu+smenu+pgm1+pgm2+pgm3+...+adis+adisinit+adiskey+cobintfn+extfh;
voilà ce que ça pourrait donner :
fichier : file.txt (liste des pgms à compiler)
var=" "
LIRE fichier
TANT QUE (fin de fichier)
EXTRAIRE "pgm_à_compiler"
COMPILER "pgm_à_compiler" (cobol pgm_à_compiler; )
CONCATENER var + "pgm_compilé" + "+"
FIN TANT QUE
CONCATENER var + "adis+adisinit+adiskey+cobintfn+extfh;"
LINKER var
j'ai créé un fichier cplr.bat avec mes instructions de compil à savoir :
cobol pgm1;
cobol pgm2;
...
link pgm1+pgm2+...;
quand je lance le fichier sous dos en tapant CPLR en ligne de commande avec un nombre limité de pgm, pas de problèmes. la compile des différents programmes se fait et l'exécutable pgm1.exe est généré et fonctionne.
tout content...
mais voilà qu'au-delà d'un certain nombre de programmes, comme
précédemment, le link se bloque limité par la taille de la ligne de commande.
vous comprenez mon embarras si, devant compiler 500 pgms, je suis obligé de le faire par tranche de cinq. sans compter que la plupart d'entre eux sont liés dans des menus et doivent appartenir au même exécutable.
Cela revient bien à ce que je disait, à savoir que au delà d'un certain nombre
de programmes que tu veux compiler en même temsp, la makine en l'occurrence ton PC à ses limites. Et d'être sous DOS n'arrange pas ton affaire.
A mon avis, tu n'a pas d'aurtre choix que de faire tes compiles, comme tu
l'a déjà fait avec succès, dans des petits lots.
Mais comme tu nous as dit avoir au sein de ton entreprise plusieurs PC, pourquoi ne pas faire compiler des lots sur plusieurs PC !!!!
Peut être te faudra installer le compilateur sur ses PC, mais cela en vaut le coup.
Tiens nous au courant et bon courage !!!
HULK77
__________________________
Ma fabrique de chemises tourne à plein régime !!!