Fichier cobol isam unix > isam window cob m

dali54 Messages postés 5 Statut Membre -  
dali54 Messages postés 5 Statut Membre -
Bonjour,

Je cherche à convertir un fichier cobol isam sous unix vers isam avec windows cobol micro focus.
j'ai écris un prog. mais le résultat ne convient pas
y-a-t-il une spécificité dans la codif ? les 2 fichiers sont lus avec ultraédit, c'est le même programme que je lance sous unix et windows. merci d'avance d'une aide.

j'ai en entrée:

10 006011090000000005390100000000050000000006620000000003454000000000000000000001009680000006195370000002199002008/06/30
10 0060110901000000000000000000000000000000000000000000000000000000000000000000001111100000010460q0000000000002008/06/30

et en sortie:

0~ 0808120958098508081209580985 > { { X9s @{10 006011090000000005390100000000050000000006620000000003454000000000000000000001009680000006195370000002199002008/06/30 @{10 0060110901000000000000000000000000000000000000000000000000000000000000000000001111100000010460q0000000000002008/06/30
A voir également:

2 réponses

cchristian Messages postés 928 Statut Membre 131
 
Bonjour,

Envoie la partie de ton code COBOL relative aux fichiers, je comparerai avec mes programmes .....................
1
dali54 Messages postés 5 Statut Membre
 
Bonsoir,

J'envoie demain le code du bureau.

Merci.
-1
cchristian Messages postés 928 Statut Membre 131 > dali54 Messages postés 5 Statut Membre
 
OK, à demain,
0
dali54 Messages postés 5 Statut Membre > cchristian Messages postés 928 Statut Membre
 
Boujour CChristian,
Comme convenu voici le code du programme.
Les clauses copy concerne l'écriture dans un fichier de la bonne fin de prog.

Merci de l'aide.

Cordialement,

Dali54

IDENTIFICATION DIVISION.
PROGRAM-ID. PTRISAM2.
DATE-WRITTEN. 10:08/2008
***************************************************************
* - TRANSFORMATION EN ISAM D'UN FICHIER ISSU DE UNIX *
* - FICHIER ENTREE : DENTREE *
* - FICHIER SORTIE : DSORTIE *
* *
***************************************************************

/
***********************
ENVIRONMENT DIVISION.
***********************

CONFIGURATION SECTION.
SPECIAL-NAMES.
* TSW-10 IS SW10
SYSOUT IS TERM
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.

FILE-CONTROL.
COPY PLSANO.

SELECT DENTREE ASSIGN TO DENTREE
ORGANIZATION IS LINE SEQUENTIAL.

SELECT DSORTIE ASSIGN TO DSORTIE
ORGANIZATION IS INDEXED
RECORD KEY IS S-CLE
ACCESS MODE IS DYNAMIC.

/
****************
DATA DIVISION.
****************
FILE SECTION.
COPY PLDANO.
****************
*** FICHIER ENTREE : DENTREE ***
FD DENTREE
RECORD 123
LABEL RECORDS ARE STANDARD.
*
01 A-ARTICLE.
02 E-CLE.
06 E-CDSOC-9030 PIC XXX.
06 E-CDCOUT-9030 PIC X(08).
06 E-ETAB-9030 PIC X(03).
02 E-RES-9030.
06 E-MT-INTPREV-9030 PIC S9(10)V99.
06 E-MT-INTNPREV-9030 PIC S9(10)V99.
06 E-MT-EXTPREV-9030 PIC S9(10)V99.
06 E-MT-EXTNPREV-9030 PIC S9(10)V99.
06 E-MT-FORFAIT-9030 PIC S9(10)V99.
06 E-MT-MASSE-9030 PIC S9(10)V99.
06 E-MT-FACTURE-9030 PIC S9(10)V99.
06 E-MT-AUTRES-9030 PIC S9(10)V99.
02 E-DT-TRAIT-9030.
06 E-DT-SA-9030 PIC 9(04).
06 E-DT-FIL1-9030 PIC X.
06 E-DT-MM-9030 PIC 99.
06 E-DT-FIL2-9030 PIC X.
06 E-DT-JJ-9030 PIC 99.
06 E-DT-NBR-9030 PIC X(03).
/
FD DSORTIE
RECORD 123
LABEL RECORD STANDARD.

01 S-ARTICLE.
02 S-CLE.
06 S-CDSOC-9030 PIC XXX.
06 S-CDCOUT-9030 PIC X(08).
06 S-ETAB-9030 PIC X(03).
02 S-RES-9030.
06 S-MT-INTPREV-9030 PIC S9(10)V99.
06 S-MT-INTNPREV-9030 PIC S9(10)V99.
06 S-MT-EXTPREV-9030 PIC S9(10)V99.
06 S-MT-EXTNPREV-9030 PIC S9(10)V99.
06 S-MT-FORFAIT-9030 PIC S9(10)V99.
06 S-MT-MASSE-9030 PIC S9(10)V99.
06 S-MT-FACTURE-9030 PIC S9(10)V99.
06 S-MT-AUTRES-9030 PIC S9(10)V99.
02 S-DT-TRAIT-9030.
06 S-DT-SA-9030 PIC 9(04).
06 S-DT-FIL1-9030 PIC X.
06 S-DT-MM-9030 PIC 99.
06 S-DT-FIL2-9030 PIC X.
06 S-DT-JJ-9030 PIC 99.
06 S-DT-NBR-9030 PIC X(03).

/
**************************
WORKING-STORAGE SECTION.
01 WS-NOMPG PIC X(10) VALUE " PTRISAM2 ".
01 WS-VERS PIC X(33) VALUE "4.1 - REVISION 07 - LE 18/02/2003".
01 F09-LG-ENREG PIC 9(4) COMP VALUE ZERO.
01 CPTLU PIC 9(6) VALUE 0.
01 CD-DATE.
05 CD-YYYYMMDD PIC 9(08).
05 FILLER PIC X(13).
**************************

/
*********************
PROCEDURE DIVISION.
*********************
P10.
COPY PLRANO.
OPEN INPUT DENTREE
OPEN OUTPUT DSORTIE.
P20.
MOVE SPACES TO S-ARTICLE.
READ DENTREE NEXT AT END MOVE HIGH-VALUE TO A-ARTICLE.
IF A-ARTICLE = HIGH-VALUE GO TO P50.
ADD 1 TO CPTLU.
MOVE A-ARTICLE TO S-ARTICLE.
WRITE S-ARTICLE INVALID KEY
DISPLAY "CPTLU PAS OK = " CPTLU " E-CLE: " E-CLE
GO TO P20
NOT INVALID
GO TO P20.


P50.
DISPLAY "CPTLU = " CPTLU
CLOSE DENTREE
CLOSE DSORTIE.
DISPLAY "*** FIN NORMALE DU PROGRAMME PTRISAM2 ***".
COPY PLWANO.
STOP RUN.
-1
cchristian Messages postés 928 Statut Membre 131
 
Bonjour,

Un premier contrôle visuel n'a pas fait ressortir une quelconque iincompatibilité entre ton code et les miens.

En première investigation je te préconise de tester les files-status des ordres 'd'entrée/sortie, cela fera peut-être ressortir le problème ex :
	   SELECT INDEXED-FILE      ASSIGN        TO  INDXOUT,
                         ORGANIZATION       IS  INDEXED,
                              RECORD KEY    IS  CLE,
                         ACCESS   MODE      IS  DYNAMIC,
                              FILE STATUS   IS  FS-INDX.

...............................
 WORKING-STORAGE              SECTION.

 77  FS-INDX                PIC   99      VALUE 0.
 77  FS-TYPE-IO             PIC   X(12)   VALUE SPACES.

.....................................
 

PROCEDURE              DIVISION.

..........................................

     MOVE     'L''OUVERTURE ' TO   FS-TYPE-IO.
     OPEN     OUTPUT          INDEXED-FILE.
     PERFORM  TEST-FS-INDX    THRU FIN-TEST-FS-INDX.
 

.................................
     MOVE     'L''ECRITURE ' TO   FS-TYPE-IO.
     WRITE  ENR-.............     INVALID KEY
            DISPLAY NOM-PGM ' ERREUR D''ECRITURE INDEXED-FILE',
     PERFORM  TEST-FS-INDX    THRU FIN-TEST-FS-INDX.

.....................
TEST-FS-INDX.

     IF FS-INDX              IS NOT = ZERO           DISPLAY
        'ERREUR A ' FS-TYPE-IO 'DU FICHIER INDEXED-FILE FS :',
         FS-INDX,                  UPON CONSOLE,
         CLOSE    SEQUENTIAL-FILE, INDEXED-FILE,
         STOP RUN.

 TEST-FS-INDX.
        EXIT.


Je continue à regarder,
1
dali54 Messages postés 5 Statut Membre
 
OK merci de ta réponse, je vais tester tester avec les status.

et je fais un retour du constat.

Cordialement,

dali54
-1
dali54 Messages postés 5 Statut Membre
 
C'est encore moi,

J'ai fais le test du status, tout à l'air OK ?

la question que je me pose maintenant ! la cause ne viendrait-t-elle pas d'un problème de conversion ascii entre
unix et windows ? je vais creuser de ce coté.

En plus de ça, je n'ai pas les droits sur le serveur windows pour compiler et tester.

Je doits demander à un collègue pour la compile, et à un autre pour lancer le test. C'est la vie ... au mois d'Août

Cordialement.
-1