?>Array ( [lang] => fr [id] => 189 ) Scénario Cas Limite : Ajout de transactions financières à un référentiel existant - WeAreCAS
table addTable

Scénario Cas Limite : Ajout de transactions financières à un référentiel existant

Scénario de test & Cas d'usage

Contexte Métier

Un système de comptabilité gère un grand livre des transactions dans une table CAS. Chaque fin de journée, un fichier d'ajustements (corrections, nouvelles écritures) doit être ajouté à ce grand livre sans écraser les données existantes. Le processus doit garantir que les nouvelles lignes sont bien ajoutées à la suite des anciennes.
Préparation des Données

Création de deux tables SAS locales : `WORK.GRAND_LIVRE_INITIAL` pour le référentiel et `WORK.AJUSTEMENTS_JOUR` pour les données à ajouter.

Copié !
1DATA WORK.GRAND_LIVRE_INITIAL;
2 LENGTH ID_TX $12. COMPTE $10. DEBIT CREDIT 8.;
3 INFILE DATALINES delimiter=',';
4 INPUT ID_TX$ COMPTE$ DEBIT CREDIT;
5DATALINES;
6TXN_1001,701000,1500,.
7TXN_1002,607000,.,250.50
8TXN_1003,411000,3000,.
9;
10RUN;
11DATA WORK.AJUSTEMENTS_JOUR;
12 LENGTH ID_TX $12. COMPTE $10. DEBIT CREDIT 8.;
13 INFILE DATALINES delimiter=',';
14 INPUT ID_TX$ COMPTE$ DEBIT CREDIT;
15DATALINES;
16TXN_1004,626000,.,85.40
17TXN_1005,701000,500,.
18;
19RUN;

Étapes de réalisation

1
Création de la table CAS initiale `GRAND_LIVRE_CAS` en chargeant la table `WORK.GRAND_LIVRE_INITIAL`.
Copié !
1PROC CAS;
2 TABLE.addTable /
3 caslib='CASUSER',
4 TABLE={name='GRAND_LIVRE_CAS', replace=TRUE},
5 indata='GRAND_LIVRE_INITIAL';
6RUN;
7QUIT;
2
Vérification que la table initiale contient bien 3 lignes.
Copié !
1PROC CAS;
2 SIMPLE.summary / TABLE='GRAND_LIVRE_CAS';
3RUN;
4QUIT;
3
Ajout des nouvelles transactions en utilisant `addTable` avec le paramètre `append=TRUE` pour ne pas écraser les données existantes.
Copié !
1PROC CAS;
2 TABLE.addTable /
3 caslib='CASUSER',
4 TABLE={name='GRAND_LIVRE_CAS', append=TRUE},
5 indata='AJUSTEMENTS_JOUR';
6RUN;
7QUIT;
4
Vérification finale du nombre total de lignes dans la table `GRAND_LIVRE_CAS`. Le total doit être la somme des lignes initiales et des lignes ajoutées (3 + 2 = 5).
Copié !
1PROC CAS;
2 SIMPLE.summary / TABLE='GRAND_LIVRE_CAS';
3RUN;
4QUIT;

Résultat Attendu


Après la deuxième exécution de `addTable`, la table `GRAND_LIVRE_CAS` contient 5 lignes au total. Les 3 transactions initiales sont conservées et les 2 transactions d'ajustement ont été ajoutées à la fin de la table. L'action `simple.summary` confirme que le nombre de lignes est passé de 3 à 5.