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 :

Problème compilation Cobol sous Iseries


Sujet :

Cobol

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème compilation Cobol sous Iseries
    Nous avons un logiciel qui utilise des noms de zone dans un fichier commençant par £. La compilation échoue. Comment faire ??? renommer les noms de zone ??? si oui comment

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Citation Envoyé par Duchemole
    Nous avons un logiciel qui utilise des noms de zone dans un fichier commençant par £
    Les habitudes ont la peau dure, surtout les mauvaises.

    Remède

    1/ Crée un ALIAS de ces zones dans un fichier logique.

    Exemple. Je crée le logique MonLogique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    A          R RCD                       PFILE(MonPFAvec£) 
    A            £ZONE1                    ALIAS(ZONE1)      
    A            ZONE2                                       
    A            £ZONE3                    ALIAS(ZONE3)   
    A            .
    A            .
    A            .
    A          K £ZONE1
    2/ Fais un COPY DD-ALL-FORMATS dans ton programme Cobol :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    COPY DD-ALL-FORMATS OF MonLogique.
    • Le COPY DD copie le nom ALIAS des colonnes du fichier, alors que le COPY DDS copie le nom des colonnes du fichier sans tenir compte du nom alias.
    • La clé sera utilisée dans le programme sous la forme du nom alias, c'est à dire ZONE1 et non pas £ZONE1 dans l'exemple ci-dessus.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse, c'est ce que j'ai fais mais hélas une multitude de fichiers de la sorte d'où ma question.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Alors je crois malheureusement qu'il ne te reste plus qu'à recréer autant de logiques qu'il y a de fichiers concernés par ton application en utilisant les alias. Sélectionne les logiques concernés seulement et pas tous les fichiers et crée par SQL des index plutôt que des LF car les performances seront meilleures (pagesize). Les chemins d'accés seront partagés avec les logiques existants donc pas de souci d'espace disque.

    Il y aurait bien également la solution bâtarde consistant à jouer avec le CCSID de tes sources Cobol de façon à ce que le compilateur accepte le caractère "£". Tu dois avoir affaire à un logiciel US et dans ce cas tu pourrais travailler sous CCSID 37, mais ce n'est certainement pas une méthode à conseiller car même si tu résouds ton pb de compil, tu vas te casser le nez plus tard à coup sûr.

  5. #5
    Membre averti Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Points : 377
    Points
    377
    Par défaut
    tu as essayé le "REPLACING .. BY .."


    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
              COPY  TEST  REPLACING  £TAVAR-1 BY VAR-1
                                                           £TAVAR-2 BY VAR-2
                                                           £TAVAR-3 BY VAR-3
    avec TEST.cpy :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           01 £TAVAR-1.
                         05 £TAVAR-2     pic X.
                         05 £TAVAR-3     pic X.
    devriendrait dans la compile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     01 VAR-1.
                         05 VAR-2     pic X.
                         05 VAR-3     pic X.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    @delphine35,

    Ce que tu proposes ne marchera pas en ILE Cobol mais ça doit je pense marcher sous mainframe.

  7. #7
    Membre averti Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Points : 377
    Points
    377
    Par défaut
    J'ai vu qu'après que s'etait sous Iseries.
    Sous mainframe, je sais pas, mais ca fonctionne très bien sous Unix

    Bon courage, pour trouver

  8. #8
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Moi, j'utiliserais COPY DDSR, elle permet de substituer les caractères spéciaux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     A            £RT_CODE       6S 0  
     A            £RT_NOM       20A    
     A            £RT_NOMA      20A    
     A            £RT_ADRF      20A    
     A            £RT_AFRA      20A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    COPY DDS-ALL-FORMATS OF SPECAR.
    +000004       05  SPECARRD      REDEFINES SPECAR-RECORD.
    +000005           06 £RT_CODE              PIC S9(6).   
    +000006           06 £RT_NOM               PIC X(20).   
    +000007           06 £RT_NOMA              PIC X(20).   
    +000008           06 £RT_ADRF              PIC X(20).   
    +000009           06 £RT_AFRA              PIC X(20).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    COPY DDSR-ALL-FORMATS OF SPECAR.
    +000005           06 NRT-CODE              PIC S9(6).  
    +000006           06 NRT-NOM               PIC X(20).  
    +000007           06 NRT-NOMA              PIC X(20).  
    +000008           06 NRT-ADRF              PIC X(20).  
    +000009           06 NRT-AFRA              PIC X(20).
    The DDSR Option: The DDSR option does everything that the DDS option does. It also copies the internal DDS field names in the specified DDS format, replacing the invalid COBOL characters @, #, $, and _ with the valid COBOL characters A, N, D, and - accordingly. This option also removes any underscores from the ends of the field names.
    Tu peux même utiliser un préfixe avec la clause PREFIX BY "XXX".

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Tu as tout à fait raison Hédhili, c'est LA bonne solution en effet
    Je ne connaissais pas "DDSR".

Discussions similaires

  1. Problème compilation gtkmm sous mac
    Par Zephou dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 25/02/2013, 23h17
  2. Problème compilation fabsf sous VS2003
    Par parisjohn dans le forum C
    Réponses: 6
    Dernier message: 17/11/2009, 14h32
  3. [Unix] Compilation Cobol sous Unix et Linux
    Par rudyhadoux dans le forum Cobol
    Réponses: 2
    Dernier message: 17/10/2008, 19h36
  4. Réponses: 12
    Dernier message: 17/10/2008, 11h40
  5. [DEV] Problème compilation BlueZ sous Mac OS
    Par innosang dans le forum Apple
    Réponses: 12
    Dernier message: 03/11/2007, 01h58

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