Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > Cobol
Cobol Forum d'entraide sur la programmation en langage Cobol
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/12/2012, 15h52   #1
axelvdk
Invité régulier
 
Homme Axel Vanderkluizen
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Axel Vanderkluizen
Localisation : Belgique

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 5
Points : 5
Par défaut data set utility - generate

Bonjour à tous,

J'ai un projet d'école à remettre en cobol, je dois dans un premier temps créer une map (la fenêtre de saisie des données). J'ai exécuté les instrus du prof, mais je vois pas une seconde où ça plante, mon code est assez long et je pense que c'est trop rébarbatif pour que je puisse espérer recevoir de l'aide.
J'ai fait un cobjcl à mon nom (je suis sur un main frame) et il est correcte.
Le code commence par :
[CODE
================================ T O P ======
PRINT NOGEN
CB31000 DFHMSD TYPE=$SYSPARM,
MODE=INOUT, X
LANG=COBOL, X
STORAGE=AUTO, X
DATA=FIELD, X
CTRL=(FREEKB,FRSET), X
TIOAPFX=YES
][/CODE]
les tabulations sont normalement bien respectées. Et ça fini par :
Entre ces deux bouts de codes, j'ai mis les éléments de la fenêtres selon le schéma :

Code :
1
2
3
4
5
6
                                                            
NOME     DFHMDF POS=(12,10),                                             X
                        ATTRB(ASKIP,PROT,BRT),                             X
                        INITIALIZE='LABEL DESCRIPTION',                   X
                        LENGTH=20
C'est comme ça que j'ai fait tout le code, en fonction des champs de saisie et des labels. Le msg d'erreur est :
data set utitlity - generate
processing at ended eod.

Le prof dit qu'il faut avoir, après la commande status job, dix fichiers, ce message apparaît au dernier qui est le 4ème...

Si quelqu'un avait une idée ou une piste, il (avec son idée :-)) sera vraiment le bien venu,

Merci d'avoir pris le temps de me lire,


Axel
axelvdk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 20h59   #2
Skylyn
Membre habitué
 
Homme Julien Guiffroy
Ingénieur d'étude Mainframe
Inscription : septembre 2012
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Julien Guiffroy
Âge : 27
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur d'étude Mainframe
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2012
Messages : 61
Points : 113
Points : 113
Je ne suis pas spécialiste des data sets ni des droits d'accès (création suppression) sur les volumes mais tu peux avoir des soucis avec un fichier du genre "crée-moi un fichier en DISP=SHR" plutôt que d'avoir un truc du genre ou
Code :
DISP=(NEW,CATLG,DELETE)
.
Tu peux avoir des problèmes avec un fichier également si tu fais en JCL quelque chose comme ça :
Code :
1
2
3
4
//*Création du fichier
//FICHIER1 DD DSN=fichier.a.creer,DISP=(NEW,CATLG,DELETE)
//FICHIER1 DD DSN=fichier2.a.creer,DISP=(NEW,CATLG,DELETE)
Si tu utilises deux fois le même DDNAME tu risques d'avoir des soucis...

Un autre problème exemple est :

Code :
1
2
3
4
5
6
7
8
9
//*Création du fichier
//FICHIER1 DD DSN=fichier.a.creer,DISP=(NEW,CATLG,DELETE) <== imaginons que cette instruction plante, le fichier est supprimé
//*Tri du fichier sur le fichier non créé
//SORT1 EXEC PGM=SORT
//IN  DD DSN=&FICHIER1,DISP=SHR
//OUT DD DSN=fichier.trie,DISP=(NEW,CATLG,DELETE)
//SYSIN DD *
  SORT FIELDS=COPY (pour simplifier la syntaxe du SORT au maximum, au final le fichier n'est pas trié mais copié)
Après, je n'ai pas le code du JCL que tu as utilisé mais pour faire simple :
- Utilise des DDNAME uniques sinon tu vas te perdre et au final le JCL plantera
- Fais attention aux différents DISP que tu utilises car ce sont eux qui te donnent le type d'accès au fichier

Edit : - Fais aussi attention aux minuscules, JCL déteste ça et plantera systématiquement si tu en mets ailleurs que dans les commentaires...
Skylyn est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 19/12/2012, 09h54   #3
Darkzinus
Membre Expert
 
Homme Nicolas
Ingénieur d'Etude Mainframe
Inscription : novembre 2012
Messages : 231
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Âge : 32
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'Etude Mainframe
Secteur : Finance

Informations forums :
Inscription : novembre 2012
Messages : 231
Points : 1 408
Points : 1 408
Bonjour,

Pour bien te répondre il nous faudrait quelques précisions. En quoi consiste ton traitement ? Tu nous parles d'écran de saisie, tu sous-entends par là du CICS ? Quel est le JCL associé ?

Pour t'aider dans le plantage tu pourrais mettre ton 4ème fichier (qui plante) en DISP=(NEW,CATLG,CATLG) comme ça en cas de plantage tu verras ce qui a été écrit jusqu'au plantage. Par contre pense bien à deleter tes fichiers quand tu relances le traitement.

J'avoue que mon post fait un peu catalogue de questions, mais pour te répondre de manière constructive, mieux connaître le sujet m'aiderait.
Darkzinus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 15h23   #4
Pico-----
Membre habitué
 
Inscription : juin 2008
Messages : 104
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 104
Points : 125
Points : 125
Bonjour,

Alors à la vision du code, c'est clairement une map CICS.

Ensuite, si il n'y a pas de message d'erreur explicite, il va être difficile de diagnostiquer.

Par contre, certes cela fait quelques temps que je n'ai pas fait de cobol CICS, mais 4 fichiers pour une compilation de map, ça me surprend pas. De mémoire (je n'ai pas moyen de vérifier dans l'immédiat), il doit y avoir le mapset, un load, une copy, et un fichier que je n'ai jamais su à quoi il servait. C'est clairement des résidus de mémoire que je donne juste au cas où ça peut faire avancer avant que quelqu'un donne une réponse plus pertinente. (si j'ai le temps ce soir, je regarderai).

Déjà, peux-tu demander à ton prof à quoi correspondent les 10 fichiers attendus ?
Pico----- est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/12/2012, 20h04   #5
axelvdk
Invité régulier
 
Homme Axel Vanderkluizen
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Axel Vanderkluizen
Localisation : Belgique

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 5
Points : 5
Un tout grand merci déjà d'avoir répondu, je vois mon prof demain, je lui demanderai à quoi correspondent les 10 fichiers.

@Skyline : Ce genre de code me dit pas grand chose, mais le prof nous dit qu'on ne doit pas créer de fichiers, cics s'en charge. Mais même si c'est pas très parlant pour moi, on avait vu cette partie en cobol et c'est effictivement à ça que ça ressemblait :-)
@darkzinius : Oui j'avais oublié de préciser, c'est bien une map en cics et j'affiche le jcl plus loin. Par contre le message quand j'affiche le fichier 4 c'est : data set utility - generate
process ended at eod...
pas très parlant :-). Au niveau du sta j, j'ai repéré une ligne qui disait jcl error... je suis un champion ! C'est à dire que le prof m'avait dit qu'il était bon, donc j'ai pas chercher de ce côté là.
Voilà le jcl (il s'appelle jclcics et mon id est ands313, et mon n° de transaction est CB31000) :
Code :
1
2
3
4
5
 000001 //ANDS313 JOB ,PALMA,CLASS=P,MSGCLASS=Z,NOTIFY=ROSEAZY                 
 004900 //ST  EXEC  ASMMAP,MSET=M,LIB=COBLIB,USER=ANDS313,ENV='.RESIDENT.',    
 004901 //       TRAN=CB31000                                                  
 005000 //MAP.SOURCE DD *
.

En tout cas à grand merci à vous trois, c'est vraiment sympas de checker ça avec moi, je vous dis quoi dès que le prof a résolu le bug.

A +
axelvdk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 21h25   #6
Skylyn
Membre habitué
 
Homme Julien Guiffroy
Ingénieur d'étude Mainframe
Inscription : septembre 2012
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Julien Guiffroy
Âge : 27
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur d'étude Mainframe
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2012
Messages : 61
Points : 113
Points : 113
si tu as un JCL ERROR c'est peut être à cause de ça dans ton JCL...
Citation:
Envoyé par axelvdk Voir le message
Code :
1
2
3
4
5
 000001 //ANDS313 JOB ,PALMA,CLASS=P,MSGCLASS=Z,NOTIFY=ROSEAZY                 
 004900 //ST  EXEC  ASMMAP,MSET=M,LIB=COBLIB,USER=ANDS313,ENV='.RESIDENT.',    
 004901 //       TRAN=CB31000                                                  
 005000 //MAP.SOURCE DD *
essaye dans ton code transaction de mettre :
Je ne suis pas spécialiste de CICS
Skylyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2012, 11h35   #7
axelvdk
Invité régulier
 
Homme Axel Vanderkluizen
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Axel Vanderkluizen
Localisation : Belgique

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 5
Points : 5
Salut,

Je réponds un peu tard mais y avait les fêtes :-), j'ai la solution du problème, il fallait le savoir, ça se trouvait au niveau du code jcl.
Code :
1
2
3
4
000001 //ANDS313 JOB ,PALMA,CLASS=P,MSGCLASS=Z,NOTIFY=ROSEAZY                 
 004900 //ST  EXEC  ASMMAP,MSET=M,LIB=COBLIB,USER=ANDS313,ENV='.RESIDENT.',    
 004901 //       TRAN=CB31000                                                  
 005000 //MAP.SOURCE DD *
En fait, il fallait pas que je mette l'identifiant 313 à l'ands affecté à l'user (là où c'est souligné). Je devais simplement laisser ands...

Un grand merci, Joyeux Noël et Bonne Année !
axelvdk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h01.


 
 
 
 
Partenaires

Hébergement Web