IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Cobol Discussion :

[z/OS] Nom du JCL dans un programme COBOL


Sujet :

Cobol

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [z/OS] Nom du JCL dans un programme COBOL
    Bonjour,

    Un collègue me pose la question qui tue...

    D'habitude, j'arrive toujours à lui répondre, mais là... Je sèche...

    Comment retrouver le nom du JCL qui a lancé un programme COBOL ?

    Il ne veut pas utiliser de SYSIN car il me dit qu'il y a possibilité via un ACCEPT ou une fonction.

    Pouvez-vous m'aider ?

    Merci beaucoup

  2. #2
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    Boujour,
    Tu n'as pas ça dans COBOL z/OS. En MVS il y a en général sur les sites un petit pgm Assembleur très simple qui rend le nom du JOB et du STEP en allant chercher l'info en mémoire (dans la TIOT).
    (Nom du JOB, pas du JCL, mais en principe c'est le même pour s'y retrouver).
    Ce n'est pas très orthodoxe parce que l'on ne peut pas utiliser les DSECT Assembleur fournies par IBM, mais ça peut se faire directement en COBOL.
    En fait pour ce cas précis, il y a peu de chances pour que les chaînages utilisés changent avant un bon moment, ce sont les mêmes depuis des lustres et l'exemple COBOL suivant à été testé jusqu'au z/OS 1.10 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
           Identification Division.                                     
           PROGRAM-ID. COBJOB.                                          
          *====================================================*        
          * Adressage de la TIOT MVS pour les informations :   *        
          * JOBNAME, STEPNAME et PROCNAME                      *        
          *====================================================*        
           Data Division.                                               
           Working-Storage Section.                                     
          *========================                                     
           01 WSS.                                                      
              05 WSS-PTR                           Pointer.             
              05 WSS-BIN      Redefines WSS-PTR    pic s9(08) Binary.   
                                                                        
              05  NOM-JOBSTEP.                                          
                  10 JOBNAME           pic  x(08).                      
                  10 STEPNAME          pic  x(08).                      
                  10 PROCNAME          pic  x(08).                      
              05 WSS-HDR               pic  x(55).                      
                                                                        
           Linkage Section.                                             
          *================                                             
           01 LS-DATA.                                                  
              05 LS-ADRESSE            pic s9(08)  Binary.              
              05 LS-PTR       Redefines LS-ADRESSE Pointer.             
              05                       pic x(08).                       
              05 LS-TIOT               Usage    is Pointer.             
              05                       pic x(04).                       
                                                                            
          *===================                                              
           Procedure Division.                                              
          *===================                                              
          * Adresse TCB en +540  : macro Asm IKJTCB LIST=YES                
               Move 540                      to WSS-BIN                     
               Set Address of LS-DATA        to WSS-PTR                     
               Set Address of LS-DATA        to LS-PTR                      
          * Adressage de la TIOT qui commence par le nom du JOB/STEP        
               Set Address of LS-DATA        to LS-TIOT                     
               Move LS-DATA                  to NOM-JOBSTEP                 
          * Restitution                                                     
               Move ALL '='                  to WSS-HDR                     
               Display '*' WSS-HDR                                          
               Display '* JOB : ' JOBNAME ' - STEP : ' STEPNAME PROCNAME    
                       ' le : ' Function Current-date(1:8)                  
               Display '*' WSS-HDR                                          
               Goback.                                                      
           End Program COBJOB.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Homer-ac Voir le message
    Boujour,
    Tu n'as pas ça dans COBOL z/OS. En MVS il y a en général sur les sites un petit pgm Assembleur très simple qui rend le nom du JOB et du STEP en allant chercher l'info en mémoire (dans la TIOT).
    (Nom du JOB, pas du JCL, mais en principe c'est le même pour s'y retrouver).
    Ce n'est pas très orthodoxe parce que l'on ne peut pas utiliser les DSECT Assembleur fournies par IBM, mais ça peut se faire directement en COBOL.

    ...
    Bonjour,

    En gros, c'est plus simple de passer par une SYSIN

  4. #4
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    En gros, c'est plus simple de passer par une SYSIN
    Non. C'est probablement plus simple de demander à l'équipe système de fournir un module Assembleur qui rend ces infos.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Homer-ac Voir le message
    Non. C'est probablement plus simple de demander à l'équipe système de fournir un module Assembleur qui rend ces infos.
    Son problème initial est d'identifié quel JOB a lancé un programme (Présent dans plusieurs JCLs).

    Si chaque job à une SYSIN unique, il pourra identifier d'où il vient (pour des problèmes de clef de reprise en cas d'erreur).

    C'est une solution simple et peu couteuse.

  6. #6
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    D'accord si on peut utiliser une variable (&OJOBNAME. pour TWS par exemple)
    Sinon, il faut maintenir derrière. Si on change un nom de JOB on risque d'oublier qu'il est dans en dur dans un SYSIN.

  7. #7
    Membre averti
    Femme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 179
    Points : 350
    Points
    350
    Par défaut
    personnellement, j'irais dans le sens d'homer-ac, sans problème.
    voici un exemple assembleur..c'est rien à faire que de retrouver le jobname en assembleur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                               
             USING   PSA,0                    
             L       R2,PSATOLD               
             USING   TCB,R2                   
             L       R2,TCBTIO                
             USING   TIOT1,R2                 
             MVC     ZJOBNAME,TIOCNJOB
    avec les dsects qui vont bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ZJOBNAME DS      CL8                
             IHAPSA                     
             IKJTCB DSECT=YES           
             IEFTIOT1

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/07/2010, 15h31
  2. [PRO*COBOL] Appel SQL dans un programme COBOL
    Par JauB dans le forum Interfaces de programmation
    Réponses: 9
    Dernier message: 19/05/2010, 13h33
  3. [PC] Commande Dos dans un programme Cobol
    Par Magoo dans le forum Cobol
    Réponses: 2
    Dernier message: 24/01/2008, 08h37
  4. [z/OS] Appel DB2 dans un programme Cobol
    Par didouda dans le forum Cobol
    Réponses: 10
    Dernier message: 17/08/2007, 09h41
  5. SQL Dynamique dans un programme cobol
    Par genio dans le forum DB2
    Réponses: 14
    Dernier message: 04/12/2006, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo