1.2.1    Principe de génération des DDL

A partir des FDT et des DDM récupérés, il sera possible de générer les DDL correspondant aux nouvelles tables DB2, après accord des DBA du site.

Pour chaque Descripteur et Super Descripteur ADABAS, un index DB2 sera créé, composé d’un ou de plusieurs champs.

Toutes les colonnes DB2 sont par défaut, définies 'not null with default'.

Lorsque des Super Descripteurs sont définis sur des 'substring' d'un seul champ ADABAS, il faut penser à créer une colonne DB2 pour chacun des 'substring' et un index sera défini sur l’ensemble de ces colonnes, dans l'ordre prescrit par le Super Descripteur.

ATTENTION : dans le cas de DESCRIPTEUR UNIQUE NULL SUPPRESS, vérifier que l’unicité des enregistrements avec cette clef est bien prévue dans les programmes.

1.2.2    Traitement des MU et/ou des PE

Les champs multiples et les groupes périodiques ne sont pas supportés par DB2. Pour tout MU et/ou PE d’un fichier ADABAS , il y aura création d’une table DB2 contenant ce champ et ayant pour clef primaire, soit celle du fichier « père », soit celle du fichier « père » + un identifiant supplémentaire, pour éviter le doublonnage. Cet identifiant pourra être un timestamp, donnée utilisable sous NATURAL et sous COBOL. La génération de table supplémentaire pour intégrer le MU et/ou PE ne sera pas systématique : un champ multiple avec 2 occurrences ne donnera pas forcément leu à la création d’une nouvelle table DB2

La relation d'intégrité qui lie table parent et tables enfants est, par défaut, de type "ON DELETE RESTRICT".

Les champs ADABAS groupés ne sont pas repris en tant que tels dans la table DB2 (seuls sont repris les champs qui composent le groupe).

Exemple de tables DB2 résultantes du FDT et DDM décrits plus haut

 

FILE 125  (IMPUTATION-AUX)  -  2 userviews

 

 

 

 

 

T12501 : correspondant au DDM  EL-CYCLE-IMPUTATION-AUX      

 

 

 

 

 

T

L

DB

Name

0

Leng

S

D

Remarks

 

1

A0

NUCYCCPTA

P

10

N

 

NUMéRO DE CYCLE COMP

 

1

A1

NUCYCSEQ

N

2

N

 

NUMéRO SéQUENTIEL DE

 

1

A2

NUINDPAR

P

10

N

 

NUMéRO DE L'INDIVIDU

 

1

A3

NUINDBEN

P

10

N

 

IDENTIFIANT DE L'IND

 

1

A4

IDORG

A

4

N

 

IDENTIFIANT ORGANISM

 

1

A5

DAEFCYC

A

8

N

 

DATE DE CYCLE

 

1

A6

ETACYC

A

1

N

 

CODE éTAT DU CYCLE D

 

1

AY

CODUGF

A

4

N

 

FOREIGN KEY DUE TO R

 

1

AZ

CODCYCCPTA

A

2

N

 

FOREIGN KEY DUE TO R

 

1

B0

DOMGES

A

1

N

 

DOMAINE DE GESTION D

 

1

B1

SSDOMGES

A

1

N

 

SOUS-DOMAINE DE GEST

 

1

B2

INCYCNSOL

A

1

N

 

INDICATEUR DE CYCLE

T12502 : correspondant au DDM  EL-SIR-CYCLE-SOLDE    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

L

DB

Name

0

Leng

S

D

Remarks

 

 

 

 

 

 

 

 

 

 

1

CA

INTRTCYC

A

1

N

D

Indicateur de sélect

 

1

AU

NUCYCCPTA-1

P

10

N

D

NUMéRO DE CYCLE COMP

 

Avec 3 tables index, pour T12501

 

I12501 01

 

 

 

 

 

T

L

DB

Name

0

Leng

S

D

Remarks

 

1

AP

SPINDBENCYC

B

14

N

S

 

*

 

 

Composé des rubriques suivantes

 

 

 

 

 

*

 

 

NUINDBEN(1-6)

 

 

 

 

 

*

 

 

NUCYCCPTA(1-6)

 

 

 

 

 

*

 

 

NUCYCSEQ(1-2)

 

 

 

 

 

                                                                                                                                     

I1250102

 

 

 

 

 

T

L

DB

Name

0

Leng

S

D

Remarks

 

1

AQ

SPCYCCPTA

B

8

N

S

 

*

 

 

Composé des rubriques suivantes

 

 

 

 

 

*

 

 

NUCYCCPTA(1-6)

 

 

 

 

 

*

 

 

NUCYCSEQ(1-2)

 

 

 

 

 

                                                                                                                                     

I1250103

 

 

 

 

 

T

L

DB

Name

0

Leng

S

D

Remarks

 

1

B3

SPCYCNSOL

A

19

N

S

 

*

 

 

Composé des rubriques suivantes

 

 

 

 

 

*

 

 

NUINDBEN(1-6)

 

 

 

 

 

*

 

 

IDORG(1-4)

 

 

 

 

 

*

 

 

NUINDPAR(1-6)

 

 

 

 

 

*

 

 

CODCYCCPTA(1-2)

 

 

 

 

 

*

 

 

INCYCNSOL(1-1)

 

 

 

 

 

                                                                                                                                     

Le fichier ADABAS 125 contient un groupe périodique. Il y aura donc création d’une table DB2 contenant l’ensemble des rubriques composant ce groupe. La couple NUCYCCPTA + NUSEQ est unique, et servira donc de clef pour cette nouvelle table.

 

T12503

 

 

 

 

 

T

L

DB

Name

0

Leng

S

D

Remarks

 

1

A0

NUCYCCPTA

P

10

N

 

NUMéRO DE CYCLE COMP

 

1

A1

NUCYCSEQ

N

2

N

 

NUMéRO SéQUENTIEL DE

 

2

AB

NUIMPX

P

10

N

 

NUMéRO D'IMPUTATION

 

2

AC

NUDOAS

N

2

N

 

NUMéRO DU DOSSIER AS

 

2

AD

MTIMPX

P

7,2

N

 

MONTANT D'UNE IMPUTA

 

Avec son index

I1250301

 

 

 

 

 

T

L

DB

Name

0

Leng

S

D

Remarks

 

1

AQ

SPCYCCPTA

B

8

N

S

 

*

 

 

Composé des rubriques suivantes

 

 

 

 

 

*

 

 

NUCYCCPTA(1-6)

 

 

 

 

 

*

 

 

NUCYCSEQ(1-2)

 

 

 

 

 

Pour la table T12502 : correspondant au DDM  EL-SIR-CYCLE-SOLDE, il y aura création de 2 index (un pour chaque descritpteur).

1.2.3    Exemple de CREATE TABLE

CREATE TABLE T12501

(NUCYCCPTA                                               BIGINT NOT NULL ,

NUCYCSEQ                                                  INTEGER NOT NULL ,

NUINDPAR                                                   BIGINT NOT NULL ,

NUINDBEN                                                   BIGINT NOT NULL ,

IDORG                                                          CHAR(4)  NOT NULL ,

DAEFCYC                                                    CHAR(8)  NOT NULL ,

ETACYC                                                       CHAR(1)  NOT NULL ,

CODUGF                                                      CHAR(4)  NOT NULL ,

CODCYCCPTA                                            CHAR(2)  NOT NULL ,

DOMGES                                                     CHAR(1)  NOT NULL ,

SSDOMGES                                                 CHAR(1)  NOT NULL ,

INCYCNSOL                                                 CHAR(1)  NOT NULL )

 

CREATE TABLE T12502

(INTRTCYC    CHAR(1)         NOT NULL ,

NUCYCCPTA _1                                                               BIGINT NOT NULL )

 

CREATE TABLE T12503

(NUCYCCPTA                                               BIGINT NOT NULL ,

NUCYCSEQ                                                  INTEGER NOT NULL ,

NUIMPX                                                         BIGINT NOT NULL ,

NUDOAS                                                      INTEGER NOT NULL ,

MTIMPX                                                        DECIMAL(9,2)   NOT NULL )

 

1.2.4    Traitement des SP

Les super descripteurs ADABAS donneront lieu à un champ supplémentaire dans la table DB2. Il sera alimenté lors de la mise à plat et sera ensuite géré par trigger.

1.2.5    Identification des DDL sur PC

Les DDL de CREATE TABLE seront générés dans le répertoire

<projet>\CIBLE\DB2\CREATABL

et auront comme nom

CTaaaabb.DDL aaaa : chrono ou mnémonique de la table, bb : chrono ou valeur du short name du MU/PE ayant donné lieu à la création de cette table

Les DDL de DROP TABLE seront générés dans le répertoire

<projet>\CIBLE\DB2\DROPTABL

et auront comme nom

DTaaaabb.DDL aaaa : chrono ou mnémonique de la table, bb : chrono ou valeur du short name du MU/PE ayant donné lieu à la création de cette table

1.2.6    Identification des DDL sur HOST

Les DDL générés seront transférés sur le host dans des PDS équivalents aux directories du PC.

CS.CIBLE.DB2.CREATABL(<ddlname>)

CS.CIBLE.DB2.DROPTABL(<ddlname>)  

1.2.7    Schéma de Principe pour la génération des CREATE et DROP TABLE

 

 

Lire la Suite