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 :

[Unix/Aix-MFSE 5.1] Problème Compilation COBOL 64


Sujet :

Cobol

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 10
    Points
    10
    Par défaut [Unix/Aix-MFSE 5.1] Problème Compilation COBOL 64
    Bonjour,

    Je ne suis pas un spécialiste Cobol, mais nous venons de changer de machine AIX 5.2 et de cobol , nous avons un cobol microfocus avec un compilateur:* Micro Focus Server Express V5.1 revision 000 Compiler

    Un programme qui se compilait sans problème en version 32 bits compilateur Microfocus v4.1.30L-e génère des erreurs de type :
    * 214-S************************************************************** **
    ** VALUE too long for data item or has too many decimal positions
    1090 VALUE +30000.
    Pourriez-vous SVP m'orienter sur une correction ?

    Merci d'avance

  2. #2
    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
    Citation Envoyé par velo83 Voir le message
    Bonjour,

    Je ne suis pas un spécialiste Cobol, mais nous venons de changer de machine AIX 5.2 et de cobol , nous avons un cobol microfocus avec un compilateur:* Micro Focus Server Express V5.1 revision 000 Compiler

    Un programme qui se compilait sans problème en version 32 bits compilateur Microfocus v4.1.30L-e générère des erreurs de type:


    * 214-S************************************************************** **
    ** VALUE too long for data item or has too many decimal positions
    1090 VALUE +30000.

    Pourriez -vous SVP m'orienter sur une correction

    Merci d'avance
    Bonjour.

    Veux-tu mettre ici la partie du programme source qui contient cette erreur ainsi la description des variables sur lesquelles portent ces lignes source.

    Je pense quil y a une déclaration de variable suivie d'une clause VALUE qui ne correspont à la description.

  3. #3
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    +1.

    Il faudrait l'ensemble des description de données - avec les INCLUDE et les COPY si il y en a. Il y a sans doute eu du codage approximatif, qui passait dans un compilateur plus permissif.....

    les description de données(je précise, car nous n'avons semble-t-il pas affaire à un spécialiste), c'est ce que l'on trouve sous les paragraphes WORKING-STORAGE SECTION et LINKAGE SECTION. Toutes les données décrites commencent par un numéro sur 2 chiffres. exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    01  DATE-DU-JOUR.                     
        10 AA-DATE-DU-JOUR      PIC 9(02).
        10 MM-DATE-DU-JOUR      PIC 9(02).
        10 JJ-DATE-DU-JOUR      PIC 9(02).
    ++INCLUDE XSPIPARM                                        
        02  CODTAB                  PIC X(8).                 
        02  SPI2TBV                 PIC X(8) VALUE 'SPI2TBV '.
    INCLUDE XSPIPARM signifie que l'on rajoute tout le contenu du livrable XSPIPARM dans le code(ici une description de données). COPY fait pareil(avec une autre syntaxe).

    Et il faut vérifier l'ensemble.

    Typiquement, si on a un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    77 DONNEE PIC 9(004) VALUE +30000.
    77 DONNEE-PACKEE PIC 9(004)COMP VALUE +30000.
    ...ça risque de ne pas passer dans certains compilateurs plus regardants que d'autres.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  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
    IL y a de fortes chances que le problème n'est pas lié au changement de version du compilateur mais aux options d'installation de cette nouvelle version du compilateur. J'ai déjà eu ce genre d'expérience en z/OS, à chaque fois c'était du à un oubli de reprise des anciennes options par défaut du compilateur. Visiblement si j'en crois ce lien on peut jouer sur pas mal d'otions de compilations avec COBOL Microfocus à l'instar d'Enterprise COBOL z/OS :
    http://www.jatomes.com/Help/MfOptS.Html#TRUNC

    Pour ce type d'erreur il y a gros à parier qu'il s'agit d'une donnée déclarée en binaire et que la même option TRUNC qui existe également en z/OS influe sur les réactions du compilateur.

    Si c'est bien le cas, il faut je pense revoir l'installation du compilateur pour se recaler sur les options de compilation de l'ancienne version, sinon vous risquez un impact rien qu'en recompilant un programme à l'exécution, à la limite avec des différences de fonctionnement sans erreur détectée par le compilateur. A mon avis c'est le support technique du fournisseur qu'il faut contacter ee qui pourra vous indiquer les options d'installation les plus critiques à comparer entre les 2 versions COBOL MICROFOCUS.

  5. #5
    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
    Citation Envoyé par Homer-ac Voir le message
    .... A mon avis c'est le support technique du fournisseur qu'il faut contacter ee qui pourra vous indiquer les options d'installation les plus critiques à comparer entre les 2 versions COBOL MICROFOCUS.
    +1
    Certaines options de compilation ou de génération de code peuvent être activées au coup par coup ou par les changement des options par défaut du compilateur.

    El-slapper a raison aussi sur la permissivité des anciennes versions compilateurs.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    Je remercei beaucoup la communauté.
    Je joins une partie de la description qui se trouve dans une copy appelée par la programme:
    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
    032300 10 LTD-CARACTERE PIC X(001) OCCURS 506.
    032400 05 LTD-CODE-MESSAGE PIC X(004).
    032500*
    032600*
    032700*
    032800 01 LTM-POOL-LIBELLES.
    032900*
    033000 05 LTM-I PIC S9(004) COMP.
    033100 05 LTM-J PIC S9(004) COMP.
    033200 05 LTM-MAX PIC S9(004) COMP
    033300      VALUE +30000.
    033400 05 LTM-FILLER PIC S9(004) COMP.
    033500 05 LTM-TABLE.
    033600 10 LTM-CARACTERE PIC X(001) OCCURS 30000.
    033700*
    033800*
    033900*
    034000 01 LTP-TRAITEMENTS-RUBRIQUES.
    034100*
    034200 05 LTP-I PIC S9(004) COMP.
    034300 05 LTP-J PIC S9(004) COMP.
    034400 05 LTP-MAX PIC S9(004) COMP
    034500 VALUE +200.

  7. #7
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    33200 05 LTM-MAX PIC S9(004) COMP
    033300      VALUE +30000.
    Alors effectivement, c'est ici que ça se plante, celà confirme ce qui a été dit sur la directive TRUNC/NOTRUNC. voir aussi la directive IBMCOMP.

  8. #8
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    explication complémentaire : S9(004), c'est un nombre signé sur 4 caractères. Mais l'option COMP permet de travailler en binaire(soit, en signé, jusqu'à 32767). Le code est donc exact(mais moche) - mais le compilateur ne lui permet pas de marcher proprement.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  9. #9
    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
    C'est donc bien du binaire traité avec l'option NOTRUNC dans l'ancienne version (même fonctionnement que TRUNC(BIN) Enterprise COBOL), option non reconduite à l'install. de la nlle version Microfocus.
    Pour avoir déjà donné sous z/OS avec ce genre de boulette de mauvaise reconduction d'options de compilation ou d'ILE (L.E. sous z/OS) lors de changements de versions, c'est mauvais signe et je conseillerai vivement de vérifier la reconduction des autres options qui peuvent à la limite influer sur l'exécution d'un programme recompilé sans qu'une erreur ne soit détectée à la compilation. Ceci c'est normalement du ressort du support technique du produit.

  10. #10
    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
    Citation Envoyé par Homer-ac Voir le message
    ...options qui peuvent à la limite influer sur l'exécution d'un programme recompilé sans qu'une erreur ne soit détectée à la compilation...
    +1

  11. #11
    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
    Citation Envoyé par el_slapper Voir le message
    ... Le code est donc exact(mais moche) - mais le compilateur ne lui permet pas de marcher proprement.
    Et pourtant jusque là ça marchait bien même avec des valeurs initialies au delà de 9999 sur tous les compilos que j'ai utilsés moyennant certaines directives de compilation surtout quand ils s'agit de compilateurs non-IBM.
    Je suis sûr par exemple que si en MF on utilisait les options VSC2 ou OSVS ça devrait marcher, à part NOTRUNC ???

  12. #12
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Je ne peux pas te répondre, là ou je bosse, je n'ai pas accès au options de compil(tout est géré par Endevor, paramétré par des spécialistes). C'est un plus, dans le sens ou on ne risque pas de mauvaises surprises du genre de celle de l'initiateur du thread.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  13. #13
    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
    Citation Envoyé par el_slapper Voir le message
    ...tout est géré par Endevor, paramétré par des spécialistes
    +1
    J'ai toujours utilisé et conseillé d'utiliser les options de compilation par défaut pour que tout le monde s'y retrouve, surtout ceux qui prennent la suite. Bien entendu à quelques exceptions près auquel cas on utilise au coup par coup les options qui conviennent quitte à mettre ces options ou directives dans le source même en première ligne (PROCESS, etc...).

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

Discussions similaires

  1. problème de compilation cobol
    Par pinfada dans le forum Cobol
    Réponses: 2
    Dernier message: 30/01/2012, 19h00
  2. Problème compilation Cobol sous Iseries
    Par Duchemole dans le forum Cobol
    Réponses: 8
    Dernier message: 01/07/2011, 00h21
  3. Problème de compilation postgres 8.4.1 sous Unix AIX
    Par casasniper dans le forum Installation
    Réponses: 7
    Dernier message: 16/10/2009, 12h58
  4. [Unix-MF] Compilation cobol microfocus sous UNIX
    Par rossfr dans le forum Cobol
    Réponses: 1
    Dernier message: 24/07/2009, 15h21
  5. [Unix] Compilation Cobol sous Unix et Linux
    Par rudyhadoux dans le forum Cobol
    Réponses: 2
    Dernier message: 17/10/2008, 19h36

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