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

Contribuez Discussion :

2 exemples Enterprise Cobol (z/OS) [Sources]


Sujet :

Contribuez

  1. #1
    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 2 exemples Enterprise Cobol (z/OS)

    Bonjour,
    Nouveau sur ce site, j’ai noté quelques post de la rubrique COBOL qui pourraient être complétés. Ceux-ci étant notés résolus, je propose d’annexer 2 exemples les plus courts possible qui concernent Enterprise COBOL, pour les utilisateurs z/OS spécifiquement donc.

    - A la question : comment récupérer le LRECL d’un fichier QSAM lu avec RECORD 0 ?
    Cette information est en MVS dans un bloc de contrôle : le Data Control Block. Il faut savoir que la description du fichier via la FD COBOL pointe sur ce DCB qui est alloué à l’OPEN. Cette zone n’étant pas directement adressable, il faut ruser. On utilise ici la possibilité de sources imbriqués dans Enterprise COBOL pour adjonction d’un module qui se limite à restituer l’adresse de la donnée communiquée (pointeur = 4 octets).
    NB. Exemple pour faire court, fonctionnellement il conviendrait d’isoler ce type de fonctionnalité testé ici en z/OS 1.5 (le DCB risque peu d’évoluer, au contraire de son extension DCBE, ajoutée depuis MVS ESA).
    --> exemple PJ S1


    - Des difficultés de manipulation de chaînes de données sur des post et que j’ai parfois remarqué ailleurs : les instructions UNSTRING, STRING et INSPECT sont plus puissantes qu’il n’y paraît.
    Pour exemple, un petit programme qui découpe une donnée en mots pour les restituer associés avec leur longueur via un DISPLAY global (via un tableau indexé, accès plus performants que par des indices).
    --> exemple PJ S2


    - Enfin pour deux autres questions :

    - comment vérifier les données non utilisées dans un programme : laisser faire le compilateur. L’option de compilation OPTimize(FULL) permet à Enterprise COBOL de ne pas tenir compte des Picture groupes non utilisées. Pour les repérer, ajouter provisoirement une CBL OPT(FULL),MAP en tête du source et faire un FIND de BLW=XXXXX dans la SYSOUT de compilation. Les zones WSS sont adressées en COBOL II par des BLW = ‘Base Locator Working’ (de 0 à N) ou pour les variables externes, des BLL (Linkage), BLF (File), de 1 à N. Celles-ci sont listées par l’option MAP, ce qui est très pratique pour vérifier les longueurs des données en mémoire réservées par COBOL, particulièrement pour les zones groupes sous définies (0CLnn, ce sont des descriptions Assembleur).

    - comment récupérer le Datasetname d’un fichier MVS. Parce que l’on chaîne les blocs de contrôle MVS et parce qu’en COBOL ce n’est pas si simple. C’est normalement l’Assembleur que l’on utilise pour ça, on est trop ‘système dépendant’.

    Bien entendu je tenterai de répondre de façon plus approfondie pour des demandes d’éclaircissement sur l’un de ces points évoqués.
    Fichiers attachés Fichiers attachés
    • Type de fichier : txt S1.TXT (4,1 Ko, 255 affichages)
    • Type de fichier : txt S2.TXT (3,0 Ko, 157 affichages)

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/03/2014, 17h25
  2. Enterprise COBOL for z/OS V5.1
    Par Luc Orient dans le forum Cobol
    Réponses: 2
    Dernier message: 08/05/2013, 15h23
  3. Demande exemple de programme Cobol IMS/DC
    Par abouich41b dans le forum Cobol
    Réponses: 1
    Dernier message: 24/09/2010, 17h35
  4. Réponses: 3
    Dernier message: 10/12/2008, 16h00
  5. recherche exemple simple pour corba en c++
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 06/05/2002, 12h29

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