Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Invité régulier
    Homme Profil pro Axel Vanderkluizen
    Inscrit en
    octobre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Nom : Homme Axel Vanderkluizen
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2011
    Messages : 13
    Points : 7
    Points
    7

    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

  2. #2
    Membre habitué
    Homme Profil pro Julien Guiffroy
    Ingénieur d'étude Mainframe
    Inscrit en
    septembre 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Nom : Homme Julien Guiffroy
    Âge : 28
    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 : 106
    Points
    106

    Par défaut

    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...

  3. #3
    Expert Confirmé
    Homme Profil pro Nicolas
    Ingénieur d'Etude Mainframe
    Inscrit en
    novembre 2012
    Messages
    671
    Détails du profil
    Informations personnelles :
    Nom : Homme Nicolas
    Âge : 33
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : novembre 2012
    Messages : 671
    Points : 3 815
    Points
    3 815

    Par défaut

    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.

  4. #4
    Membre actif
    Inscrit en
    juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 125
    Points : 195
    Points
    195

    Par défaut

    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 ?

  5. #5
    Invité régulier
    Homme Profil pro Axel Vanderkluizen
    Inscrit en
    octobre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Nom : Homme Axel Vanderkluizen
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2011
    Messages : 13
    Points : 7
    Points
    7

    Par défaut

    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 +

  6. #6
    Membre habitué
    Homme Profil pro Julien Guiffroy
    Ingénieur d'étude Mainframe
    Inscrit en
    septembre 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Nom : Homme Julien Guiffroy
    Âge : 28
    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 : 106
    Points
    106

    Par défaut

    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

  7. #7
    Invité régulier
    Homme Profil pro Axel Vanderkluizen
    Inscrit en
    octobre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Nom : Homme Axel Vanderkluizen
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2011
    Messages : 13
    Points : 7
    Points
    7

    Par défaut

    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •