[COBOL] Projet - partie 3

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [COBOL] Projet - partie 3

Message  Hana le Mer 07 Mar 2012, 22:41

J'ai un file status 47 qui signifie que j'essaie de lire dans un fichier non ouvert en input ou I-O. Le problème c'est que je l'ai bien ouvert en input, ces instructions sont les premières instructions de mon code:

Code:
OPEN INPUT CLIENTS
    INPUT CPTVUE
    INPUT OPER 
    OUTPUT LOPER

Il y a juste le fichier clients qui coince, les 3 autres passent sans problème. J'ai déjà eu cette erreur dans la partie 1 mais je l'ai résolu sans m'en rendre compte...

Un indice svp Neutral


Dernière édition par Hana le Jeu 15 Mar 2012, 20:54, édité 1 fois

Hana

Nombre de messages : 40
Prénom : Quynh Anh
Date d'inscription : 29/03/2011

Revenir en haut Aller en bas

resolu Re: [COBOL] Projet - partie 3

Message  efo le Jeu 08 Mar 2012, 09:52

Vérifiez la bonne ouverture du fichier clients (voire les autres aussi). Pour cela déclarez des variables pour récupérer les divers file status et demandez leurs valeurs après les open. Cela permettra de voir si les ouvertures se sont correctement faites.

efo

Nombre de messages : 125
Age : 59
Prénom : Eric
Localisation : tournai
Date d'inscription : 08/08/2007

Revenir en haut Aller en bas

resolu Re: [COBOL] Projet - partie 3

Message  Hana le Jeu 08 Mar 2012, 11:16

Code:
DEFINE AIX( NAME(VSECOL.ANDR.TEST.ETUD123.AIXCLI) - 
          RELATE(VSECOL.ANDR.TEST.ETUD123.VSCLI) - 
          NONUNIQUEKEY                          - 
          KEYS(20 5)                            - 
          TRACKS(1,1))                             
DEFINE PATH( NAME(VSECOL.ANDR.TEST.ETUD123.PATHCLI) -
          PATHENTRY(VSECOL.ANDR.TEST.ETUD123.AIXCLI))
BLDINDEX INDATASET(VSECOL.ANDR.TEST.ETUD123.VSCLI) - 
          OUTDATASET(VSECOL.ANDR.TEST.ETUD123.AIXCLI)

Code:
SELECT CLIENTS ASSIGN VSCLI         
  ORGANIZATION IS INDEXED           
  ACCESS MODE IS DYNAMIC           
  RECORD KEY IS MATCLI OF UNCLIENT 
  ALTERNATE KEY IS NOMCLI OF UNCLIENT
  STATUS IS FSCLI                   
.

Code:
77 FSCLI            PIC XX.

Code:
//GO.VSCLI DD DSN=VSECOL.ANDR.TEST.ETUD123.VSCLI,DISP=MOD 
http://GO.VSCLI1 DD DSN=VSECOL.ANDR.TEST.ETUD123.PATHCLI,DISP=MOD

Lors de la compilation :
Code:
RO  11.10.00 JOB03028 $HASP165 ANDR123  ENDED AT PRD1 - ABENDED S722 U0000

Et si j'enlève la clause file status c'est une erreur 3000 avec un fs 47. Encore une fois ça coince uniquement pour le fichier clients.

Hana

Nombre de messages : 40
Prénom : Quynh Anh
Date d'inscription : 29/03/2011

Revenir en haut Aller en bas

resolu Re: [COBOL] Projet - partie 3

Message  efo le Jeu 08 Mar 2012, 18:48

l'abend s722 est un bouclage : cela vaudrait la peine de voir le contenu de résultats si il y en a.
Un start est-il prévu pour atteindre la 1ère identité de clients ? Dans un premier effort de compréhension, je conseille donc de faire une lecture des clients par l'alternate record key et d'en imprimer le contenu. Tant que cette étape ne sera pas résolue, il sera impossible d'avancer. Tout ceci en supposant que le fichier clients est bien chargé.

efo

Nombre de messages : 125
Age : 59
Prénom : Eric
Localisation : tournai
Date d'inscription : 08/08/2007

Revenir en haut Aller en bas

resolu Re: [COBOL] Projet - partie 3

Message  Hana le Mer 14 Mar 2012, 13:06

J'ai encore quelques petits problèmes (les derniers j'espère).

- Partie 3 point 2 : J'utilise //SYSIN DD * et un accept pour récupérer les données. Comment fait-on pour savoir si la fin du fichier instream est atteint ?

- Problème lié à l'utilisation des pictures d'édition:
Code:
01 OPER-EDT.                               
  03                  PIC X(4) VALUE "  ".
  03 TYPEOPER        PIC X(6).           
  03                  PIC X VALUE " ".   
  03 MONTANT          PIC +(9)9.99.     
  03                  PIC X VALUE " ".   
  03 DATEXEC          PIC XXXX/XX/XX.     
J'ai ce genre de résultat:
Code:
CLI05 LAGAFFE              GASTON            BE51000000970101
    CREDIT      +187.14 2012/01/10                         
    DEBIT        +100.50 2012/01/15                         
    CREDIT        +90.50 2012/02/01                         
    CREDIT      +1010.00 2012/02/01                         
    DEBIT        +63.12 2012/03/15                         
    CREDIT        +10.00 2012/03/15                           
Pourquoi j'ai des + partout ? Shocked

Merci beaucoup pour vos réponses, ça m'a énormément aidé.

Hana

Nombre de messages : 40
Prénom : Quynh Anh
Date d'inscription : 29/03/2011

Revenir en haut Aller en bas

resolu Re: [COBOL] Projet - partie 3

Message  Anthoblack le Mer 14 Mar 2012, 19:06

Hana a écrit:Pourquoi j'ai des + partout ? Shocked
Salut,

Tu utilises la mauvaise variable d'édition.
Pour rappel:

  • "Z" : le zéro non significatif est remplacé par un blanc.
  • "+" : le signe apparaît.
  • "-" : signe moins si négatif, espace si positif.
  • "," "/" "0": s'insèrent dans la chaîne. La lettre "b" insère un espace.


Bàt,

Antho

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

resolu Re: [COBOL] Projet - partie 3

Message  Hana le Mer 14 Mar 2012, 19:46

"+" : le signe apparaît.

Donc je devrais avoir des + ou des - à certains endroits non ?

Hana

Nombre de messages : 40
Prénom : Quynh Anh
Date d'inscription : 29/03/2011

Revenir en haut Aller en bas

resolu Re: [COBOL] Projet - partie 3

Message  Anthoblack le Mer 14 Mar 2012, 22:40

Si certaines valeurs sont négatives, alors oui tu devrais avoir des "-" Smile

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

resolu Re: [COBOL] Projet - partie 3

Message  Hana le Mer 14 Mar 2012, 23:13

Je crois avoir trouvé mon erreur: il n'est marqué nul part dans l'énoncé que le montant est un nombre signé x_x

Hana

Nombre de messages : 40
Prénom : Quynh Anh
Date d'inscription : 29/03/2011

Revenir en haut Aller en bas

resolu Re: [COBOL] Projet - partie 3

Message  efo le Jeu 15 Mar 2012, 10:17

Partie 3 point 2 : J'utilise //SYSIN DD * et un accept pour récupérer les données. Comment fait-on pour savoir si la fin du fichier instream est atteint ?

Ce sysin concerne l'étape go : pas visible dans cette instruction jcl.
Avec accept pas de repère de fin de données; donc il faudrait les matcli dans une seule ligne et l'analyser de 5 en 5 puisque matcli a une longueur de 5.
Ou alors traiter le sysin comme les autres fichiers (open, read, close). Il faut savoir que les enregistrements ont dans ce cas une longueur de 80.

efo

Nombre de messages : 125
Age : 59
Prénom : Eric
Localisation : tournai
Date d'inscription : 08/08/2007

Revenir en haut Aller en bas

resolu Re: [COBOL] Projet - partie 3

Message  Contenu sponsorisé Aujourd'hui à 20:39


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum