Projet Cobol - partie 2

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

Projet Cobol - partie 2

Message  LSV le Dim 13 Fév 2011, 18:47

Bonjour tout le monde Smile

Je suis en train de travailler sur le projet de cobol, et je dois avouer que je suis complètement bloqué. Je ne comprends absolument pas ce que l'on doit faire pour cette partie 2...


Code:
Vous allez implémenter toutes les listes de versements sur les comptes dans un seul fichier à
organisation relative : VSVERS

Chaque enregistrement de ce fichier représentera un élément d'une liste de versements d'un
compte. L'une de ses zones devra donc jouer le rôle de pointeur vers le versement suivant sur
ce même compte.

Chaque enregistrement = un versement donc. Mais pourquoi "liste"? Comment représenter ces listes?
Faut-il "simplement" donner le "numero d'ordre" dans le fichier indexé du prochain versement ?

Les données récupérées lors de la lecture sont:

(Compte, Montant, Emission et Date)

BE51123456789002 200 10000 20100320
BE51123456789002 200 09551 20100615
BE51123456789002 200 10478 20100925
BE51000000017600 500 11500 20101021
BE51006123321020 870 11805 20101220
BE51123456789002 270 11828 20101228
BE51123456789002 500 12210 20110110
BE51000000970101 880 12210 20110110
BE51006123321020 200 12155 20110203
BE51123456789002 180 12099 20110205

Dans cet exemple, devrait-on donc enregistre quelque chose du genre


montant, emission, date, nombrePart, pointeurSuivant
200 10000 20100320 000001,941 1
200 09551 20100615 000002,033 2
200 10478 20100925 000001,853 5
500 11500 20101021 000004,221 7
870 11805 20101220 000007,155 8
270 11828 20101228 000002,216 6
500 12210 20110110 000003,975 9
880 12210 20110110 000006,997 0
200 12155 20110203 000001,597 0
180 12099 20110205 000001,444 0


Code:
 Pour faciliter la gestion des fichiers VSVERS et VSEPARGN, nous vous
conseillons (il n'y a pas d'obligation) de gérer vos différentes listes comme des piles : tout
nouveau versement sur un compte se met donc en tête de la liste (pile) correspondante.
Encore une fois, je ne comprends pas comment utiliser une liste en cobol..


Code:
En plus du bon respect d'un fichier relatif (pas de zone inutile), un enregistrement de ce fichier
ne pourra contenir ni COMPTE, ni MATCLI. Par contre il devra au moins contenir le nombre
de parts (avec 3 décimales, arrondi) acquises lors de ce versement et votre représentation du
pointeur vers le versement suivant.
Si, lors de la création de notre fichier, on n'enregistre pas le numéro de compte, comment ajouter ajouter les parts par la suite?
Ou alors on le fait lors de la lecture, et on "oublie" le compte ?


Enfin bref, je ne suis malheureusement pas le seul bloqué sur ce point, j'ai essayé de retourner ca dans tous les sens, mais je ne comprend vraiment pas...

Merci d'avance a ceux qui pourront m'aider Smile

LSV

Nombre de messages : 638
Age : 27
Prénom : Jérome
Statut : Diplomé 2013
Localisation : Anderlecht
Date d'inscription : 24/09/2007

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  efo le Dim 13 Fév 2011, 19:28

Le fichier relatif simule un ensemble de listes : il pourrait y en avoir autant qu'il n'y a de comptes epargne-pension. Une liste est donc constituée des versements sur un même compte épargne-pension.
Comment implémenter ces listes en Cobol ? Dans un fichier relatif où les numéros relatifs associés à chaque enregistrement (un versement) doivent servir de pointeurs (chaînage) entre les versements sur un même compte. Si les liens sont bien faits, d'un versement sur un compte, on doit pouvoir passer directement au versement précédent (dans le temps) sur ce même compte.
Comment accéder à une liste de versements dans le fichier relatif ? Il faut connaître la tête de liste des versements sur le compte : cf. VSEPARGN.

efo

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

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  LSV le Dim 13 Fév 2011, 20:16

Si je comprend bien:

- la zone TETEV du fichier VSEPARGN contient le numéro d'ordre du premier versement de ce compte épargne
- le fichier relatif VSVERS contient TOUS les versement qui ont été fait, et chaque enregistrement contient : (montant, emission, date) numéro d'ordre du prochain versement", nombre de parts, mais ces versements ne sont pas dans l'ordre
C'est bien cela?

Alors, ceci serait correct?

Compte epargne enregistrés:
compte, numero client, nombre de part, numéro premier versement

BE51000000017600 CLI01 000005,159 4
BE51000000970101 CLI05 000194,147 8
BE51006123321020 CLI55 000015,111 5
BE51006123322535 CLI88 000310,352 0
BE51123456789002 CLI11 000250,000 1


versement enregistrés:
compte, montant, emission, date, nombrePart, numero versement suivant (0= pas de versement suivant)

(certaines informations ne sont pas utiles mais je les met pour le moment)
BE51123456789002 200 10000 20100320 000001,941 2
BE51123456789002 200 09551 20100615 000002,033 3
BE51123456789002 200 10478 20100925 000001,853 6
BE51000000017600 500 11500 20101021 000004,221 8
BE51006123321020 870 11805 20101220 000007,155 9
BE51123456789002 270 11828 20101228 000002,216 7
BE51123456789002 500 12210 20110110 000003,975 10
BE51000000970101 880 12210 20110110 000006,997 0
BE51006123321020 200 12155 20110203 000001,597 0
BE51123456789002 180 12099 20110205 000001,444 0


Est-ce que cela semble correct?



LSV

Nombre de messages : 638
Age : 27
Prénom : Jérome
Statut : Diplomé 2013
Localisation : Anderlecht
Date d'inscription : 24/09/2007

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  efo le Dim 13 Fév 2011, 21:49

C'est une des possibilités. A voir les valeurs des 'pointeurs', tu fais les ajouts à la fin. Avantage : tu gardes l'ordre chronologique des versements, du plus ancien au plus récent.
On peut aussi les mettre du plus récent au plus ancien, ce qui revient à empiler. C'est au choix.

efo

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

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  LSV le Lun 14 Fév 2011, 14:50

J'ai remarqué que je ne vous avais pas fourni les RC de la partie 2 au laboratoire, je vous ai donc envoyé un email a votre adresse @heb pour vous les fournir Smile

LSV

Nombre de messages : 638
Age : 27
Prénom : Jérome
Statut : Diplomé 2013
Localisation : Anderlecht
Date d'inscription : 24/09/2007

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  efo le Mar 15 Fév 2011, 10:17

J'ai remarqué que je ne vous avais pas fourni les RC de la partie 2 au laboratoire, je vous ai donc envoyé un email a votre adresse @heb pour vous les fournir

ok. Reçu

efo

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

Revenir en haut Aller en bas

Error JCL

Message  Stomox le Mar 15 Fév 2011, 23:55

Bonjour,

Je profite du topic pour poser aussi une petite question.
En fait, je pense avoir bien cerné la logique mais moi j'ai une erreur au niveau du JCL et j'ai beau lire et relire mon JCL, je ne comprends pas d'ou ca vient.

J'ai donc une erreur 467 (si ca peut aider) et voici mon JCL:

Spoiler:
Code:
//ANDRXXX JOB ANDRXXX,'Nom',CLASS=P,MSGCLASS=Z,
// MSGLEVEL=(2,0),NOTIFY=ROSAAOT
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD  SYSOUT=Z
//SYSIN    DD  *
  DELETE VSECOL.ANDR.TEST.ANDRXXX.VSVERS
/*
//STEP2 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=Z
//SYSIN DD *
      DEFINE CLUSTER ( NAME(VSECOL.ANDR.TEST.ANDRXXX.VSVERS)  -
                      NUMBERED                                    -
                      RECORDSIZE(29 29)                        -
                      TRACKS(1,1) )
/*
//CBL1 EXEC IGYWCLG
http://COBOL.SYSIN DD *

        CODE COBOL

/*
http://GO.VERSEMENT DD DSN=ANDR.RESIDN20.EFOJNR.VERSE,DISP=SHR
http://GO.VSVERS DD DSN=VSECOL.ANDR.TEST.ANDRXXX.VSVERS,DISP=MOD
http://GO.VSEPARGN DD DSN=VSECOL.ANDR.TEST.ANDRXXX.VSEPARGN,DISP=MOD
//

Si quelqu'un a une solution, je suis preneur ^^"

Merci

Stomox

Nombre de messages : 16
Age : 27
Prénom : Arnaud
Statut : Étudiant
Date d'inscription : 01/01/2010

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  LSV le Mer 16 Fév 2011, 13:27

VSECOL.ANDR.TEST.ANDRXXX.VSVERS

devrait être

VSECOL.ANDR.TEST.ETUDXXX.VSVERS

(et pareil pour les autres)

peut être que ca vient de la...

LSV

Nombre de messages : 638
Age : 27
Prénom : Jérome
Statut : Diplomé 2013
Localisation : Anderlecht
Date d'inscription : 24/09/2007

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  Stomox le Mer 16 Fév 2011, 16:33

mmmh, apparemment ca ne change rien (j'avais d'ailleurs déjà fait la partie 1 avec ANDR et ca n'avait pas posé de probleme).

Merci qd meme

EDIT: Halleluia - J'ai trouvé. Apparemment c'etait la ligne GO.VERSEMENTS ... qui posait probleme ...
Est-ce qu'on aurait un mauvais DSN pour le fichier versement ou bien mon nom qui est trop long ? je vais poursuivre mon investigation

EDIT2: C'etait bien mon nom qui etait trop long, donc si vous avez aussi un souci, pas de nom plus long que 8 caractères dans le JCL (corrigez moi si je dis une bétise)

Stomox

Nombre de messages : 16
Age : 27
Prénom : Arnaud
Statut : Étudiant
Date d'inscription : 01/01/2010

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  Terminatour le Mer 16 Fév 2011, 17:58

Pour le lancement de mon programme cobol, tout s'exécute correctement, que des return 0 mais pour l'étape COBOL, il me met un return code de 4.
Je regarde de plus près, et il me dit que 2 sequence error ont été trouvé dans le programme alors que l'étape GO et LKED se sont bien passés.
Je suis concerné par ces erreurs ?

Si oui, comment les déceler, le mainframe m'affirme leur existence sans préciser où elles sont cachées !

Terminatour

Nombre de messages : 344
Age : 25
Prénom : Louis-Julien
Statut : statutaire
Localisation : localisée
Date d'inscription : 04/10/2009

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  Stomox le Mer 16 Fév 2011, 18:45

pareil pour moi

Stomox

Nombre de messages : 16
Age : 27
Prénom : Arnaud
Statut : Étudiant
Date d'inscription : 01/01/2010

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  efo le Jeu 17 Fév 2011, 12:17

Pour le lancement de mon programme cobol, tout s'exécute correctement, que des return 0 mais pour l'étape COBOL, il me met un return code de 4.
Je regarde de plus près, et il me dit que 2 sequence error ont été trouvé dans le programme alors que l'étape GO et LKED se sont bien passés.
Je suis concerné par ces erreurs ?

Si oui, comment les déceler, le mainframe m'affirme leur existence sans préciser où elles sont cachées !.

Pas grave. Le compilateur n'aime pas les lignes blanches dans le code. Faites-en des lignes de commentaires et les warning disparaîtront.

efo

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

Revenir en haut Aller en bas

Re: Projet Cobol - partie 2

Message  Contenu sponsorisé Aujourd'hui à 10:51


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