I-2.3.2. AGL minimaliste
par , 01/04/2020 à 10h40 (390 Affichages)
■ AVANT-PROPOSAPL-AML est une monographie fragmentée en plusieurs billets pour des raisons de volume.
Un billet SYNOPSIS et un billet SOMMAIRE agrègent tous les billets du blog via des liens hypertextes.
■ ■ ■ SOMMAIRE DU BILLET ■ ■ ■
AVANT-PROPOS
- Les shells d'administration
- Installation de l’applicatif
- Sauvegarde de l’application pour exportation
- Sauvegarde de l’application
- Restauration de l’application
- Sauvegarde du system
- Les écrans d'administration
- Administration du system catalog (Dictionnaire des Données)
- Administration des développements
- Les éditions d'administration
- Arborescence
- Références croisées TABLES/ATTRIBUTS
- Liste des tables
- Liste des écrans
- Liste des états
- Liste chronologique des fonctionnalités (écrans-éditions)
- Les utilitaires
- La documentation développeur
- L’application est un tout
- Chaque programme est un tout
- Une documentation à postériori
- Un outil de formation
- Un cahier des charges atypique
- Des diaporamas PowerPoint
Atelier de Génie Logiciel (AGL)
Les AGL couvrent un champ au-delà des Environnements de Développement Intégrés. APL-AML s’est progressivement inventé son propre AGL visant à :
- Optimiser les développements :
- Billet « Règles de nommage »
- Billet « Règles de développement »
- Billet « Méthodologie de programmation LCP »
- Billet « La programmation mentale »
- Billet « Environnement de Développement Intégré (EDI) »
- Gérer les développements
1. Les shells d'administration
■ Installation de l’applicatif
Noter toutes les informations nécessaires pour installer l’applicatif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 ┌INSTALLATION D'Ex&Co──────────────────────────────────────────────────────────┐ │ │ │ │ ├> 1. Créer le groupe "concours" dans /etc/group │ │ │ │ │ ├> 2. Créer le logname "concours" (logname du DBA) │ │ │ │ groupe : concours │ │ Répertoire d'accueil : /concours/concours/isql │ │ │ │ │ ├> 3. Créer les lognames utilisateurs │ │ │ │ groupe : concours │ │ Répertoire d'accueil : /concours/concours/frm │ │ │ │ │ ├> 4. Créer l'arborescence : │ │ │ │ ┌─┐ ┌────────────┐ ┌────────────┐ │ │ │R├───┤concours ├─┬─┤concours │ -> Applicatif Ex&Co │ │ │O│ └────────────┘ │ └────────────┘ │ │ │O│ │ ┌────────────┐ │ │ │T│ └─┤concours.dbs│ -> Base de données Ex&Co │ │ └─┘ └────────────┘ │ │ │ │ # cd / │ │ # chmod 770 concours │ │ # chown concours concours │ │ # chgrp concours concours │ │ # cd /concours │ │ # chmod 770 concours concours.dbs │ │ # chown concours concours concours.dbs │ │ # chgrp concours concours concours.dbs │ │ │ │ NB : Voir plus loin l'arborescence complète générée │ │ │ │ │ ├> 5. Importer l'applicatif (cartouche "Applicatif "Ex&Co") │ │ │ │ # cd /concours/concours │ │ # cpio -idvBum < /dev/rmt0 │ │ # chown -R concours * │ │ # chgrp -R concours * │ │ │ │ │ ├> 5. Importer la Base de Données (cartouche "DATA BASE") │ │ │ │ # cd /concours/concours.dbs │ │ # cpio -idvBum < /dev/rmt0 │ │ # chmod 660 * │ │ # chgrp informix * │ │ # chgrp informix * │ │ │ │ │ ├> 6. Editer le .profile des utilisateurs dans /concours/concours/frm pour │ │ changer les lognames existants par les lognames créés. │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
■ Sauvegarde de l’application pour exportation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110 # save.concours clear cd /concours echo "Sauvegarde de l'application : Ex&Co" echo "" echo "`pwd`" echo "" echo "Mettre une cartouche dans le streamer puis taper une touche quand prêt : \c" read REPONSE echo "" # clean if test -f ./concours/shell_ec/*.prt then rm ./concours/shell_ec/*.prt fi if test -f ./concours/shell_ec/*.sql then rm ./concours/shell_ec/*.sql fi if test -f ./concours/shell_ec/*.out then rm ./concours/shell_ec/*.out fi if test -f ./concours/shell_1/*.prt then rm ./concours/shell_1/*.prt fi if test -f ./concours/shell_1/*.sql then rm ./concours/shell_1/*.sql fi if test -f ./concours/shell_1/*.out then rm ./concours/shell_1/*.out fi if test -f ./concours/shell_2/*.prt then rm ./concours/shell_2/*.prt fi if test -f ./concours/shell_2/*.sql then rm ./concours/shell_2/*.sql fi if test -f ./concours/shell_2/*.out then rm ./concours/shell_2/*.out fi if test -f ./concours/shell_mj/*.prt then rm ./concours/shell_mj/*.prt fi if test -f ./concours/shell_mj/*.sql then rm ./concours/shell_mj/*.sql fi if test -f ./concours/shell_mj/*.out then rm ./concours/shell_mj/*.out fi if test -f ./concours/shell_1_n/*.prt then rm ./concours/shell_1_n/*.prt fi if test -f ./concours/shell_1_n/*.sql then rm ./concours/shell_1_n/*.sql fi if test -f ./concours/shell_1_n/*.out then rm ./concours/shell_1_n/*.out fi if test -f ./concours/shell_2_n/*.prt then rm ./concours/shell_2_n/*.prt fi if test -f ./concours/shell_2_n/*.sql then rm ./concours/shell_2_n/*.sql fi if test -f ./concours/shell_2_n/*.out then rm ./concours/shell_2_n/*.out fi if test -f ./concours/shell_mj_n/*.prt then rm ./concours/shell_mj_n/*.prt fi if test -f ./concours/shell_mj_n/*.sql then rm ./concours/shell_mj_n/*.sql fi if test -f ./concours/shell_mj_n/*.out then rm ./concours/shell_mj_n/*.out fi find . > concours.bak find . | cpio -ocvB > /dev/rmt0 # clear echo "La sauvegarde est terminée" echo "" echo "La liste des fichiers sauvegardés est dans concours.bak" echo ""
■ Sauvegarde de l’application
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 clear echo "Sauvegarde de l'application Ex&Co" echo "" echo "Mettre une cartouche dans le streamer puis taper une touche quand prêt : \c" read REPONSE echo "" # clean cd /concours/concours find . | cpio -ovB > /dev/rmt0 # clear echo "La sauvegarde est terminée" echo ""
■ Restauration de l’application
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 # restore.concours cd /concours cpio -icvBum 'concours.dbs/*' < /dev/rmt0 # cpio -icvBum 'concours/ace_2/HF_ADMIS_W.ace' < /dev/rmt0
■ Sauvegarde du system
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 echo "SAUVEGARDE DU SYSTEME (Volume groupe : rootvg)" echo "DEBUT LE : `date +%d/%m/%Y` a : `date +%H:%M`" tctl -f /dev/rmt0 rewind # test presence bande if [ $? -ne 0 ] then echo "PAS DE BANDE MONTEE ... ABORT DE LA SAUVEGARDE !!" exit 1 fi mksysb -m /dev/rmt0 if [ $? -ne 0 ] then echo "ERREUR LORS DE LA SAUVEGARDE DU SYSTEME !!!" else tctl -f /dev/rmt0 offline # ejection automatique de la bande echo "\nFIN DE SAUVEGARDE SYSTEME LE : `date +%d/%m/%Y` a : `date +%H:%M`" fi
2. Les écrans d'administration
■ Dictionnaire des Données
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291 4 tables sont ajoutées aux tables system de à la Base de Données pour gérer la Base de Données elle-même : Doc (documentation développeur) views : per, ace, shl, sql) Cette table permet de connaître l’impact d’une éventuelle modificaton sur une donnée, de savoir immédiatement sur quels fichiers intervenir (per, ace, shl ou sql) pour rester cohérant. ut (unités de traitement) sys_c (colonnes) sys_t (tables) {------------------------------------------------------------------------------} { create_bdd } {------------------------------------------------------------------------------} { sql de création de toutes les tables de la BDD "concours" Certains attributs ont une typologie commune quelque soit la table. Ces attributs sont codifiés par un radical "typologie" suivi du nom de la table. Les typologies retenues sont les suivantes : +------------+----+------------------------------------------------------------+ | Numéro | n_ | l'attribut "n_pim" se lit "Numéro de la table pim" | | Code | c_ | l'attribut "c_ec" se lit "Code de la table ec" | | Type | t_ | etc. | | Session | s_ | | | Libellé | l_ | | | Mnémonique | m_ | | +------------+----+------------------------------------------------------------+ } {------------------------------------------------------------------------------} { sql de précaution en cas de run accidentel } {------------------------------------------------------------------------------} select rien from rien; {------------------------------------------------------------------------------} { doc (documentation développeur - views : per, ace, shl, sql) --------------} create table doc ( processus char(8), c_ut char(20), suffixe char(1), cd char(8), wc smallint, ls char(20), flag char(1) ) ; grant all on doc to osmose; grant select on doc to public; grant update on doc to public; grant insert on doc to public; { sys_c (colonnes) ------------------------------------------------------------} create table sys_c ( colname char(18), tabid integer, colno smallint, coltype smallint, collength smallint, type_length char(30), attention char(1), collib_0 char(38), collib_1 char(77), collib_2 char(77), collib_3 char(77), collib_4 char(77), collib_5 char(77) ) ; grant all on sys_c to public; { sys_t (tables) --------------------------------------------------------------} create table sys_t ( tabid integer, tabname char(18), tabname_2 char(18), tablibe char(60) ) ; grant all on sys_t to public; { ut (unités de traitement) ------------------------------------------------} create table ut ( processus char(28), c_ut char(20), objet char(76), objet_1 char(76), objet_2 char(76), objet_3 char(76), objet_4 char(76), objet_5 char(76) ) ; grant all on ut to osmose; grant select on ut to public; grant update on ut to public; grant insert on ut to public; {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} { create_idx } {------------------------------------------------------------------------------} { sql de précaution en cas de run accidentel } {------------------------------------------------------------------------------} select rien from rien; {------------------------------------------------------------------------------} { doc (documentation OSMOSE : views per, ace, shl, sql) ---------------------} lock table doc in exclusive mode; { drop index doc_tri; drop index doc_c_ut; } create unique cluster index doc_tri on doc (cd, ls); alter index doc_tri to cluster; create index doc_c_ut on doc (c_ut); unlock table doc; { sys_c (colonnes) ------------------------------------------------------------} lock table sys_c in exclusive mode; { drop index sys_c_cle; drop index sys_c_tabid; drop index sys_c_colname; } create unique cluster index sys_c_cle on sys_c (tabid, colno); alter index sys_c_cle to cluster; create index sys_c_tabid on sys_c (tabid); create index sys_c_colname on sys_c (colname); unlock table sys_c; { sys_t (tables) --------------------------------------------------------------} lock table sys_t in exclusive mode; { drop index sys_t_tabname; drop index sys_t_tabid; } create unique cluster index sys_t_tabname on sys_t (tabname); alter index sys_t_tabname to cluster; create unique index sys_t_tabid on sys_t (tabid); unlock table sys_t; { ut (unités de traitement) ------------------------------------------------} lock table ut in exclusive mode; { drop index ut_c_ut; } create unique cluster index ut_c_ut on ut (c_ut); alter index ut_c_ut to cluster; unlock table ut; {------------------------------------------------------------------------------} {------------------------------------------------------------------------------} { view_doc : 4 views } {------------------------------------------------------------------------------} { drop view per; drop view ace; drop view shl; drop view sql; } {-----------------------------------------------------------------------------} { drop view per; } {-----------------------------------------------------------------------------} create view per as select doc.* from doc where doc.cd = "isql"; revoke all on per from public; grant select on per to public; grant update on per to public; grant insert on per to public; grant delete on per to public; {-----------------------------------------------------------------------------} { drop view ace; } {-----------------------------------------------------------------------------} create view ace as select doc.* from doc where doc.cd = "ace" or doc.cd = "ace_0" or doc.cd = "ace_1" or doc.cd = "ace_2" or doc.cd = "ace_3" or doc.cd = "ace_4" or doc.cd = "ace_9"; revoke all on ace from public; grant select on ace to public; grant update on ace to public; grant insert on ace to public; grant delete on ace to public; {-----------------------------------------------------------------------------} { drop view shl; } {-----------------------------------------------------------------------------} create view shl as select doc.* from doc where doc.cd = "shell" or doc.cd = "shell_0" or doc.cd = "shell_1" or doc.cd = "shell_2" or doc.cd = "shell_3" or doc.cd = "shell_4" or doc.cd = "shell_9"; revoke all on shl from public; grant select on shl to public; grant update on shl to public; grant insert on shl to public; grant delete on shl to public; {-----------------------------------------------------------------------------} { drop view sql; } {-----------------------------------------------------------------------------} create view sql as select doc.* from doc where doc.cd = "sql" or doc.cd = "sql_0" or doc.cd = "sql_1" or doc.cd = "sql_2" or doc.cd = "sql_3" or doc.cd = "sql_4" or doc.cd = "sql_9"; revoke all on sql from public; grant select on sql to public; grant update on sql to public; grant insert on sql to public; grant delete on sql to public; {-----------------------------------------------------------------------------}
■ Administration du system catalogue (Dictionnaire des Données)
C’est bien connu, les cordonniers sont toujours les plus mal chaussés. Le développement des applicatifs est toujours prioritaire et l’on repousse à plus tard, on néglige de consacrer du temps pour habiller ses développements, pour se créer des outils de gestion pourtant simples à réaliser en exploitant les tables système du SGBD.
Les tables system sont une source d’informations très intéressantes et fiables. Ce serait dommage de ne pas les exploiter. Il suffit de leur adjoindre quelques tables pour pouvoir se créer un petit gestionnaire des données sans prétention mais très utile.
Ci-après, un écran exploitant les tables system et permettant de gérer un Dictionnaire des Données simple mais suffisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 ┌─N°───┬─Table──────────────┬Type─┐ ┌Colonnes┬Rangées─┬Longueur┬─Owner────┐ ├[ ]┴[ ]┴─[ ]─┘ └─[ ]─┴[ ]┴─[ ]─┴[ ]┤ │ │ │ ┌Grantor──┬grantee───┬tabauth──┐ │ │ [ ]┴[ ]┴[ ]┘ │ └──────────────────────────────────────────────────────────────────────────────┘ ┌─N°───┬─Colonnes───────────┬Type┐┌Long.┐┌Type + Longueur──────────────────┬─!─┐ ├[ ]┴[ ]┴[ ][ ][ ]┴[ ]┤ │ [ ]│ │[ ]│ │[ ]│ │[ ]│ │[ ]│ │[ ]│ └──────────────────────────────────────────────────────────────────────────────┘ ┌──────┬─Index──────────────┬Type─┬─Tri─┬─N°1─┬─N°2─┬─N°3─┬─N°4─┬──────────────┐ │ └[ ]┴─[ ]─┴─[ ]─┤[ ]│[ ]│[ ]│[ ]│ │ │ │ │ │ │ │ │ │ │[ ]│[ ]│[ ]│[ ]│ │ └───────────────────────────────────────┴─N°5─┴─N°6─┴─N°7─┴─N°8─┴──────────────┘
■ Administration des développements
Une table avec quatre views, cela suffit pour gérer les développements :
- les écrans
- les éditions
- les shells
- les requêtes SQL
Ci-après, un écran permettant de visualiser et actualiser tous les composants de chaque fonctionnalité (Unité de Traitement) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 ┌[ ] [ ]───────────────────────────────────────────┐ │[ ]│ │[ ]│ │[ ]│ │[ ]│ │[ ]│ │[ ]│ ├──────────────────────────────────────────────────────────────────────────────┤ │┌Processus─┐┌Répertoire┐┌suffixe┐┌per────────────────────────────┐┌wc────────┐│ │└[ ]┘└[ ]┘└──[ ]──┘└[ ]┘└[ ]┘│ ├──────────────────────────────────────────────────────────────────────────────┤ │┌Processus─┐┌Répertoire┐┌suffixe┐┌ace────────────────────────────┐┌wc────────┐│ │└[ ]┘└[ ]┘└──[ ]──┘└[ ]┘└[ ]┘│ ├──────────────────────────────────────────────────────────────────────────────┤ │┌Processus─┐┌Répertoire┐┌suffixe┐┌shell──────────────────────────┐┌wc────────┐│ │└[ ]┘└[ ]┘└──[ ]──┘└[ ]┘└[ ]┘│ ├──────────────────────────────────────────────────────────────────────────────┤ │┌Processus─┐┌Répertoire┐┌suffixe┐┌sql────────────────────────────┐┌wc────────┐│ │└[ ]┘└[ ]┘└──[ ]──┘└[ ]┘└[ ]┘│ └──────────────────────────────────────────────────────────────────────────────┘
3. Les éditions d'administration
■ Arborescence
Matérialiser l’arborescence de l’application n’est pas impératif. C’est juste un outil simple de communication voire d’information quand on peut quantifier le nombre de lignes que représentent les développements.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 ┌───────────────────────────────┤Le 31/07/2007├───────────────────────────────┐ │ │ │ │ │ ┌─┐ ┌────────────┐ ┌────────────┐ ┌Répertoires─┐ ┌Lignes──────┐ │ │ │R├───┤concours ├─┬─┤concours ├───┤ace │ 13 │ 3.718 │ │ │ │O│ └────────────┘ │ └────────────┘ │ace_1 │ 60 │ 44.950 │ │ │ │O│ │ ┌────────────┐ │ace_2 │ 71 │ 49.376 │ │ │ │T│ └─┤concours.dbs│ │ace_mj │ 20 │ 12.894 │ │ │ └─┘ └────────────┘ │ace_1_n │ 7 │ 6.180 │ │ │ │ace_2_n │ 24 │ 22.526 │ │ │ │ace_mj_n │ 10 │ 7.834 │ │ │ │ascii │ 66 │ 251 │ │ │ │bull │ 115 │ 27.149 │ │ │ │doc │ 14 │ 2.802 │ │ │ │man │ 20 │ 18.719 │ │ │ │file │ 106 │ 7.178 │ │ │ │frm │ │ │ │ │ │ftp │ │ │ │ │ │isql │ 445 │ 61.536 │ │ │ │per │ 900 │ 969.648 │ │ │ │prg │ │ │ │ │ │shell │ 29 │ 2.430 │ │ │ │shell_1 │ 75 │ 12.207 │ │ │ │shell_2 │ 83 │ 15.054 │ │ │ │shell_mj │ 24 │ 4.272 │ │ │ │shell_1_n │ 7 │ 1.050 │ │ │ │shell_2_n │ 24 │ 4.554 │ │ │ │shell_mj_n │ 9 │ 1.748 │ │ │ │sql │ │ │ │ │ │sql_1 │ 33 │ 1.078 │ │ │ │sql_2 │ 26 │ 2.544 │ │ │ │sql_mj │ 11 │ 576 │ │ │ │sql_1_n │ │ │ │ │ │sql_2_n │ 5 │ 761 │ │ │ │sql_mj_n │ 2 │ 101 │ │ │ └────────────┘ └────────────┘ │ │ ┌Menu────────┐ │ │ │ 37.213 │ │ │ └────────────┘ │ │ ┌────────────┐ │ │ │ 1.318.349 │ │ │ └────────────┘ │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
■ Références croisées TABLES/ATTRIBUTS
Les tables système complétées par une table des noms d’attributs en clair permettent de gérer un Dictionnaire des Données et de réaliser un tableau avec pour chaque table ses attributs recensés dans les autres tables. Le même attribut pouvant être référencé dans plusieurs tables avec un type et/ou une longueur différente(s), un "!" repère ces incohérences.
Ci-dessous, l’extrait d’un tel document pour une table « a_nex » d’une BDD nationale pour laquelle, les développeurs ont opté pour des noms de données respectant une codification particulière « XXX_XXX » :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 OCEAN - Table a_nex - le 6 Juin 2006 1. ┌──────────┬──────────┬──────────────────────────────────────┬────────────────────────┬─┐ │ tables │ colonnes │ libellés │ type-longueur │!│ └──────────┴──────────┴──────────────────────────────────────┴────────────────────────┴─┘ ┌──────────┬──────────┬──────────────────────────────────────┬────────────────────────┬─┐ │afc_val │cod_exa │CODE EXAMEN │char(3) │ │ │aff_spe │cod_exa │CODE EXAMEN │char(3) │ │ │ano_ce2 │cod_exa │CODE EXAMEN │char(3) │ │ │cnd │cod_exa │CODE EXAMEN │char(3) │ │ │cnd_epr │cod_exa │CODE EXAMEN │char(3) │ │ │csg │cod_exa │CODE EXAMEN │char(3) │ │ │dat_suj │cod_exa │CODE EXAMEN │char(3) │ │ │dci │cod_exa │CODE EXAMEN │char(3) │ │ │dci_grd │cod_exa │CODE EXAMEN │char(3) │ │ │epr │cod_exa │CODE EXAMEN │char(3) │ │ │epr_dco │cod_exa │CODE EXAMEN │char(3) │ │ │epr_epr │cod_exa │CODE EXAMEN │char(3) │ │ │epr_grp │cod_exa │CODE EXAMEN │char(3) │ │ │epr_lml │cod_exa │CODE EXAMEN │char(3) │ │ │epr_men │cod_exa │CODE EXAMEN │char(3) │ │ │epr_not │cod_exa │CODE EXAMEN │char(3) │ │ │epr_org │cod_exa │CODE EXAMEN │char(3) │ │ │eta_opt │cod_exa │CODE EXAMEN │char(3) │ │ │eta_spe │cod_exa │CODE EXAMEN │char(3) │ │ │exa │cod_exa │CODE EXAMEN │char(3) │ │ │fma │cod_exa │CODE EXAMEN │char(3) │ │ │gen_org │cod_exa │CODE EXAMEN │char(3) │ │ │grp │cod_exa │CODE EXAMEN │char(3) │ │ │lml │cod_exa │CODE EXAMEN │char(3) │ │ │lml_mlo │cod_exa │CODE EXAMEN │char(3) │ │ │lop │cod_exa │CODE EXAMEN │char(3) │ │ │mat_fma │cod_exa │CODE EXAMEN │char(3) │ │ │mef_spe │cod_exa │CODE EXAMEN │char(3) │ │ │opt │cod_exa │CODE EXAMEN │char(3) │ │ │par │cod_exa │CODE EXAMEN │char(3) │ │ │rat_geo │cod_exa │CODE EXAMEN │char(3) │ │ │reg │cod_exa │CODE EXAMEN │char(3) │ │ │spe │cod_exa │CODE EXAMEN │char(3) │ │ │spe_acq │cod_exa │CODE EXAMEN │char(3) │ │ │spe_grd │cod_exa │CODE EXAMEN │char(3) │ │ │spe_par │cod_exa │CODE EXAMEN │char(3) │ │ │spe_ran │cod_exa │CODE EXAMEN │char(3) │ │ │suj │cod_exa │CODE EXAMEN │char(3) │ │ │tca │cod_exa │CODE EXAMEN │char(3) │ │ │typ_can │cod_exa │CODE EXAMEN │char(3) │ │ │typ_eta │cod_exa │CODE EXAMEN │char(3) │ │ │uni │cod_exa │CODE EXAMEN │char(3) │ │ │ │typ_nex │TYPE DE NOMENCLATURE EXAMEN │char(3) │ │ │ │cod_nex │CODE DE NOMENCLATURE EXAMEN │char(4) │ │ │ │ind_nex │INDICATEUR MAJ LOCALE NOMENCLA │char(1) │ │ └──────────┴──────────┴──────────────────────────────────────┴────────────────────────┴─┘
■ Liste des tables
Application Ex&Co (Examens-Concours)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389 ┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ TABLES Ex&Co │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ PAGE : 1. ┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐ │ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │ac │ 7│ 32│ │ │académies │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │cea │ 28│ │ │ │cand. admission │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │cea_n │ 28│ │ │ │cand. admission │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │cec │ 176│ 797│ │aa_1cce │candidatures │ │ │ │ │ │aa_1cci │ │ │ │ │ │ │aa_agce │ │ │ │ │ │ │aa_agci │ │ │ │ │ │ │aa_sdce │ │ │ │ │ │ │aa_sdci │ │ │ │ │ │ │aa_ssce │ │ │ │ │ │ │aa_ssci │ │ │ │ │ │ │aacaacx │ │ │ │ │ │ │aacr │ │ │ │ │ │ │aacs │ │ │ │ │ │ │aacu │ │ │ │ │ │ │aare │ │ │ │ │ │ │aass2ce │ │ │ │ │ │ │aass2ci │ │ │ │ │ │ │aasuce │ │ │ │ │ │ │aasuci │ │ │ │ │ │ │agtlcu │ │ │ │ │ │ │ai_ece │ │ │ │ │ │ │ai_eci │ │ │ │ │ │ │al_esce │ │ │ │ │ │ │al_esci │ │ │ │ │ │ │atl_ace │ │ │ │ │ │ │atl_aci │ │ │ │ │ │ │atl_bce │ │ │ │ │ │ │atl_bci │ │ │ │ │ │ │atl_cce │ │ │ │ │ │ │atl_cci │ │ │ │ │ │ │bbeb │ │ │ │ │ │ │caep │ │ │ │ │ │ │casuep │ │ │ │ │ │ │egeb │ │ │ │ │ │ │i_epece │ │ │ │ │ │ │i_epeci │ │ │ │ │ │ │i_epecu │ │ │ │ │ │ │icepcep │ │ │ │ │ │ │icepeep │ │ │ │ │ │ │iceppep │ │ │ │ │ │ │icepvep │ │ │ │ │ │ │ichefep │ │ │ │ │ │ │ie_e1ce │ │ │ │ │ │ │ie_e1ci │ │ │ │ │ │ │ie_e2ce │ │ │ │ │ │ │ie_e2ci │ │ │ │ │ │ │ie_e3ce │ │ │ │ │ │ │ie_e3ci │ │ │ │ │ │ │ie_stce │ │ │ │ │ │ │ie_stci │ │ │ │ │ │ │ir_ece │ │ │ │ │ │ │ir_eci │ │ │ │ │ │ │ir_ice │ │ │ │ │ │ │ir_ici │ │ │ │ │ │ │mo_arce │ │ │ │ │ │ │mo_arci │ │ │ │ │ │ │mo_cce │ │ │ │ │ │ │mo_cci │ │ │ │ │ │ │mo_ssep │ │ │ │ │ │ │moebace │ │ │ │ │ │ │moebaci │ │ │ │ │ │ │moss2ep │ │ │ │ │ │ │oea75cu │ │ │ │ │ │ │oea77cu │ │ │ │ │ │ │oea78cu │ │ │ │ │ │ │oea91cu │ │ │ │ │ │ │oea92cu │ │ └────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ TABLES Ex&Co │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ PAGE : 2. ┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐ │ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │cec │ │ │ │oea93cu │candidatures │ │ │ │ │ │oea94cu │ │ │ │ │ │ │oea95cu │ │ │ │ │ │ │oeacr │ │ │ │ │ │ │oeacu │ │ │ │ │ │ │oeare │ │ │ │ │ │ │oeascre │ │ │ │ │ │ │op_acce │ │ │ │ │ │ │op_acci │ │ │ │ │ │ │op_acep │ │ │ │ │ │ │op_aice │ │ │ │ │ │ │op_aici │ │ │ │ │ │ │op_aiep │ │ │ │ │ │ │op_cce │ │ │ │ │ │ │op_cci │ │ │ │ │ │ │op_cep │ │ │ │ │ │ │op_evce │ │ │ │ │ │ │op_evci │ │ │ │ │ │ │op_evep │ │ │ │ │ │ │op_iece │ │ │ │ │ │ │op_ieci │ │ │ │ │ │ │op_ieep │ │ │ │ │ │ │op_lce │ │ │ │ │ │ │op_lci │ │ │ │ │ │ │op_lep │ │ │ │ │ │ │op_mace │ │ │ │ │ │ │op_maci │ │ │ │ │ │ │op_maep │ │ │ │ │ │ │op_rfce │ │ │ │ │ │ │op_rfci │ │ │ │ │ │ │op_rfep │ │ │ │ │ │ │opebace │ │ │ │ │ │ │opebaci │ │ │ │ │ │ │opebaep │ │ │ │ │ │ │opistce │ │ │ │ │ │ │opistci │ │ │ │ │ │ │opistep │ │ │ │ │ │ │rpe771i │ │ │ │ │ │ │rpe931i │ │ │ │ │ │ │rpe941i │ │ │ │ │ │ │rpe_22i │ │ │ │ │ │ │rpe_33i │ │ │ │ │ │ │rpece │ │ │ │ │ │ │rpecpci │ │ │ │ │ │ │saaagcr │ │ │ │ │ │ │saaager │ │ │ │ │ │ │saasscr │ │ │ │ │ │ │saleser │ │ │ │ │ │ │sasu3c │ │ │ │ │ │ │sasuce │ │ │ │ │ │ │sasuci │ │ │ │ │ │ │sasueep │ │ │ │ │ │ │sasuep │ │ │ │ │ │ │siepecr │ │ │ │ │ │ │sop_cer │ │ │ │ │ │ │sop_ler │ │ │ │ │ │ │sopaier │ │ │ │ │ │ │sopever │ │ │ │ │ │ │sopieer │ │ │ │ │ │ │sopiser │ │ │ │ │ │ │soprfer │ │ │ │ │ │ │ssasucr │ │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │cec_n │ 176│ 119 008│ │ │candidatures │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │cm │ 7│ 521│cm_bis │ │communes │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │cnd │ 42│ 4 282│ │ │candidatures OCEAN │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │cp │ 3│ 6 133│cp_bis │ │codes postaux │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │dec │ 91│ 5 561│ │ │direction exa-conc │ └────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ TABLES Ex&Co │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ PAGE : 3. ┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐ │ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │dg │ 3│ 34│dg_bis │ │district géo. │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │dip │ 3│ 76│ │ │diplomes = "eaq" │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │dp │ 8│ 106│dp_bis │ │ │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │ea │ 40│ 1 097│ │ │épreuves │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │ea_n │ 40│ 10 846│ │ │épreuves │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │eaq │ 4│ 76│ │ │examen pour acquis │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │ec │ 396│ 153│ec_bis │ │examens-concours │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │ec_n │ 396│ 1 461│ │ │examens-concours │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │epr │ 20│ 2 374│ │ │épreuves OCEAN │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │et │ 36│ 34 163│ │ │établissements │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │exa │ 5│ 82│ │ │examens OCEAN │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │gr │ 14│ 1 034│ │ │grades │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │itrf │ 17│ 93│ │ │ITRF │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │ln │ 17│ 11│ │ │logname │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │lv │ 3│ 7│ │ │langues vivantes │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │mat │ 2│ 4 091│ │ │matières │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │mj │ 23│ 4 513│ │ │membres du jury │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │mra │ 2│ 8│ │ │motifs recul d'âge │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │nat │ 2│ 18│ │ │nationalités │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │ne │ 13│ 185│ │ │natures établ. │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │net │ 19│ 148│ │ │candidatures net │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │oc │ 2│ 18│ │ │origine candidats │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │opt │ 2│ 62│ │ │options │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │oral │ 9│ 57│ │ │ordre oral │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │os │ 2│ 18│ │ │origines statut. │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │pec │ 37│ │pec_bis │ │personnels Ex&Co │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │pec_n │ 37│ 85 278│ │ │personnels Ex&Co │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │pic │ 71│ │cic │ │pré-inscriptions │ │ │ │ │pic_bis │ │ │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │pic_n │ 71│ │ │ │pré-inscriptions │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │pim │ 38│ 3 687│ │ │pré-inscr. MINITEL │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │pim_n │ 36│ │ │ │pré-inscr. MINITEL │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │pj │ 26│ │ │ │planning jury │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │pm │ 8│ 21│ │ │pièces manquantes │ └────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ TABLES Ex&Co │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ PAGE : 4. ┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐ │ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │prf │ 2│ 57│ │ │professions OCEAN │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │qcm │ 2│ 52│ │ │QCM : importation │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │qjo │ 2│ 280│ │ │question jury oral │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │rc │ 8│ 13│ │ │refus d'autoris. │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sa │ 2│ 16│ │ │situations admin. │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sg │ 54│ 9│ │ │services gestion │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sh │ 15│ │ │ │suivi historique │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sh_n │ 15│ │ │ │suivi historique │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sp │ 10│ │ │ │salles/places │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │spe │ 7│ 186│ocean │ │spécialités │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sys_c │ 13│ 941│ │ │colonnes │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sys_d │ 7│ 1 030│ │ace │développements │ │ │ │ │ │per │ │ │ │ │ │ │shl │ │ │ │ │ │ │sql │ │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sys_t │ 4│ │ │ │tables │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sys_u │ 8│ 993│ │ │unités de trait. │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sysmenuitems│ 5│ 33 294│ │ │ │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sysmenus │ 2│ 3 273│ │ │ │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │t_cm │ 2│ 1│ │ │typologie communes │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │tec │ 10│ 16│ │ │typologie Ex&Co │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │tj │ 35│ 160│ │aa_1ctj │travaux jury │ │ │ │ │ │aa_agtj │ │ │ │ │ │ │aa_sdtj │ │ │ │ │ │ │aa_sstj │ │ │ │ │ │ │aacaatj │ │ │ │ │ │ │aass2tj │ │ │ │ │ │ │aasutj │ │ │ │ │ │ │aatj │ │ │ │ │ │ │agtltj │ │ │ │ │ │ │ai_etj │ │ │ │ │ │ │al_estj │ │ │ │ │ │ │atl_atj │ │ │ │ │ │ │atl_btj │ │ │ │ │ │ │atl_ctj │ │ │ │ │ │ │bbtj │ │ │ │ │ │ │casutj │ │ │ │ │ │ │catj │ │ │ │ │ │ │egtj │ │ │ │ │ │ │i_epetj │ │ │ │ │ │ │icepctj │ │ │ │ │ │ │icepetj │ │ │ │ │ │ │icepptj │ │ │ │ │ │ │icepvtj │ │ │ │ │ │ │icheftj │ │ │ │ │ │ │ie_e1tj │ │ │ │ │ │ │ie_e2tj │ │ │ │ │ │ │ie_e3tj │ │ │ │ │ │ │ie_sttj │ │ │ │ │ │ │ir_etj │ │ │ │ │ │ │ir_itj │ │ │ │ │ │ │mo_artj │ │ │ │ │ │ │mo_ctj │ │ │ │ │ │ │mo_sstj │ │ │ │ │ │ │moebatj │ │ │ │ │ │ │mop_ctj │ │ │ │ │ │ │moss2tj │ │ │ │ │ │ │oeatj │ │ │ │ │ │ │op_actj │ │ │ │ │ │ │op_aitj │ │ └────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ TABLES Ex&Co │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ PAGE : 5. ┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐ │ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │tj │ │ │ │op_btj │travaux jury │ │ │ │ │ │op_ctj │ │ │ │ │ │ │op_evtj │ │ │ │ │ │ │op_ietj │ │ │ │ │ │ │op_ltj │ │ │ │ │ │ │op_matj │ │ │ │ │ │ │op_rftj │ │ │ │ │ │ │opebatj │ │ │ │ │ │ │opisttj │ │ │ │ │ │ │rpetj │ │ │ │ │ │ │saaagtj │ │ │ │ │ │ │saasstj │ │ │ │ │ │ │salestj │ │ │ │ │ │ │sasuetj │ │ │ │ │ │ │sasutj │ │ │ │ │ │ │siepetj │ │ │ │ │ │ │sop_ctj │ │ │ │ │ │ │sop_ltj │ │ │ │ │ │ │sopaitj │ │ │ │ │ │ │sopevtj │ │ │ │ │ │ │sopietj │ │ │ │ │ │ │sopistj │ │ │ │ │ │ │spebatj │ │ │ │ │ │ │ssasutj │ │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │tj_n │ 35│ 37 122│ │ │travaux jury │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │tmp │ 22│ 55│ │ │temporaire │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │tmp_hf │ 28│ 1│ │ │tmp hommes/femmes │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │tmp_nd │ 52│ 1│ │ │tmp niv. diplôme │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │tmp_nh │ 28│ 91│ │ │tmp hiérarchique │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │tmp_os │ 94│ 1│ │ │tmp origine statut │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │tmp_ta │ 46│ 1│ │ │tmp tranches d'âge │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │toi │ 2│ │ │ │ │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │uad │ 2│ 39│ │ │unité administrat. │ └────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────┘ ┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐ │ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │ 70│ 2 472│ 363 683│ 9│ 194│ │ └────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────┘
■ Liste des écrans
Application Ex&Co (Examens-Concours)
L’application compte 900 écrans pour 150 examens-concours. Chaque examen-concours est spécifique par son nombre d’épreuves, leurs éventuelles options et coefficients, leurs saisies des notes. Chaque examen-concours est donc géré par des écrans spécifiques créés à partir de modèles ou d’écrans d’autres examens-concours aux spécificités très proches. Le concours interne/externe de recrutement des professeurs des écoles compte à lui seul 55 écrans.
En deuxième partie du tableau ci-dessous, le concours aa_agce retenu, concours externe d’adjoint administratif, compte une quinzaine d’écrans.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 ┌──────────┬───────────────────────────────────────────────────────────────────┐ │per │ LISTE ALPHABÉTIQUE DES ÉCRANS Ex&Co │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │DBA_CEA │DBA : Candidatures épreuves d'admission │ │DBA_CEC │DBA : Candidatures épreuves d'admission │ │DBA_CEC_n │DBA : Candidatures épreuves d'admission (historique) │ │DBA_EC │DBA : Mise-à-jour Examens-Concours et Épreuves │ │DBA_EC_n │DBA : Mise-à-jour Examens-Concours et Épreuves (historique) │ │DBA_PIC │DBA : Pré-Inscriptions Candidatures │ │DBA_PIC_25│DBA : Pré-Inscriptions Candidatures (Versailles) │ │DBA_bilans│DBA : Bilans Examens-Concours et Épreuves │ │DBA_ec │DBA : Mise-à-jour Examens-Concours et Épreuves │ │DBA_ec_n │DBA : Mise-à-jour Examens-Concours et Épreuves (historique) │ │Ex_Co1 │Modèle : Saisie des notes d’admissibilité │ │Ex_Co11 │Modèle : Saisie de la note de l’épreuve d'admissibilité N° 1 │ │Ex_Co1A │Modèle : Saisie des absences aux épreuves d'admissibilité │ │Ex_Co2 │Modèle : Saisie des notes épreuves d'admission │ │MaJ_BIS │Pré-Inscriptions Candidatures : M-à-J sauf code et type Ex&Co │ │MaJ_CEA │Modèle : Candidatures admission │ │MaJ_CEC │Modèle : Candidatures Examen-Concours │ │MaJ_MJ │Modèle : Saisie des membres du jury │ │MaJ_MJ_n │Modèle : Saisie des membres du jury (historique) │ │MaJ_PIC │Modèle : Pré-Inscriptions Candidatures │ │MaJ_PIC_25│Modèle : Pré-Inscriptions Candidatures (Versailles) │ │MaJ_PJ │Modèle : Création du planning jury d’admission │ │MaJ_OCEAN │Tables Nationalité, Motif de recul d’âge, Diplôme, Profession │ │MaJ_cec1 │Modèle : Saisie des notes épreuves d’admissibilité │ │MaJ_cec1_n│Modèle : Saisie des notes épreuves d’admissibilité (historiques) │ │MaJ_cec2 │Modèle : Saisie des notes épreuves d’admission │ │MaJ_cec2_n│Modèle : Saisie des notes épreuves d’admission (historique) │ │MaJ_ec │Mise-à-jour Examens-Concours et Épreuves │ │MaJ_ec_n │Mise-à-jour Examens-Concours et Épreuves (historique) │ │MaJ_et │Mise à jour de la table des établissements │ │MaJ_gr │Mise à jour des grades │ │MaJ_ln │Mise à jour des lognames │ │MaJ_oc │Mise à jour des origines des candidats │ │MaJ_pm │Mise à jour des pièces manquantes │ │MaJ_salles│Mise à jour des salles │ │MaJ_sg │Mise à jour des paramètres applicatif (services gestionnaires) │ │MaJ_tables│Mise à jour des tables (Salles, Jury d’oral) │ │MaJ_tec │Mise à jour des typologies Examens-Concours │ │SYSADMIN │Administration du System Catalog │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │aa_agce1 │Saisie des notes épreuves d’admissibilité │ │aa_agce11 │Saisie des notes épreuves d’admissibilité N° 1 │ │aa_agce11c│Saisie des notes épreuves d’admissibilité N° 1 coefficientée │ │aa_agce12 │Saisie des notes épreuves d’admissibilité N° 2 │ │aa_agce12c│Saisie des notes épreuves d’admissibilité N° 2 coefficientée │ │aa_agce1A │Saisie des absences aux épreuves d'admissibilité │ │aa_agce2 │Saisie des notes épreuves d'admission │ │aa_agce21 │Saisie des notes épreuves d'admission N° 1 │ │aa_agce21c│Saisie des notes épreuves d'admission N° 1 coeficientée │ │aa_agce2c │Saisie des notes épreuves d'admission coefficientées │ │aa_agceCEA│Candidatures admission │ │aa_agceCEC│Candidatures Examen-Concours │ │aa_agceMJ │Membres du jury / Travaux jury │ │aa_agcePJ │Création du planning jury d’admission │ └──────────┴───────────────────────────────────────────────────────────────────┘
■ Liste des états
Application Ex&Co (Examens-Concours)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572 Lexique : ace : dossier développeur ace_ec : dossier Ex&Co ace_ec_n : dossier Ex&Co historique ace_1 : dossier admissibilité année en cours ace_1_n : dossier admissibilité historique ace_2 : dossier admission année en cours ace_2_n : dossier admission historique ace_mj : dossier membres du jury ace_mj_n : dossier membres du jury historique ┌──────────┬───────────────────────────────────────────────────────────────────┐ │ace │ LISTE ALPHABÉTIQUE DES ÉDITIONS Ex&Co │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │AnonyLabel│Étiquettes d'anonymat │ │DICO │Dictionnaire des Données │ │et_c_et │Liste des Établissements (Tri : Code Établissement) │ │et_l_et │Liste des Établissements Fournisseurs │ │et_l_ld │Liste des Établissements (Tri : Lieu Distribue) │ │et_label │Étiquettes adresses pour les établissements │ │gr_c_gr │Liste des Grades (Tri : gr.c_gr) │ │gr_l_gr │Liste des Grades (Tri : gr.l_gr_min) │ │label_et │Étiquettes adresses pour les établissements │ │requete │Créer la séquence d'échappement -> imprimer résultat requête écran │ │SYSTABLES │Liste des tables │ │TABLES_mon│Tables et leurs attributs de la BDD mon (OCEAN) │ └──────────┴───────────────────────────────────────────────────────────────────┘ ┌──────────┬───────────────────────────────────────────────────────────────────┐ │ace_ec │ LISTE ALPHABÉTIQUE DES ÉDITIONS Ex&Co │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │bilan_cec │Bilan exhaustif des candidatures │ │cec_arrete│Liste des admis par ordre de mérite pour les arrêtes │ │gr_c_gr │Liste des Grades (Tri : gr.c_gr) │ │gr_l_gr │Liste des Grades (Tri : gr.l_gr_min) │ │mj_arrete │Arrêté composition du jury │ └──────────┴───────────────────────────────────────────────────────────────────┘ ┌──────────┬───────────────────────────────────────────────────────────────────┐ │ace_ec_n │ LISTE ALPHABÉTIQUE DES ÉDITIONS Ex&Co │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │cec_arrete│Liste des admis par ordre de mérite pour les arrêtes │ │mj_arrete │Arrêté composition du jury │ └──────────┴───────────────────────────────────────────────────────────────────┘ ┌──────────┬───────────────────────────────────────────────────────────────────┐ │ace_1 │ LISTE ALPHABÉTIQUE DES ÉDITIONS Ex&Co │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │0_confirme│Convocations des candidats │ │0_liste │Pré-inscriptions minitel : liste [A]lphabétique / [C]hronologique │ │0_pieces │Demande de pièces manquantes │ │0_refus │Refus d'autorisation de concourir │ │0_synopsis│Etat synoptique des pré-inscriptions │ │1_avis │Avis de la commission de sélection │ │1_confirme│Convocations des candidats │ │1_liste │Pré-inscriptions minitel : liste [A]lphabétique / [C]hronologique │ │1_pieces │Demande de pièces manquantes │ │1_refus │Refus d'autorisation de concourir │ │1_synopsis│Etat synoptique des candidatures │ │admis_A │Liste alphabétique des admissibles au 1er groupe d'épreuves │ │admissible│Détermination de l'admissibilité des candidats │ │AnonyLabel│Étiquettes d'anonymat ("L" pour Label) │ │anonymat │Affectation des Nø d'anonymat │ │anonymat_A│Liste d'anonymat par odre chronologique des numéros d'anonymat │ │anonymat_L│Étiquettes d'anonymat ("L" pour Label) │ │anonymat_P│Liste d'anonymat par ordre des numéros de place │ │bilan_1 │Bilan des Notes (Mini, moyenne, maxi, etc...) │ │cec_appel │Liste d'appel par centre et par ordre alphabétique │ │cec_convoc│Convocations des candidats │ │cec_emarge│Liste d'émargement des candidats aux épreuves d'admissibilité │ │cec_export│Extraction de données (épreuves d'admissibilité) pour Excel │ │cec_label │Étiquettes adresses pour les candidats au 1er group d'épreuves │ │cnd_label │Étiquettes de table OCEAN │ │cnd_table │Edition de l'ensemble des post_it │ │cndTOcec │Création de candidatures depuis OCEAN │ │cndTOpec │Création de candidats depuis la table "cnd" d'OCEAN │ │controle │Liste des options de tous les candidats │ │ │et rappel (optionnel) des informations candidats │ │excel │Extraction de données pour Excel (format dBase) │ │hf_age_P │Pyramide des âges des candidats inscrits (confirmés) / admissibles │ │hf_diplome│Répartition des inscrits selon le niveau de diplôme │ │itrfTOcec │Création de candidatures depuis la table "itrf" │ │itrfTOpec │Création de candidats depuis la table "itrf" │ │mail_AIX │Mailing Concours │ │mail_DOS │Extraction de données pour mailing avec SPRINT │ │minitel │Liste des admis par ordre de mérite dans le cas ou il y a des admis│ │netTOpim │Transfert des candidatures internet OCEAN vers la table pim │ │notes_A │Liste des Notes pour le 1er groupe d'épreuves (tri : anonymat) │ │notes_cec │Liste pour la saisie des notes sur place (tri Nø de places/salle )│ │notes_cnd │Liste des Notes pour le 1er groupe d'épreuves (tri : anonymat) │ │notes_ea │Document de saisie manuscrite des notes d'une épreuve │ │ │Candidats 1er groupe d'épreuves - tri numéro d'ordre des candidats │ │notes_ec │Liste pour la saisie des notes (TRI : Nø de place) │ │notes_M │Liste des Notes pour le 1er groupe d'épreuves (tri : MERITE) │ │notes_P │Liste des Notes pour le 1er groupe d'épreuves (tri : Nø de place) │ │notif_CP │Notification de la décision du jury et des notes obtenues │ │ │(tri selon l'ordre croissant des codes postaux) │ │ │- Admissibles 1er groupe d'épreuves (si 2 groupes d'épreuves) │ │ │- Présents 2ème groupe d'épreuves (si 1 seul groupe d'épreuves │ │notif_P │Notification de la décision du jury et des notes obtenues │ │ │Admissibles 1er groupe d'épreuves (si 2 groupes d'épreuves) │ │ │Présents 2ème groupe d'épreuves (si 1 seul groupe d'épreuves │ │ │(tri selon l'ordre croissant des places) │ │picTOcec │Création de candidatures depuis la table "pic" │ │ │(pic = pré-inscription à confirmer) │ │picTOpec │Création de candidats depuis la table "pic" │ │ │(pic = pré-inscription à confirmer) │ │pimTOpic │Importation des pré-inscriptions minitel depuis la table pim │ │ │(pim = pré-inscription minitel) │ │place_vide│Liste des places libres │ │placement │Placement des candidats │ │post_itALL│Édition de l'ensemble des post_it (Version Ex&Co) │ │post_itBDD│Création du fichier "$(LOGNAME).out pour M-à-J de cec.post_it │ │ │à l'aide du sql "post_itBDD.sql" │ │ │post_itBDD et post_itALL gèrent les places vides │ │ │Il est donc de relancer ces traitements │ │post_itMaJ│- Impression des POST-IT pour les candidatures ayant été ajoutées │ │ │ après l'envoi des convocations │ │ │- Cela ne concerne que les candidats dont le Nø de place a été │ │ │ mis à jour par l'écran MaJ_cec ou par le shell placement avec │ │ │ l'option : Traitement [R]elatif. │ │ │- Leur Nø de post_it est donc a null. │ │ │- Bien que le shell mette à jour le nombre de candidats inscrits, │ │ │ ll n'est pas inutile de vérifier l'information à l'aide de │ │ │ l'écran "mise à jour concours", notamment si un candidat à été │ │ │ supprimé. │ │ │- Impression également d'éventuels numéros de table "Place libre" │ │ │ Cas, par exemple, d'une candidature ayant été transférée sur un │ │ │ autre concours après que le placement ait été effectué, les N° │ │ │ de table imprimés, les convocations imprimées et envoyées. │ │POST-ITall│Édition de l'ensemble des post_it (Version OCEAN) │ │qcm_export│Extraction de données (épreuves QCM) pour Excel │ │recap │Bilan exhaustif des candidatures │ │sos_convoc│Convocations candidats vierges (épreuves d'admissibilité) │ └──────────┴───────────────────────────────────────────────────────────────────┘ ┌──────────┬───────────────────────────────────────────────────────────────────┐ │ace_1_n │ LISTE ALPHABÉTIQUE DES ÉDITIONS Ex&Co │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │admis_A │Liste alphabétique des admissibles au 1er groupe d'épreuves │ │bilan_1 │Bilan des Notes (Mini, moyenne, maxi, etc...) │ │cec_appel │Liste d'appel par centre et par ordre alphabétique │ │hf_age_P │Pyramide des âges des candidats inscrits (confirmés) / admissibles │ │notes_P │Liste des Notes pour le 1er groupe d'épreuves (tri : Nø de place) │ │notif_P │Notification de la décision du jury et des notes obtenues │ │ │Admissibles 1er groupe d'épreuves (si 2 groupes d'épreuves) │ │ │Présents 2ème groupe d'épreuves (si 1 seul groupe d'épreuves │ │ │(tri selon l'ordre croissant des places) │ │recap │Bilan exhaustif des candidatures │ └──────────┴───────────────────────────────────────────────────────────────────┘ ┌──────────┬───────────────────────────────────────────────────────────────────┐ │ace_2 │ LISTE ALPHABÉTIQUE DES ÉDITIONS Ex&Co │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │ADMIS_A │Liste des admis par ordre alphabétique (numéro d'ordre oral) │ │ADMIS_E │Liste d'émargement des candidats admis │ │ADMIS_M │Liste des admis par ordre de mérite │ │ADMISSION │Admissibilité à l'issue des épreuves d'admission │ │ │d'après les notes minimum définies pour le concours │ │ │ATTENTION : Ce traitement est suivi d'un SQL qui modifie la Base │ │BILAN_2 │Bilan des Notes (Mini, moyenne, maxi, etc...) │ │BILAN_CE+I│Répartition hommes/femmes selon typologie concours externe/interne │ │ │inscrits, présents, admissibles, inscrits sur LP et LC │ │C0000_0000│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC │ │C0000_0100│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_22c DESC │ │C0000_1000│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_21c DESC │ │C0000_2010│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_23c DESC, │ │ │ 3. note_21c DESC │ │C1000_0000│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_23c DESC, │ │C1000_2000│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_11c DESC, │ │ │ 3. note_21c DESC │ │C1000_2300│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_11c DESC, │ │ │ 3. note_21c DESC, │ │ │ 4. note_22c DESC │ │C1200_3000│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_11c DESC, │ │ │ 3. note_12c DESC, │ │ │ 4. note_21c DESC │ │C1200_3400│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_11c DESC, │ │ │ 3. note_12c DESC, │ │ │ 4. note_21c DESC, │ │ │ 5. note_22c DESC │ │C2000_1000│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_21c DESC, │ │ │ 3. note_11c DESC │ │C2300_1000│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_21c DESC, │ │ │ 3. note_11c DESC, │ │ │ 4. note_12c DESC │ │C2300_1400│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_21c DESC, │ │ │ 3. note_11c DESC, │ │ │ 4. note_12c DESC, │ │ │ 5. note_22c DESC │ │C2340_1000│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_21c DESC, │ │ │ 3. note_11c DESC, │ │ │ 4. note_12c DESC, │ │ │ 5. note_13c DESC │ │C3000_1200│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_21c DESC, │ │ │ 3. note_22c DESC, │ │ │ 4. note_11c DESC │ │C3200_1000│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_21c DESC, │ │ │ 3. note_12c DESC, │ │ │ 4. note_11c DESC │ │C3400_1200│Classement des candidats │ │ │- Ordre de tri : 1. note_total DESC, │ │ │ 2. note_21c DESC, │ │ │ 3. note_22c DESC, │ │ │ 4. note_11c DESC, │ │ │ 5. note_12c DESC │ │CEC_APPEL │Liste d'appel par centre et par ordre alphabétique │ │CEC_BILAN │Statistiques annuelles pour le Ministère (Candidats) │ │CEC_CONVOC│Convocations des candidats │ │CEC_EMARGE│Liste d'émargement des candidats aux épreuves d'admission │ │ │(tri sur l'heure de début d'épreuve) │ │CEC_MAIL │Extraction de données pour mailing avec SPRINT │ │cecTOdec │Exportation des bilans DEC (Direction Examens-Concours) │ │CLASSEMENT│Classement des candidats (idem C0000_0000) │ │ │- Ordre de tri : 1. note_total DESC │ │CND_APPEL │Liste d'appel par centre et par ordre alphabétique │ │CND_CONVOC│Convocations des candidats │ │CND_EMARGE│Liste d'émargement des candidats aux épreuves d'admission │ │ │(tri sur l'heure de début d'épreuve) │ │CND_NOTE_C│Document de saisie manuscrite des notes d'une épreuve │ │ │pour les candidats admissibles au 2ème groupe d'épreuve │ │ │- Tri selon l'heure de passage des candidats (table CEA) │ │ │- Saut de page / jury │ │CND_PJ │Renseignement des N° de jury et des N° de passage │ │ │à partir des heures de passage d'OCEAN │ │CND_PLAN_A│Planning alphabétique (saut de page par épreuve-option-d_épreuve) │ │CND_PLAN_J│Planning oral (tri sur l'heure de passage - saut de page / jury) │ │CND_PLAN_P│Planning oral (tri sur l'heure de passage - saut de page / passage)│ │cnd_table │Étiquettes de table OCEAN │ │CONTRÔLE │Liste des options de tous les candidats │ │ │et rappel (optionnel) des informations candidats │ │CP_JURY │Modification des numéros de passage pour un jury, après création │ │ │d'un planning d'une journée sur le modèle d'une journée référence │ │ │- La création (par sql) évite de ressaisir les horaire │ │ │ mais ne peut implémenter les numéros de passage │ │CREATE_CEA│Création des candidatures à une épreuve orale │ │EXCEL │Extraction de données pour Excel │ │HF_ADMIS_1│Totalisations pour les bilans du Ministère │ │HF_ADMIS_2│Totalisations pour les bilans du Ministère │ │HF_AGE │Répartition H/F des inscrits sur LP et LC par tranche d'âge │ │HF_AGE_P │Pyramide des âges des candidats admis sur la liste principale │ │ │ sur la liste complémentaire │ │HF_CE+CI │Répartition hommes/femmes selon typologie concours externe/interne │ │ │inscrits, présents, admissibles, inscrits sur LP et LC │ │HF_DIPLOME│Répartition des inscrits sur LP et LC selon le niveau de diplôme │ │HF_DIVERS │Répartition hommes/femmes des inscrits, présents, admissibles, │ │ │ des inscrits sur LP et LC │ │HF_JURY │Répartition hommes/femmes et par niveaux hiérarchiques │ │ │- des membres de jury │ │ │- des présidents de jury │ │HF_ORIGINE│Répartition des inscrits sur LP et LC selon l'origine des candidats│ │MAIL_AIX │Mailing Concours │ │MAIL_DOS │Extraction de données pour mailing avec SPRINT │ │MINITEL │Liste des admis par ordre de mérite ans le cas ou il y a des admis │ │NOTES_A │Liste des Notes pour le 2ème groupe d'épreuves │ │ │Tri : ordre alphabétique -> cec_ordre_oral ASC │ │ │GROUPE = (2) - le 2ème groupe d'épreuves + épreuves facultatives │ │ │ (T) - les 2 groupes d'épreuves + épreuves facultatives │ │NOTES_CEA │Document de saisie manuscrite des notes d'une épreuve │ │ │pour les candidats admissibles au 2ème groupe d'épreuve │ │ │- Tri selon l'heure de passage des candidats (table CEA) │ │ │- Saut de page / jury │ │NOTES_EA │Document de saisie manuscrite des notes d'une épreuve │ │ │pour les candidats admis au 2ème groupe d'épreuves │ │ │(Tri selon le numéro d'ordre oral des candidats) │ │NOTES_EC │Document de saisie manuscrite des notes de toutes les épreuves │ │ │pour les candidats admis au 2ème groupe d'épreuves │ │ │(Tri selon le numéro d'ordre oral des candidats) │ │NOTES_JO │Liste des Notes pour le 2ème groupe d'épreuves │ │ │TRI : Nø de jury d'oral │ │ │ Nø d'ordre oral │ │ │GROUPE = (2) - le 2ème groupe d'épreuves │ │ │ (T) - les 2 groupes d'épreuves │ │NOTES_M2 │Liste des Notes pour le 2ème groupe d'épreuves │ │ │Tri : ordre de mérite note d'admission │ │ │ cec_liste DESC, │ │ │ cec_admis_2 DESC, │ │ │ cec_note_2 DESC, │ │ │ cec_ordre_oral ASC │ │ │(2) - le 2ème groupe d'épreuves + épreuves facultatives │ │ │(T) - les 2 groupes d'épreuves + épreuves facultatives │ │NOTES_MA │Liste des Notes pour le 2ème groupe d'épreuves │ │ │TRI : Liste principale = mérite │ │ │ Liste complémentaire = mérite │ │ │ Non retenus = ordre oral │ │ │ -> cec_admis_2 DESC, │ │ │ -> cec_liste DESC, │ │ │ -> cec_rang ASC, │ │ │ -> cec_ordre_oral ASC │ │ │GROUPE = [2] -> 2ème groupe d'épreuves + épreuves facultatives │ │ │ = [T] -> deux groupes d'épreuves + épreuves facultatives │ │NOTES_MM │Liste des Notes pour le 2ème groupe d'épreuves │ │ │TRI : Liste principale = mérite │ │ │ Liste complémentaire = mérite │ │ │ Non retenus = mérite │ │ │ -> cec_liste DESC, │ │ │ -> cec_rang ASC, │ │ │ -> cec_note_total DESC, │ │ │ -> cec_admis_2 DESC, │ │ │ -> cec_ordre_oral ASC │ │ │GROUPE = [2] -> 2ème groupe d'épreuves + épreuves facultatives │ │ │ = [T] -> deux groupes d'épreuves + épreuves facultatives │ │NOTIF_M │Notification de la décision du jury et des notes obtenues │ │ │Admissibles 1er groupe d'épreuves (si 2 groupes d'épreuves) │ │ │Présents 2ème groupe d'épreuves (si 1 seul groupe d'épreuves) │ │ │- tri selon l'ordre de mérite (liste des notes) │ │NOTIF_N │Notification de la décision du jury et des notes obtenues │ │ │Admissibles 1er groupe d'épreuves (si 2 groupes d'épreuves) │ │ │Présents 2ème groupe d'épreuves (si 1 seul groupe d'épreuves) │ │ │- tri selon la place ou l'ordre oral) │ │ORDRE_ORAL│Ordre oral des candidats │ │PJ │Affectation de l'ordre oral des candidats au planning d'un jury │ │ │pour permettre l'organisation du passage des candidats en │ │ │s'appuyant sur le planning jury. │ │ │ │ │ │[V]ertical : les candidats sont ┌Passage┐┌Jury 1┬Jury 2┬Jury 3┐ │ │ │repartis selon leur ordre oral │ 1 ││ 1 │ 4 │ 7 │ │ │ │verticalement dans le planning │ 2 ││ 2 │ 5 │ 8 │ │ │ │du jury comme indiquÚ ci-contre. │ 3 ││ 3 │ 6 │ 9 │ │ │ │ └───────┘└──────┴──────┴──────┘ │ │ │[H]orizontal : les candidats sont ┌Passage┐┌Jury 1┬Jury 2┬Jury 3┐ │ │ │répartis selon leur ordre oral │ 1 ││ 1 ┼> 2 ┼> 3 ┤ │ │ │horizontalement dans le planning │ 2 │├> 4 ┼> 5 ┼> 6 ┤ │ │ │du jury comme indique ci-contre. │ 3 │├> 7 ┼> 8 ┼> 9 │ │ │ │ └───────┘└──────┴──────┴──────┘ │ │ │Il est possible d'exécuter deux fois le shell : │ │ │- la première fois pour une affectation chronologique verticale │ │ │ ou horizontale (cela évite d'avoir à saisir l'ordre oral dans │ │ │ l'écran de création du planning jury). │ │ │- une deuxième fois après être intervenu sur l'ordre oral du │ │ │ planning jury pour echanger par exemple deux candidats. │ │ │ (=> Répartition [E]xplicite). │ │ │ Tri du planning : - jury │ │ │ - passage │ │PLANNING_A│Planning alphabétique (saut de page par épreuve-option-d_épreuve) │ │ │p_order_by = [I] => Tri alphabétique [I]ntégral (rupture c_et) │ │ │p_order_by = [J] => Tri alphabétique [J]ournée (rupture option) │ │PLANNING_J│PLANNING ORAL (tri heure de passage)-(saut de page par jury) │ │PLANNING_P│PLANNING ORAL (tri heure de passage)-(saut de page par passage) │ │POST_ITall│Édition de l'ensemble des post_it │ │POST_ITbdd│Création du fichier "$(LOGNAME).out" │ │ │pour mise à jour de l'information cea.post_it │ │ │à l'aide du sql "POST_ITbdd.sql" │ │ │- L'édition des post_it s'effectue à l'aide du shell "POST_ITall" │ │ │- POST_ITbdd et POST_ITall gèrent les places vides. │ │ │ Il est donc possible de relancer éventuellement cette chaine. │ │POST_ITmaj│- Impression des POST-IT pour les candidatures ayant été ajoutées │ │ │ après l'envoi des convocations. │ │ │- Cela ne concerne que les candidats dont le Nø de place a été │ │ │ mis à jour par l'écran MaJ_cec ou par le shell placement avec │ │ │ l'option : Traitement [R]elatif. │ │ │- Leur Nø de post_it est donc a null. │ │ │- Bien que le shell mette à jour le nombre de candidats inscrits, │ │ │ ll n'est pas inutile de vérifier l'information à l'aide de │ │ │ l'écran "mise à jour concours", notamment si un candidat à été │ │ │ supprimé. │ │ │- Impression également d'éventuels numéros de table "Place libre" │ │ │ Cas, par exemple, d'une candidature ayant été transférée sur un │ │ │ autre concours après que le placement ait été effectué, les N° │ │ │ de table imprimés, les convocations imprimées et envoyées. │ │QJO_EXPORT│Extraction de données (épreuves d'admissibilité) pour Excel │ └──────────┴───────────────────────────────────────────────────────────────────┘ ┌──────────┬───────────────────────────────────────────────────────────────────┐ │ace_2_n │ LISTE ALPHABÉTIQUE DES ÉDITIONS Ex&Co │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │ADMIS_A │Liste des admis par ordre alphabétique (numéro d'ordre oral) │ │ADMIS_M │Liste des admis par ordre de mérite │ │BILAN_2 │Bilan des Notes (Mini, moyenne, maxi, etc...) │ │CEC_EMARGE│Liste d'émargement des candidats aux épreuves d'admission │ │ │(tri sur l'heure de début d'épreuve) │ │cecTOdec │Exportation des bilans DEC │ │HF_ADMIS_1│Totalisations pour les bilans du Ministère │ │HF_ADMIS_2│Totalisations pour les bilans du Ministère │ │HF_AGE │Répartition H/F des inscrits sur LP et LC par tranche d'âge │ │HF_AGE_P │Pyramide des âges des candidats admis sur la liste principale │ │ │ sur la liste complémentaire │ │HF_CE+CI │Répartition hommes/femmes selon typologie concours externe/interne │ │ │inscrits, présents, admissibles, inscrits sur LP et LC │ │HF_DIPLOME│Répartition des inscrits sur LP et LC selon le niveau de diplôme │ │HF_DIVERS │Répartition hommes/femmes des inscrits, présents, admissibles, │ │ │ des inscrits sur LP et LC │ │HF_ORIGINE│Répartition des inscrits sur LP et LC selon l'origine des candidats│ │BILAN_mj │Statistiques annuelles pour le Ministère (Membres du jury) │ │NOTES_A │Liste des Notes pour le 2ème groupe d'épreuves │ │ │Tri : ordre alphabétique -> cec_ordre_oral ASC │ │ │GROUPE = (2) - le 2ème groupe d'épreuves + épreuves facultatives │ │ │ (T) - les 2 groupes d'épreuves + épreuves facultatives │ │NOTES_CEA │Document de saisie manuscrite des notes d'une épreuve │ │ │pour les candidats admissibles au 2ème groupe d'épreuve │ │ │- Tri selon l'heure de passage des candidats (table CEA) │ │ │- Saut de page / jury │ │NOTES_EA │Document de saisie manuscrite des notes d'une épreuve │ │ │pour les candidats admis au 2ème groupe d'épreuves │ │ │(Tri selon le numéro d'ordre oral des candidats) │ │NOTES_EC │Document de saisie manuscrite des notes de toutes les épreuves │ │ │pour les candidats admis au 2ème groupe d'épreuves │ │ │(Tri selon le numéro d'ordre oral des candidats) │ │NOTES_JO │Liste des Notes pour le 2ème groupe d'épreuves │ │ │TRI : Nø de jury d'oral │ │ │ Nø d'ordre oral │ │ │GROUPE = (2) - le 2ème groupe d'épreuves │ │ │ (T) - les 2 groupes d'épreuves │ │NOTES_M2 │Liste des Notes pour le 2ème groupe d'épreuves │ │ │Tri : ordre de mérite note d'admission │ │ │ cec_liste DESC, │ │ │ cec_admis_2 DESC, │ │ │ cec_note_2 DESC, │ │ │ cec_ordre_oral ASC │ │ │(2) - le 2ème groupe d'épreuves + épreuves facultatives │ │ │(T) - les 2 groupes d'épreuves + épreuves facultatives │ │NOTES_MA │Liste des Notes pour le 2ème groupe d'épreuves │ │ │TRI : Liste principale = mérite │ │ │ Liste complémentaire = mérite │ │ │ Non retenus = ordre oral │ │ │ -> cec_admis_2 DESC, │ │ │ -> cec_liste DESC, │ │ │ -> cec_rang ASC, │ │ │ -> cec_ordre_oral ASC │ │ │GROUPE = [2] -> 2ème groupe d'épreuves + épreuves facultatives │ │ │ = [T] -> deux groupes d'épreuves + épreuves facultatives │ │NOTES_MM │Liste des Notes pour le 2ème groupe d'épreuves │ │ │TRI : Liste principale = mérite │ │ │ Liste complémentaire = mérite │ │ │ Non retenus = mérite │ │ │ -> cec_liste DESC, │ │ │ -> cec_rang ASC, │ │ │ -> cec_note_total DESC, │ │ │ -> cec_admis_2 DESC, │ │ │ -> cec_ordre_oral ASC │ │ │GROUPE = [2] -> 2ème groupe d'épreuves + épreuves facultatives │ │ │ = [T] -> deux groupes d'épreuves + épreuves facultatives │ │NOTIF_M │Notification de la décision du jury et des notes obtenues │ │ │Admissibles 1er groupe d'épreuves (si 2 groupes d'épreuves) │ │ │Présents 2ème groupe d'épreuves (si 1 seul groupe d'épreuves) │ │ │- tri selon l'ordre de mérite (liste des notes) │ │NOTIF_N │Notification de la décision du jury et des notes obtenues │ │ │Admissibles 1er groupe d'épreuves (si 2 groupes d'épreuves) │ │ │Présents 2ème groupe d'épreuves (si 1 seul groupe d'épreuves) │ │ │- tri selon la place ou l'ordre oral) │ └──────────┴───────────────────────────────────────────────────────────────────┘ ┌──────────┬───────────────────────────────────────────────────────────────────┐ │ace_mj │ OBJETS │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │HF_JURY │Répartition hommes/femmes et par niveaux hiérarchiques │ │ │- des membres de jury │ │ │- des présidents de jury │ │HF_JURY_lp│Répartition hommes/femmes et par niveaux hiérarchiques │ │ │- des membres de jury │ │ │- des présidents de jury │ │ ├───────────────────────────┬┬─────────────┬─────────────┬──────────┤ │ │ Bilans ││Membres jury │Président(e) │ │ │ │ du Ministère │├──────┬──────┼──────┬──────┤ Niveau │ │ │ par niveau hiérarchique ││Hommes│Femmes│Hommes│Femmes│ │ │ ├───────────────────────────┼┼──────┼──────┼──────┼──────┼──────────┤ │ │Emplois de direction ││[ ]│[ ]│[ ]│[ ]│ A (1) │ │ │Emplois d'Administrateur ││[ ]│[ ]│[ ]│[ ]│ A (2) │ │ │Emplois d'attaché ││[ ]│[ ]│[ ]│[ ]│ A (3) │ │ ├───────────────────────────┼┼──────┼──────┼──────┼──────┼──────────┤ │ │Agents publics de niveau A ││[ ]│[ ]│[ ]│[ ]│ A │ │ ├───────────────────────────┼┼──────┼──────┼──────┼──────┼──────────┤ │ │Agents publics de niveau B ││[ ]│[ ]│[ ]│[ ]│ B (5) │ │ ├───────────────────────────┼┼──────┼──────┼──────┼──────┼──────────┤ │ │Agents publics de niveau C ││[ ]│[ ]│[ ]│[ ]│ C (5) │ │ ├───────────────────────────┼┼──────┼──────┼──────┼──────┼──────────┤ │ │Autres ││[ ]│[ ]│[ ]│[ ]│ D (6) │ │ ├───────────────────────────┴┴──────┴──────┴──────┴──────┴──────────┤ │mj_bilan │Statistiques annuelles pour le Ministère (Membres du jury) │ │mj_convoc │Convocations des membres du jury │ │mj_emarge │Liste d'émargement des membres du jury │ │MJ_ITEM │Création du destinataire (N°, nom, prénom) pour affichage │ │mj_label │Étiquettes adresses pour l'envoi des demandes de sujets │ │MJ_LIST │Mailing-list des membres du jury à convoquer par E.mail │ │mj_liste │Liste des membres du jury par ordre alphabétique │ │MJ_MAIL │Création de l'adresse e-mail du destinataire │ │mj_mandat │Note de mandatement │ │MJ_MSG │Création du message pour l'envoi des convocations par e-mail │ │mj_nh+hf │Répartition hommes/femmes des membres du jury │ │ │ des présidents de jury │ │MJ_sh │Impression de l'écran "sh" pour confirmation de l'E-mailing réel │ ├──────────┴──────────────┬Ex&Co───────┐┌────Traitement────────────┐┌Logname───┤ │Validation [ ]│[ ]┘└[ ][ ]┘└[ ]┤ │Convoc. mailing[ ]│[ ]│ │O.M. mailing[ ]│[ ]│ │Accueil mailing[ ]│[ ]│ │Premier jour [ ]│[ ]│ ├─────────────────────────┼────────────────────────────────────────────────────┤ │Validation [ ]│ │ │Date mailing[ ]│[ SUIVI HISTORIQUE DES CONVOCATIONS ]│ │Heure mailing[ ]│ │ ├─────────────────────────┼────────────────────────────────────────────────────┤ │Mailing + courrier [ ]│┌N°───┐┌M..┐┌Nom - Prénom────────┐ ┌Pièce jointe┐│ │ │[ ][ ][ ] │ [ ] ││ │Mailing prévu [ ]│ [ ] └────────────┘│ │Mailing traité [ ]│┌Établ.──┐ ┌Établissement─────────────────────────┐│ │Mailing envoyé [ ]│[ ] [ ]│ │Mailing aborté [ ]│ [ ] [ ]│ │ ├────────────────────────────────────────────────────┤ │Courrier [ ]│(Mailing + Courrier) - Mailing prévu │ ├──────────┬──────────────┴────────────────────────────────────────────────────┤ │mj_sujets │Demande de sujets │ │mj_tj │Liste des travaux des membres du jury │ │se_centre │Liste d'émargement des surveillants par centre │ │se_convoc │Convocation des chefs de salle (épreuves d'admissibilité) │ │se_liste │Liste des surveillants │ └──────────┴───────────────────────────────────────────────────────────────────┘ ┌──────────┬───────────────────────────────────────────────────────────────────┐ │ace_mj_n │ OBJETS │ ├──────────┼───────────────────────────────────────────────────────────────────┤ │HF_JURY │Répartition hommes/femmes et par niveaux hiérarchiques │ │ │- des membres de jury │ │ │- des présidents de jury │ │HF_JURY_lp│Répartition hommes/femmes et par niveaux hiérarchiques │ │ │- des membres de jury │ │ │- des présidents de jury │ │ ├───────────────────────────┬┬─────────────┬─────────────┬──────────┤ │ │ Bilans ││Membres jury │Président(e) │ │ │ │ du Ministère │├──────┬──────┼──────┬──────┤ Niveau │ │ │ par niveau hiérarchique ││Hommes│Femmes│Hommes│Femmes│ │ │ ├───────────────────────────┼┼──────┼──────┼──────┼──────┼──────────┤ │ │Emplois de direction ││[ ]│[ ]│[ ]│[ ]│ A (1) │ │ │Emplois d'Administrateur ││[ ]│[ ]│[ ]│[ ]│ A (2) │ │ │Emplois d'attaché ││[ ]│[ ]│[ ]│[ ]│ A (3) │ │ ├───────────────────────────┼┼──────┼──────┼──────┼──────┼──────────┤ │ │Agents publics de niveau A ││[ ]│[ ]│[ ]│[ ]│ A │ │ ├───────────────────────────┼┼──────┼──────┼──────┼──────┼──────────┤ │ │Agents publics de niveau B ││[ ]│[ ]│[ ]│[ ]│ B (5) │ │ ├───────────────────────────┼┼──────┼──────┼──────┼──────┼──────────┤ │ │Agents publics de niveau C ││[ ]│[ ]│[ ]│[ ]│ C (5) │ │ ├───────────────────────────┼┼──────┼──────┼──────┼──────┼──────────┤ │ │Autres ││[ ]│[ ]│[ ]│[ ]│ D (6) │ │ ├───────────────────────────┴┴──────┴──────┴──────┴──────┴──────────┤ │mj_convoc │Convocations des membres du jury │ │mj_emarge │Liste d'émargement des membres du jury │ │mj_label │Étiquettes adresses pour l'envoi des demandes de sujets │ │mj_liste │Liste des membres du jury par ordre alphabétique │ │mj_mandat │Note de mandatement │ │mj_sujets │Demande de sujets │ │MJ_TJ │Liste des travaux des membres du jury (pour EXCEL) │ └──────────┴───────────────────────────────────────────────────────────────────┘
■ Liste chronologique des fonctionnalités
Application OSMOSE (Formation Continue)
Cette liste a fait l'objet d'un Billet dans le chapitre consacré aux bonnes pratiques de développement pour illustrer l'amélioration incrémentale « just-in-time ».
4. Les utilitaires
Progressivement, chacun organise et constitue sa petite boîte à outils. Parmi ces outils, dans un environnement « Unix/Informix », on peut citer des utilitaires de compilation d’écrans, de vues, d’états, des modèles de shells, de requêtes SQL, des outils de conversion de caractères, etc.
ATTENTION : les outils de conversion de caractères sont proposés à titre d'information. Transférés du monde AIX (caractères ISO) vers le monde Windows (caractères ASCII) puis de Windows vers ce Billet, l'affichage des caractères à convertir est très incertain.
► Shell de compilation de l’ensemble des écrans
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 # compile_per SMSO=`tput smso` RMSO=`tput rmso` BLINK=`tput blink` compile() { for i in `ls ${NOM}.per 2>/dev/null` do CPT=`expr $CPT + 1` echo "Compilation de $i" > `tty` sformbld $i if [ $? -ne 0 ] then echo "Erreur lors de la compilation de $i !!!" > `tty` LISTE_ERR="$LISTE_ERR\n$i" else CPT_OK=`expr $CPT_OK + 1` fi done return } LISTE_ERR="" export LISTE_ERR clear echo ""$SMSO"Utilitaire de compilation des écrans"$RMSO"\n\n" while true do echo "Répertoire source ("$BLINK"[Return]=../isql"$RMSO") : \c" read REP if [ "$REP" = "" ] then REP=../isql fi tput cup 3 39 echo $REP if [ ! -d "$REP" ] then echo "Répertoire $REP inexistant !!!" continue else break fi done cd $REP if [ $? -ne 0 ] then echo "Impossible de se positionner sous $REP" exit fi echo "\n"$BLINK"Syntaxe unix sans l'extension [.per], [Return]=Tout"$RMSO"" echo "Nom des écrans à compiler : \c" read NOM if [ "$NOM" = "" ] then NOM=* fi echo "" export CPT=0 export CPT_OK=0 compile 1>trace.$$ 2>&1 echo "\n\nNombre d'écrans à compiler : $CPT" # echo "Nombre d'écrans compilés avec succès : `ls ${NOM}.frm 2>/dev/null | wc -l` " echo "Nombre d'écrans compilés avec succÞs : $CPT_OK" echo "\nListe des écrans non compilées : \n$LISTE_ERR" echo "" echo $LISTE_ERR > per.err.$$ echo "Fichier liste : per.err.$$" echo "Fichier trace : trace.$$\n\n"
► Shell de compilation de l’ensemble des vues
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 # compile_view SMSO=`tput smso` RMSO=`tput rmso` BLINK=`tput blink` compile() { for i in `ls view_${NOM}.sql 2>/dev/null` do CPT=`expr $CPT + 1` echo "Compilation de view_$i" > `tty` cp ../bull/isql_view . ed - "isql_view" << ! ,s/VIEW/$i/g ,s/\.sql//g w q ! chmod 770 isql_view ../isql/isql_view if [ $? -ne 0 ] then echo "Erreur lors de la compilation de view_$i !!!" > `tty` LISTE_ERR="$LISTE_ERR\nview_$i" else CPT_OK=`expr $CPT_OK + 1` fi done return } LISTE_ERR="" export LISTE_ERR clear echo ""$SMSO"Utilitaire de compilation des vues"$RMSO"\n\n" while true do echo "Répertoire source ("$BLINK"[Return]=../isql"$RMSO") : \c" read REP if [ "$REP" = "" ] then REP=../isql fi tput cup 3 39 echo $REP if [ ! -d "$REP" ] then echo "Répertoire $REP inexistant !!!" continue else break fi done cd $REP if [ $? -ne 0 ] then echo "Impossible de se positionner sous $REP" exit fi echo "" echo ""$BLINK"Syntaxe UNIX sans préfixe [view_], ni extension [.sql], [Return]=Tout"$RMSO"" echo "Nom des vues à compiler : \c" read NOM if [ "$NOM" = "" ] then NOM=\* fi export CPT=0 export CPT_OK=0 compile 1>trace.$$ 2>&1 echo "\n\nNombre de vues à compiler : $CPT" # echo "Nombre de vues compilées avec succès : `ls ${NOM}.sql 2>/dev/null | wc -l` " echo "Nombre de vues compilées avec succès : $CPT_OK" echo "\nListe des vues non compilées : \n$LISTE_ERR" echo "" echo $LISTE_ERR > view.err.$$ echo "Fichier liste : view.err.$$" echo "Fichier trace : trace.$$\n\n"
► Shell de compilation de l’ensemble des éditions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 # compile_ace SMSO=`tput smso` RMSO=`tput rmso` BLINK=`tput blink` compile() { for i in `ls ${NOM}.ace 2>/dev/null` do CPT=`expr $CPT + 1` echo "Compilation de $i" > `tty` saceprep $i if [ $? -ne 0 ] then echo "Erreur lors de la compilation de $i !!!" > `tty` LISTE_ERR="$LISTE_ERR\n$i" else CPT_OK=`expr $CPT_OK + 1` fi done return } LISTE_ERR="" export LISTE_ERR clear echo ""$SMSO"Utilitaire de compilation des états"$RMSO"\n\n" while true do echo "Répertoire source : \c" read REP if [ ! -d "$REP" ] then echo "Répertoire $REP inexistant !!!" continue else break fi done cd $REP if [ $? -ne 0 ] then echo "Impossible de se positionner sous $REP" exit fi echo ""$BLINK"Syntax unix sans l'extension [.ace], [Return]=Tout"$RMSO"" echo "Nom des états à compiler : \c" read NOM if [ "$NOM" = "" ] then NOM=* fi export CPT=0 export CPT_OK=0 compile 1>trace.$$ 2>&1 echo "\n\nNombre d'états à compiler : $CPT" # echo "Nombre d'états compilés avec succès : `ls ${NOM}.arc 2>/dev/null | wc -l` " echo "Nombre d'états compilés avec succès : $CPT_OK" echo "\nListe des états non compilés : \n$LISTE_ERR" echo "" echo $LISTE_ERR > ace.err.$$ echo "Fichier liste : ace.err.$$" echo "Fichier trace : trace.$$\n\n"
► Shell DBEXPORT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 {------------------------------------------------------------------------------} { DBEXPORT -> Shell à exécuter Il y a lieu de : 1. Être seul utilisateur 2. Paramétrer DBDATE=DMY4/ 3. Se positionner sur le répertoire où doit être créé le fichier d'exportation ../tmp 4. Supprimer le fichier osmose.out s'il existe 5. Supprimer le répertoire ../tmp/dbexport.exp s'il existe 6. Taper la commande : dbexport osmose -> Le fichier osmose.out sera créé Les deux dernières lignes de ce fichier sont les suivantes : - dbexport completed - une ligne vierge -> Le répertoire ../tmp/dbexport.exp sera créé Ce répertoire contiendra : - toutes les tables "unloadées" et suffixées ".unl" - le fichier "osmose.sql" identique au fichier ../tmp/osmose.out sans ses deux dernières lignes } {------------------------------------------------------------------------------} { DBDATE=DMY4/ export DBDATE cd /osmose/osmose/tmp dbexport osmose } {------------------------------------------------------------------------------}
► Shell de création du device pour imprimante en connexion directe sur le système
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 # create_queue # création du device pour imprimante en connexion directe sur le système mkdev -l HP106 -c printer -t 'hplj-4+' -s 'rs232' -p 'sa3' -w '3' # création de la queue associée /usr/lib/lpd/pio/etc/piomkpq -A 'local' -p 'hplj-4+' -d 'HP106' -D pcl -q 'HP106' # exemple pour reparamétrer la queue au format A4 /usr/lib/lpd/pio/etc/piochpq -q 'HP106' -d 'HP106' -a s1='4' -a s2='4' -a s7='4' -a s0='4' [table="class: outer_border, align: left"] [tr] [td] I-2.4. Documentation développeur
► SQL dbschema.sql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 {------------------------------------------------------------------------------} { dbschema.sql 1. -> Shell à exécuter : cd /osmose/osmose dbschema -d /osmose/osmose osmose.sql 2. -> Les tables systables.tabtype = "T" sont traitées dans l'ordre suivant : - systables.tabid, - systables.tabname Lorsque dbschema s'interrompt en signalant une erreur comme : "Item en double pour un index unique" Il y a lieu de : 1. Lister les tables dans l'ordre où elles sont traitées pour repérer la table à traiter qui pose problème c'est-à-dire, celle qui suit la dernière table du fichier SQL créée par dbschema (osmose.sql) unload to systables.out select systables.tabid, systables.tabname from systables where systables.tabtype = "T" order by systables.tabid; 2. - Faire un unload de la table incriminée - Droper la table - Créer la table à partir du sql "create_bdd.sql - Créer ses index à partir du sql "create_idx.sql - Loader depuis le fichier unload précédemment créé } {------------------------------------------------------------------------------} { cd /osmose/osmose dbschema -d /osmose/osmose osmose.sql } {------------------------------------------------------------------------------}
► Outil de traduction
- des caractères accentués ISO vers ASCII
- des caractères semi-graphiques doubles en simples
- des fins de lignes AIX en fins de ligne DOS
- de convertion du fichier PCL en fichier PDF
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 # isoTOpcl clear cat << EOF Outil de traduction des caractères accentués ISO vers ASCII des caractères semi-graphiques doubles en simples des fins de lignes AIX en fins de ligne DOS de conversion du fichier PCL en fichier PDF EOF while true do echo "répertoire source : \c" read REP if [ ! -d "$REP" ] then echo "Répertoire $REP inexistant !!!" continue else break fi done cd $REP if [ $? -ne 0 ] then echo "Impossible de se positionner sous $REP" exit fi echo "nom des fichiers à convertir (syntaxe unix) : \c" read NOM export CPT=0 for i in `ls ${NOM} 2>/dev/null` do CPT=`expr $CPT + 1` echo "Convertion de $i" cat $i | sed -f ../bull/isoTOpcl.sed > $i.pcl ../bull/pcl2pdf $i.pcl $i.pdf if [ $? -ne 0 ] then echo "Erreur lors de la convertion de $i !!!" rm -f $i.tmp else cp $i.tmp $i rm -f $i.tmp fi done echo "\n\nNombre de fichier(s) converti(s) : $CPT" # isoTOpcl.sed # s/$/ /g # s/à/…/g # s/â/ƒ/g # s/é/‚/g # s/è/Š/g # s/ë/‰/g # s/ê/ˆ/g # s/î/Œ/g # s/ô/“/g # s/û/–/g # s/ç/‡/g # s/°/ø/g # s/½/«/g # s/§//g # s/³/³/g # s/´/³/g # s/µ/³/g # s/¶/³/g # s/·/ù/g # s/¸/ù/g # s/¹/³/g # s/º/³/g # s/»/ù/g # s/¼/ù/g # s/½/ù/g # s/¾/ù/g # s/¿/ù/g # s/À/ù/g # s/Á/Ä/g # s/Â/Ä/g # s/Ã/³/g # s/Ä/Ä/g # s/Å/ù/g # s/Æ/³/g # s/Ç/³/g # s/È/ù/g # s/É/ù/g # s/Ê/Ä/g # s/Ë/Ä/g # s/Ì/³/g # s/Í/Ä/g # s/Î/ù/g # s/Ï/Ä/g # s/Ð/Ä/g # s/Ñ/Ä/g # s/Ò/Ä/g # s/Ó/ù/g # s/Ô/ù/g # s/Õ/ù/g # s/Ö/ù/g # s/×/ù/g # s/Ø/ù/g # s/Ù/ù/g # s/Ú/ù/g
► Outil de traduction des caractères accentués ASCII en caractères accentués ISO :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 # asciiTOiso clear cat << EOF Outil de traduction des caractères accentués ASCII en caractères accentués ISO : à â ç é è ë ê î ï ô û ° ½ § Alt/144 = "E" (Alt/144 -> E accent aigu) Alt/254 = "-" (Alt/254 -> puce) Alt/249 = "-" (Alt/249 -> Gros point centré) EOF while true do echo "répertoire source : \c" read REP if [ ! -d "$REP" ] then echo "Répertoire $REP inexistant !!!" continue else break fi done cd $REP if [ $? -ne 0 ] then echo "Impossible de se positionner sous $REP" exit fi echo "nom des fichiers à convertir (syntaxe unix) : \c" read NOM export CPT=0 for i in `ls ${NOM} 2>/dev/null` do CPT=`expr $CPT + 1` echo "Convertion de $i" cat $i | sed -f ../bull/asciiTOiso.sed > $i.tmp if [ $? -ne 0 ] then echo "Erreur lors de la convertion de $i !!!" rm -f $i.tmp else mv $i.tmp $i fi done echo "\n\nNombre de fichier(s) converti(s) : $CPT" # asciiTOiso.sed # s/…/à/g # s/ƒ/â/g # s/‡/ç/g # s/‚/é/g # s/Š/è/g # s/ˆ/ê/g # s/‰/ë/g # s//î/g # s/‹/ï/g # s/“/ô/g # s/–/û/g # s/ø/°/g # s/«/½/g # s/ /§/g # s//E/g # s/þ/-/g # s/ù/./g
► Outil de traduction des caractères accentués ISO en caractères accentués ASCII
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 # isoTOascii clear cat << EOF Outil de traduction des caractères accentués ISO en caractères accentués ASCII Cette outil traduit dans les fichiers les caractères ISO : à â ç é è ê ë î ï ô û ° ½ § EOF while true do echo "répertoire source : \c" read REP if [ ! -d "$REP" ] then echo "Répertoire $REP inexistant !!!" continue else break fi done cd $REP if [ $? -ne 0 ] then echo "Impossible de se positionner sous $REP" exit fi echo "nom des fichiers à convertir (syntaxe unix) : \c" read NOM export CPT=0 for i in `ls ${NOM} 2>/dev/null` do CPT=`expr $CPT + 1` echo "Convertion de $i" cat $i | sed -f ../bull/isoTOascii.sed > $i.tmp if [ $? -ne 0 ] then echo "Erreur lors de la convertion de $i !!!" rm -f $i.tmp else cp $i.tmp $i rm -f $i.tmp fi done echo "\n\nNombre de fichier(s) converti(s) : $CPT" # isoTOascii.sed # s/à/…/g # s/â/ƒ/g # s/é/‚/g # s/è/Š/g # s/ê/ˆ/g # s/ë/‰/g # s/î/Œ/g # s/ï/‹/g # s/ô/“/g # s/û/–/g # s/ç/‡/g # s/°/ø/g # s/½/«/g # s/§/ /g
► Outil de suppression des caractères fin de ligne DOS (CARRIAGE RETURN)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 # dtox clear cat << EOF Outil de suppression des caractères fin de ligne DOS (CARRIAGE RETURN) EOF while true do echo "répertoire source : \c" read REP if [ ! -d "$REP" ] then echo "Répertoire $REP inexsistant !!!" continue else break fi done cd $REP if [ $? -ne 0 ] then echo "Impossible de se positionner sous $REP" exit fi echo "nom des fichiers à convertir (syntaxe unix) : \c" read NOM echo "" export CPT=0 for i in `ls ${NOM} 2>/dev/null` do CPT=`expr $CPT + 1` echo "Convertion de $i" cat $i | sed -f ../bull/dtox.sed > $i.tmp if [ $? -ne 0 ] then echo "Erreur lors de la convertion de $i !!!" rm -f $i.tmp else cp $i.tmp $i rm -f $i.tmp fi done echo "\n\nNombre de fichier(s) converti(s) : $CPT" # dtox.sed # s/ //g
5. La documentation développeur
■ L’application est un tout
L’application est un tout. Chaque programme est un tout. « Le vrai est le tout » Hegel
« Le vrai est le tout » signifie que l'on ne comprend une chose qu'en refusant de l'isoler et de la considérer hors du processus dans lequel elle s'insère.
Aucun dossier, tout est dans l’application. L’application se suffit à elle-même, pour les gestionnaires aussi bien que pour les informaticiens. Les consignes DBA, de gestion et de maintenance font l’objet de sous-menus uniquement accessibles par le développeur.
Il n’y a pas de manuel utilisateur papier, les gestionnaires peuvent éventuellement solliciter n’importe-où dans leur application les informations qui peuvent leur être nécessaires mais en pratique, ils ne le font jamais, car ce sont eux, en fait, qui ont conçu leur propre outil. Ils disposent toutefois de fonctionnalités dans leur application pour créer s’ils le souhaitent leur propre documentation. L’objectif est de rendre les utilisateurs-gestionnaires totalement autonomes, d’œuvrer pour qu’ils s’approprient leur outil.
Le développeur n’est qu’un traducteur des besoins exprimés par les utilisateurs-gestionnaires. Par ailleurs, l’application est en même temps un outil pédagogique pour les gestionnaires novices. Ils n’apprennent pas à utiliser leur logiciel, c’est le logiciel qui leur apprend leur métier.
Menu Administrateur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 ┌──────────────────────────────────────────────────────────────────────────────┐ │ GESTION PAF 2001-2002 │ │ │ │ 1. ┌──────────────────────────┤[ ]├┐ 15. ┌──────────────────────────┤/\/├┐│ │ 2. │MANUEL │ 16. │MANUEL ││ │ 3. │INSTALLER L'APPLICATIF │ 17. │INSTALLER L'APPLICATIF ││ │ 4. │A PROPOS DE L'APPLICATIF │ 18. │A PROPOS DE L'APPLICATIF ││ │ 5. │LA FORMATION CONTINUE │ 19. │LA FORMATION CONTINUE ││ │ 6. │ARBORESCENCE │ 20. │ARBORESCENCE ││ │ 7. │LISTE DES TABLES │ 21. │LISTE DES TABLES ││ │ 8. │LISTE DES SHELL, ACE, SQL │ 22. │LISTE DES SHELL, ACE, SQL ││ │ 9. │DICTIONNAIRE DES DONNEES │ 23. │DICTIONNAIRE DES DONNEES ││ │ 10. │MEMORENDUM DES DEVELOPPEMENTS │ 24. │MEMORENDUM DES DEVELOPPEMENTS ││ │ 11. │LES NEWS │ 25. │LES NEWS ││ │ 12. │ │ 26. │ ││ │ 13. │ │ 27. │ ││ │ 14. └───────────────────────────────┘ 28. └──────────────────────────┤[?]├┘│ │ │ │ │ │Use space bar, arrow keys, or type number to make selection. │ │Enter 'e' to return to previous menu or exit. │ │Enter carriage return to execute selection: 3 │ │ │ │ [ ] -> écrans │ │ /\/ -> états │ │ [?] -> informations │ └──────────────────────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────────┐ │ RENTREE PAF 2001-2002 │ │ │ │ 1. ┌──────────────────────────────────────────────────────────┐ │ │ 2. │RENAME DES TABLES HISTORISEES │ │ │ 3. │INDEX DES TABLES HISTORISEES │ │ │ 4. │ACTUALISATION DES VUES PAF │ │ │ 5. │ DES VUES PNF │ │ │ 6. │ DES VUES ca (modifier le sql) │ │ │ 7. │ DES SYNONYMES │ │ │ 8. ├──────────────────────────────────────────────────────────┤ │ │ 9. │SAUVEGARDE DE L'APPLICATION │ │ │ 10. │SHUTDOWN │ │ │ 11. ├──────────────────────────────────────────────────────────┤ │ │ 12. │NOUVELLE IMPRIMANTE DE DESTINATION │ │ │ 13. └──────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │Use space bar, arrow keys, or type number to make selection. │ │Enter 'e' to return to previous menu or exit. │ │Enter carriage return to execute selection: 1 │ │ │ │ │ │ │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────────┐ │ │ O │ S │ M │ O │ S │ E │ │ │ │ │ 1. ┌───────────────────────────────┐ 15. ┌───────────────────────────────┐│ │ 2. │ETABLISSEMENTS, COMMUNES, ... │ 16. │ETABLISSEMENTS : CHRONOLOGIQUE ││ │ 3. │GRADES, CORPS, DISCIPLINES, ...│ 17. │ETABLISSEMENTS : LIEU DISTRIBUE││ │ 4. │CANDIDATS/FORMATEURS │ 18. │FOURNISSEURS : NOM ││ │ 5. │ │ 19. │NATURES ETABLISSEMENTS ││ │ 6. │ │ 20. │GRADES : CHRONOLOGIQUE ││ │ 7. │ │ 21. │GRADES : ALPHABETIQUE ││ │ 8. │MàJ PARAMETRES DE L'APPLICATION│ 22. │ ││ │ 9. │MàJ NOMENCLATURE BUDGETAIRE │ 23. │ ││ │ 10. └───────────────────────────────┘ 24. └───────────────────────────────┘│ │ 11. ┌───────────────────────────────┐ 25. ┌───────────────────────────────┐│ │ 12. │AJOUT NOMENCLATURE BUDGETAIRE │ 26. │MàJ DES PERSONNES DUPLIQUEES ││ │ 13. │REINITIALISATION DES FLAGS │ 27. │FUSION DE DEUX ETABLISSEMENTS ││ │ 14. └───────────────────────────────┘ 28. └──────────────────────────┤[?]├┘│ │ │ │ │ │Use space bar, arrow keys, or type number to make selection. │ │Enter 'e' to return to previous menu or exit. │ │Enter carriage return to execute selection: 1 │ │ │ │ │ │ │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
■ Chaque programme est un tout
Chaque programme se suffit à lui-même pour en comprendre la fonctionnalité, il inclut toutes les informations nécessaires à sa compréhension, shell notamment.
Le RAD, s'appuyant sur un AGL de réalisation, n'aborde pas cet aspect de l'écriture d'un programme (structure d’accueil), mais il porte un avis identique concernant la suppression des dossiers :
- Il faut faire disparaître la notion de dossier de programmation, tout en améliorant réellement les conditions de maintenance.
- La documentation de réalisation a pour but principal de faciliter l'évolution des fonctionnalités, évolution qui inclut dans le temps la maintenance corrective et applicative.
- La documentation, directement incorporée aux modules, objets et procédures dont elle décrit les fonctions, est enfin réellement exploitable, immédiatement localisable et facile à actualiser.
Intervenir sur un programme est une chose, mettre en conformité des dossiers en est une autre, astreignante, non rentable. Le temps passé sur des dossiers qui ne seront peut-être même jamais lus, ne l'est pas en développement. S'ils existent, leur conformité avec les programmes n'est jamais garantie. Il n'y a qu'une seule vérité : le programme. Exit les dossiers et les organigrammes ! Cela suppose bien sûr que conception et réalisation soit agglomérées, qu'il y ait fusion du travail d’analyse avec le travail de programmation (principe RAD).
On trouve commenté en fin de programme, le shell qui permet d’exécuter le programme. Cette démarche permet d’intervenir sur le programme sans avoir à en sortir pour vérifier ou mettre les paramètres en cohérence. Cela permet également d’avoir une sauvegarde du shell en cas de suppression accidentelle.
Les cobolistes, s’il en reste, reconnaitront dans l’exemple ci-après l’équivalent de leur « IDENTIFICATION DIVISION ». Le compilateur Informix utilisé (saceprep) est très permissif. Il appartient au développeur de se créer un canevas, un environnement de développement type, structuré, confortable, réutilisable, en même temps qu’une identité visuelle agréable et la moins contraignante possible.
Un programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408 {================================= SYSTABLES ==================================} { } { ACE : SYSTABLES.ace } { } { SHELL : ../shell/SYSTABLES } { } { AUTEUR : IFA2377 } { } { Objet : Liste des tables } { } { - nombre de colonnes } { - nombre de rangées } { - synonymes } { - vues } { } { (les noms de tables, les synonymes et les vues ne doivent pas } { dépasser 10 caractères) } { } { Date : 31 Mars 2004 } { } {==============================================================================} { ┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ TABLES |M|A|B|A|S|E| │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ PAGE : 1. ┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐ │ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sys_c │ 13│ 12 727│ │ │colonnes │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sys_d │ 7│ 1 030│ │ace │développements │ │ │ │ │ │per │ │ │ │ │ │ │shl │ │ │ │ │ │ │sql │ │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sys_t │ 4│ 191│ │ │tables │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sysmenuitems│ 5│ 6 958│ │ │sysmenuitems │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │sysmenus │ 2│ 371│ │ │sysmenus │ └────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────┘ ┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐ │ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │ ├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤ │ 188│ 5 072│ 1 018 493│ 58│ 128│ │ └────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────┘ } {======================} {============================} DATABASE MABASE END {==========================} {======================} {================================} DEFINE {==================================} {} {} {} PARAM[1] p_traitement CHAR(1) {} {} {} {} VARIABLE t_tabname CHAR(12) {} {} VARIABLE t_tabname_2 CHAR(21) {} {} VARIABLE s_tabname CHAR(10) {} {} VARIABLE v_tabname CHAR(10) {} {} {} {} VARIABLE ctr_ntabs INTEGER {} {} VARIABLE ctr_ncols INTEGER {} {} VARIABLE ctr_nrows INTEGER {} {} VARIABLE ctr_nsyns INTEGER {} {} VARIABLE ctr_nvues INTEGER {} {} {} {} VARIABLE sys_ncols INTEGER {} {} VARIABLE sys_nrows INTEGER {} {} {} {} VARIABLE AIG_BEFORE CHAR(1) {} {} VARIABLE ESC CHAR(1) {} {} {} {==================================} END {===================================} {=================================== INPUT ====================================} {} {} { PROMPT FOR v_c_dm USING "Question ? " } {} {} {==================================== END ==================================} {================================} OUTPUT {==================================} {} {} {} REPORT TO PIPE "cat > ${LOGNAME}.prt" {} {} TOP MARGIN 0 {} {} BOTTOM MARGIN 0 {} {} LEFT MARGIN 0 {} {} PAGE LENGTH 1000 {} {} TOP OF PAGE "^L" {} {} {} {==================================} END {===================================} {=================================} SELECT {=================================} SYSTABLES.tabid syst_tabid, SYSTABLES.tabname syst_tabname, SYSTABLES.ncols syst_ncols, SYSTABLES.nrows syst_nrows, SYS_T.tabname_2 syst_tabname_2 FROM SYSTABLES, SYS_T WHERE SYSTABLES.tabtype = "T" AND SYSTABLES.tabname <> "syschecks" AND SYSTABLES.tabname <> "syscolauth" AND SYSTABLES.tabname <> "syscoldepend" AND SYSTABLES.tabname <> "syscolumns" AND SYSTABLES.tabname <> "sysconstraints" AND SYSTABLES.tabname <> "sysdefaults" AND SYSTABLES.tabname <> "sysdepend" AND SYSTABLES.tabname <> "sysdistrib" AND SYSTABLES.tabname <> "sysindexes" AND SYSTABLES.tabname <> "sysobjstate" AND SYSTABLES.tabname <> "sysprocauth" AND SYSTABLES.tabname <> "sysprocbody" AND SYSTABLES.tabname <> "sysprocedures" AND SYSTABLES.tabname <> "sysprocplan" AND SYSTABLES.tabname <> "sysreferences" AND SYSTABLES.tabname <> "syssynonyms" AND SYSTABLES.tabname <> "syssyntable" AND SYSTABLES.tabname <> "systabauth" AND SYSTABLES.tabname <> "systables" AND SYSTABLES.tabname <> "systrigbody" AND SYSTABLES.tabname <> "systriggers" AND SYSTABLES.tabname <> "sysusers" AND SYSTABLES.tabname <> "sysviews" AND SYSTABLES.tabname <> "sysviolations" AND SYSTABLES.tabname = SYS_T.tabname {============================} INTO TEMP SYST; {=============================} {=================================} SELECT {=================================} SYSSYNTABLE.btabid sysb_tabid, "S" sysb_dtype, SYSTABLES.tabname sysb_tabname FROM SYSSYNTABLE, SYSTABLES WHERE SYSSYNTABLE.tabid = SYSTABLES.tabid {=============================} UNION SELECT {==============================} SYSDEPEND.btabid sysb_tabid, SYSDEPEND.dtype sysb_dtype, SYSTABLES.tabname sysb_tabname FROM SYSDEPEND, SYSTABLES WHERE SYSDEPEND.dtabid = SYSTABLES.tabid {============================} INTO TEMP SYSB; {=============================} {=================================} SELECT {=================================} SYST.*, SYSB.* FROM SYST, OUTER SYSB WHERE SYST.syst_tabid = SYSB.sysb_tabid {===============================} ORDER BY {================================} syst_tabname, sysb_dtype, sysb_tabname {==================================} END {===================================} {=================================} FORMAT {=================================} {----------------------} BEFORE GROUP OF syst_tabname {----------------------} LET ctr_ntabs = ctr_ntabs + 1 LET ctr_ncols = ctr_ncols + syst_ncols LET ctr_nrows = ctr_nrows + syst_nrows LET sys_ncols = syst_ncols LET sys_nrows = syst_nrows LET t_tabname = syst_tabname LET t_tabname_2 = syst_tabname_2 LET AIG_BEFORE = 1 {---------------------------} FIRST PAGE HEADER {---------------------------} LET ctr_ntabs = 0 LET ctr_ncols = 0 LET ctr_nrows = 0 LET ctr_nsyns = 0 LET ctr_nvues = 0 LET ESC = ASCII 027 IF p_traitement = "I" THEN PRINT ESC,"&k0g4S", ESC,"&l26a6c4h1X", ESC,"&a7L", ESC,"(10U", ESC,"(s3B"; ELSE PRINT ""; PRINT "┌──────────────────────────────────────────────────────────────────────────────┐" PRINT "│ │" PRINT "│ TABLES |M|A|B|A|S|E| │" PRINT "│ │" PRINT "└──────────────────────────────────────────────────────────────────────────────┘" PRINT COLUMN 71, "PAGE : ", PAGENO USING "##." PRINT "┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐" PRINT "│ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │" PRINT "├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤" {------------------------------- PAGE HEADER -------------------------------} {------------------------------- PAGE TRAILER -------------------------------} {------------------------------} ON EVERY ROW {------------------------------} {-------------------------- TRAITEMENT FIN DE PAGE --------------------------} {------------------------ TRAITEMENT EN-TETE DE PAGE ------------------------} {------------------------ TRAITEMENT LIGNE COURANTE ------------------------} IF p_traitement = "I" AND LINENO > 80 THEN BEGIN PRINT "└──────────────────────────────────────────────────────────────────────────────┘" SKIP TO TOP OF PAGE PRINT "┌──────────────────────────────────────────────────────────────────────────────┐" PRINT "│ │" PRINT "│ TABLES |M|A|B|A|S|E| │" PRINT "│ │" PRINT "└──────────────────────────────────────────────────────────────────────────────┘" PRINT COLUMN 71, "PAGE : ", PAGENO USING "##." LET AIG_BEFORE = 1 PRINT "┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐" PRINT "│ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │" LET t_tabname = syst_tabname LET t_tabname_2 = syst_tabname_2 END IF AIG_BEFORE = "1" THEN BEGIN LET AIG_BEFORE = "0" PRINT "├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤" END LET s_tabname = "" LET v_tabname = "" IF sysb_dtype = "S" THEN BEGIN LET s_tabname = sysb_tabname LET ctr_nsyns = ctr_nsyns + 1 END IF sysb_dtype = "V" THEN BEGIN LET v_tabname = sysb_tabname LET ctr_nvues = ctr_nvues + 1 END PRINT "│", t_tabname, "│", sys_ncols USING "## ### ###", "│", sys_nrows USING "## ### ###", "│", s_tabname, "│", v_tabname, "│", t_tabname_2, "│" LET t_tabname = "" LET t_tabname_2 = "" LET sys_ncols = "" LET sys_nrows = "" {--------------------------- AFTER GROUP OF ---------------------------} {------------------------------} ON LAST ROW {-------------------------------} PRINT "└────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────┘" PRINT "┌────────────┬──────────┬──────────┬──────────┬──────────┬─────────────────────┐" PRINT "│ TABLES │ COLONNES │ RANGEES │SYNONYMES │ VUES │ NOMS │" PRINT "├────────────┼──────────┼──────────┼──────────┼──────────┼─────────────────────┤" PRINT "│", ctr_ntabs USING " ## ### ###", "│", ctr_ncols USING "## ### ###", "│", ctr_nrows USING "## ### ###", "│", ctr_nsyns USING "## ### ###", "│", ctr_nvues USING "## ### ###", "│ ", "│" PRINT "└────────────┴──────────┴──────────┴──────────┴──────────┴─────────────────────┘" { - Réinitialisation de l'imprimante "HP LASER III SI" } { PRINT ESC,"E"} {===================================} END {==================================} {=================================== SHELL ====================================} { # SYSTABLES clear echo "┌LISTE DES TABLES───────────────────────────────────────────────────────┐" echo "│ │" echo "│TRAITEMENT ? [ <──┘ ]=[A]ffichage de la liste │" echo "│ [I]=[I]mpression de la liste │" echo "└───────────────────────────────────────────────────────────────────────┘" echo "" cd ../shell SMSO=`tput smso` RMSO=`tput rmso` # TRAITEMENT tput cup 2 14 echo $SMSO" "$RMSO tput cup 2 14 read P_0 tput cup 2 14 echo " " if [ "$P_0" = "" -o "$P_0" = "A" ] then P_0=A else P_0=I fi tput cup 2 14 echo $P_0 tput cup 5 0 echo " Traitement en cours... \c" sacego -q ../ace/SYSTABLES $P_0 if [ "$P_0" = "A" ] then cp $(LOGNAME).prt ../doc/SYSTABLES.doc more ../doc/SYSTABLES.doc else cat $(LOGNAME).prt | sed -f ../bull/ISOtoPC-8.sed > $(LOGNAME).tmp mv $(LOGNAME).tmp $(LOGNAME).prt lp $(LOGNAME).prt > /dev/null echo " TERMINE !" fi } {==============================================================================} { # ISOtoPC-8.sed # Conversion des caractères accentués s/à/…/g s/â/ƒ/g s/é/‚/g s/è/Š/g s/ë/‰/g s/ê/ˆ/g s/ï/‹/g s/î/Œ/g s/ô/“/g s/û/–/g s/ç/‡/g s/°/ø/g s/½/«/g s/§//g} } {==============================================================================}
6. Une documentation à postériori
■ Un outil de formation
Il s’agit de constituer un outil unique de formation, d’auto-formation, non au logiciel mais au métier et qui soit également un véritable cahier des charges en vue d’entreprendre plus classiquement mais sans « effet tunnel » un nouveau développement de l’applicatif avec les outils et moyens du moment. Plusieurs logiciels permettent sans doute de réaliser ce genre de documentation, PowerPoint par exemple.
PowerPoint permet facilement de créer des diapositives avec des captures d’écran commentées et d’insérer des liens vers des états PDF. Mais PowerPoint, certes ludiques, est très consommateur de mémoire. Il convient alors de segmenter la documentation en créant autant de PPT que de sous-menus, reliés entre eux par des liens hypertextes. Recréer le menu de l’application sous PowerPoint peut paraître fastidieux et démotivant car en fin de compte cela fait double emploi mais l’ajout de commentaires pertinents rend le document très intéressant.
■ Un cahier des charges atypique
La documentation à postériori, lorsqu’elle a la chance de se concrétiser invente un cahier des charges bien loin du cahier des charges classique MCD/MCT. Elle modélise la base documentaire que constitue le mémorandum.
La démarche APL/AML permet rarement d’atteindre cette étape charnière. Cela suppose :
- que l’applicatif soit arrivé à maturité afin que l’allègement progressif du temps de développement permette l’investissement,
- que l’organisation ad’hoc ait été normalisée (bureaucratisée),
- que l’investissement soit rentable, c’est-à-dire que les dirigeants comprennent la nécessité de redévelopper une nouvelle application.
L’expérience révèle que l’application existante leur donnant toute satisfaction en l’état, les dirigeants ne voient pas l’intérêt de réinvestir dans un nouveau projet. L’informatisation de la problématique se dégrade inéluctablement par l’obsolescence progressive des moyens matériels et logiciels mis en œuvre. La veille technologique est une vaine préoccupation et l’on s’achemine en fin de compte vers la situation de crise à l’origine de la démarche APL-AML. L’histoire n’est qu’un éternel recommencement.
■ Des diaporamas PowerPoint
Une relative disponibilité en fin de développement a permis d’expérimenter la réalisation d’une documentation à postériori telle qu’elle a été imaginée. Bien que sa réalisation ne soit pas allée jusqu’à son terme et n’ait finalement servi à rien, la création de 23 diaporamas PowerPoint mérite que l’on s’y intéresse. Certaines diapos créées à partir de captures d’écrans concernant un traitement batch sont dotées d’un bouton « état » qui permet de visualiser le résultat PDF du traitement.
Deux extraits de ces diaporamas PowerPoint, enregistrés au format PDF puis compressés pour respecter la limite imposée de 2 Mo, donnent une idée concrète de la démarche même si bien sûr un PDF ne peut restituer l’effet visuel et sonore du PowerPoint.
I-2.3.2. OSMOSE-Menu.7z
I-2.3.2. OSMOSE-Lexique.7z
Le logiciel de compression utilisé est 7-Zip. En principe, les fichiers sont auto-extractibles.
Ou après leur téléchargement, faire un clic droit sur chaque fichier pour ouvrir le menu contextuel et choisir « Extract files… ». Un dossier du nom du fichier compressé est créé à l’emplacement du fichier compressé qui contiendra le fichier PDF décompressé.
NB : Compresser et décompresser en Zip sans logiciel avec Windows 10
Conclusion
Le négatif : les diaporamas sont trop gourmands en ressources informatiques temps/mémoire et en temps de réalisation. Leur finalité doit être sacrément motivante pour justifier l’investissement développeur, trop souvent plus important sur la forme que sur le fonds.
Le positif : PowerPoint oblige à percevoir et à exprimer l’utilisation de l’application dans une approche pédagogique, épurée, pertinente.
En redécouvrant ces diaporamas PowerPoint avec 12 ans de recul, deux mots me viennent à l’esprit : pépites et gâchis. Ayant découvert tardivement la possibilité d’enregistrer un diaporama au format PDF, j’avais entrepris de rédiger un fichier Word à partir des diapos d’un des diaporamas. La démarche est totalement inutile dans la mesure où l’application a été poubellisée mais le résultat ouvre de nouveaux horizons en matière de documentation.
Quelque soit l’outil, PowerPoint ou Word, réaliser ce genre de documentation requière des qualités rédactionnelles, de synthèse et de mise en page.
I-2.3. Documentation et outils développeur
▲ I-2.3.1. Environnement de Développement Intégré (EDI)
► I-2.3.2. AGL minimaliste
▼ I-2.4.1. Manuel utilisateur
Mis à jour 25/02/2024 à 12h57 par APL-AML
Tags:
informix,
méthodologie,
sgbd,
unix
- Catégories
- ■ APL-AML , I- L’ART , I-2. Règles de réalisation