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
|
LET versionsnummer=" 2.2.1";INT VAR kanal:=0,meinestation:=0;ROW 2TEXT VAR
ausbaustufe;ausbaustufe(1):="0,1,6,";ausbaustufe(2):="0,1,6,3,4,2,5,";INT
VAR ausbaustufenr:=1;LET teilsystem4="4",teilsystem6="6",teilsystem2="2",
teilsystem5="5";LET praefixtrenner=".",teilsystemtrenner=",",allgemeinedatei=
"0";TEXT VAR gueltigepraefixe:=",";TEXT VAR installverzeichnis:="";TASK VAR
tasksourcequelle,testtask;BOOL VAR fehlerbeiinsert:=FALSE ,
idanichtinstallierbar:=FALSE ;LET stundenplanpraefix="Stundenplan-*";LET
kurswahlpraefix="Kurswahl-*";TEXT VAR qtt:="SCHULIS-Quellen";page;TEXT VAR
procaufruf1:="setze schulis zeichensatz(""",procaufruf2:=
"setze ida zeichensatz(""",procaufrufende:=""")",gewzeichensatz:="";BOOL VAR
exists:=TRUE ;disablestop;gewzeichensatz:=font(1);IF iserrorTHEN clearerror;
line;putline("Vor Installation bitte Fonttabelle in "+
"Task 'configurator' laden!");enablestop;ELSE enablestop;WHILE existsREP page
;cursor(10,10);put("Bitte gewünschten Schrifttyp für Listen und andere");
cursor(10,11);put("Druckausgaben angeben : ");editget(gewzeichensatz);exists
:=NOT fontexists(gewzeichensatz)PER ;procaufruf1CAT gewzeichensatz;
procaufruf1CAT procaufrufende;procaufruf2CAT gewzeichensatz;procaufruf2CAT
procaufrufende;startinsertinggesamtsystem;commanddialogue(FALSE );forget(all)
;commanddialogue(TRUE );FI ;BOOL PROC einzurichten(TEXT CONST teilsystemnr):
pos(gueltigepraefixe,teilsystemtrenner+teilsystemnr+teilsystemtrenner)>0END
PROC einzurichten;TEXT PROC inv(TEXT CONST txt):""+txt+"�"ENDPROC inv;PROC
startinsertinggesamtsystem:TASK VAR t;INT VAR msgcode;DATASPACE VAR ds:=
nilspace;maske;maskentexteinitialisieren;maskentexte;IF NOT maskeeditiert
THEN LEAVE startinsertinggesamtsystemFI ;line;kanal:=channel;taskpassword(
taskpasswort);beginpassword(beginnpasswort);fetch((ALL sourcetaskbaisydb)
LIKE "*BAISY-0",sourcetaskbaisydb);INT VAR pospraefixende;THESAURUS VAR thes
:=allLIKE "*.BAISY-0";TEXT VAR datenraumname;INT VAR indexthes:=0;get(thes,
datenraumname,indexthes);WHILE indexthes>0REP pospraefixende:=pos(
datenraumname,praefixtrenner);ausbaustufenr:=int(subtext(datenraumname,1,
pospraefixende-1));forget(datenraumname,quiet);get(thes,datenraumname,
indexthes)PER ;gueltigepraefixeCAT ausbaustufe(ausbaustufenr);
tasksourcequelle:=sourcetaskbaisy;checkoff;fetchundinsert("BASIS.files");
break(quiet);disablestop;IF NOT fehlerbeiinsertTHEN begin("ACCESS",PROC
startinsertingaccess,t);call(t,0,ds,msgcode);IF msgcode=0THEN fehlerbeiinsert
:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin("baisy server",PROC
startinsertingbaisyserver,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin("ida server",
PROC startinsertingidaserver,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin(
"anschreiben server",PROC startinsertinganschreibenserver,t);call(t,0,ds,
msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT
fehlerbeiinsertTHEN begin("statistik server",PROC
startinsertingstatistikserver,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin(
"kurswahl server",PROC startinsertingkurswahlserver,t);call(t,0,ds,msgcode);
IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN
begin("stundenplan server",PROC startinsertingstundenplanserver,t);call(t,0,
ds,msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT
fehlerbeiinsertTHEN begin("DB.kom",PROC startinsertingdbkom,t);call(t,0,ds,
msgcode);IF msgcodeMOD 2=0THEN fehlerbeiinsert:=TRUE FI ;IF msgcode>=2THEN
idanichtinstallierbar:=TRUE FI FI ;clearerror;enablestop;continue(kanal);
putline("Hier ist wieder "+name(myself));putline("SCHULIS ist "+fehler+
" eingerichtet !");IF idanichtinstallierbarTHEN putline(
"Das Modul ""Anwenderspezifische Druckausgaben"" wurde nicht eingerichtet,");
putline("da die EUMEL-Textverarbeitung fehlt !");lineFI ;IF NOT
fehlerbeiinsertTHEN putline(
"Bitte Task ""isp.archive"" unter SYSUR einrichten!");putline(
"Bitte Task ""LOG"" unter SYSUR einrichten! <RETURN>")ELSE putline(
"Bitte beliebige Taste (außer STOP und SV) drücken !")FI ;pause;
freeglobalmanager.fehler:IF fehlerbeiinsertTHEN "FEHLERHAFT"ELSE
"ordnungsgemäß"FI .END PROC startinsertinggesamtsystem;PROC
startinsertingbaisyserver:TASK VAR ruftask;INT VAR msgcodert;DATASPACE VAR
dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);line;putline(name
(myself));tasksourcequelle:=sourcetaskbaisy;line;IF taskpasswort=""THEN
taskpassword("-")ELSE taskpassword(taskpasswort)FI ;beginpassword(
beginnpasswort);disablestop;fetch((ALL sourcetaskbaisydb)LIKE "*BAISY-*",
sourcetaskbaisydb);INT VAR pospraefixende;THESAURUS VAR thes:=allLIKE (text(
ausbaustufenr)+".BAISY-*");TEXT VAR datenraumname,neuername;INT VAR indexthes
:=0;get(thes,datenraumname,indexthes);WHILE indexthes>0REP pospraefixende:=
pos(datenraumname,praefixtrenner);neuername:=subtext(datenraumname,
pospraefixende+1);rename(datenraumname,neuername);get(thes,datenraumname,
indexthes)PER ;fetchundinsert("BAISY SERVER.files");IF iserrorTHEN putline(
errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;putline(name(
myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0
ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);do("baisy server")END PROC
startinsertingbaisyserver;PROC startinsertingidaserver:TASK VAR ruftask;INT
VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
continue(kanal);line;putline(name(myself));tasksourcequelle:=
sourcetaskschulis;#fehlerbeiinsert:=FALSE ;#line;IF taskpasswort=""THEN
taskpassword("-")ELSE taskpassword(taskpasswort)FI ;beginpassword(
beginnpasswort);disablestop;fetchundinsert("0.IDA SERVER.files");IF iserror
THEN putline(errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;
putline(name(myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN
msgcodert:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);do("ida server"
)END PROC startinsertingidaserver;PROC startinsertingstundenplanserver:TASK
VAR ruftask;INT VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,
msgcodert,ruftask);continue(kanal);line;putline(name(myself));#
fehlerbeiinsert:=FALSE ;#line;taskpassword("-");beginpassword("-");fetch((
ALL sourcetaskschulisdb)LIKE stundenplanpraefix,sourcetaskschulisdb);putline(
name(myself)+" ist komplett.");break(quiet);msgcodert:=1;send(ruftask,
msgcodert,dsrt);freeglobalmanager;END PROC startinsertingstundenplanserver;
PROC startinsertingstatistikserver:TASK VAR ruftask;INT VAR msgcodert;
DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);
line;putline(name(myself));tasksourcequelle:=sourcetaskschulis;#
fehlerbeiinsert:=FALSE ;#line;IF taskpasswort=""THEN taskpassword("-")ELSE
taskpassword(taskpasswort)FI ;beginpassword(beginnpasswort);disablestop;
fetchundinsert("5.STATISTIK SERVER.files");IF iserrorTHEN putline(
errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;putline(name(
myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0
ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);do("statistik manager")END
PROC startinsertingstatistikserver;PROC startinsertingkurswahlserver:TASK
VAR ruftask;INT VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,
msgcodert,ruftask);continue(kanal);line;putline(name(myself));#
fehlerbeiinsert:=FALSE ;#line;taskpassword("-");beginpassword("-");fetch((
ALL sourcetaskschulisdb)LIKE kurswahlpraefix,sourcetaskschulisdb);putline(
name(myself)+" ist komplett.");break(quiet);msgcodert:=1;send(ruftask,
msgcodert,dsrt);freeglobalmanager;END PROC startinsertingkurswahlserver;PROC
startinsertinganschreibenserver:TASK VAR ruftask;INT VAR msgcodert;DATASPACE
VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);line;putline(
name(myself));#fehlerbeiinsert:=FALSE ;#line;taskpassword(taskpasswort);
beginpassword(beginnpasswort);disablestop;fetch("VORDRUCKE.files",
sourcetaskvordrucke);fetch(ALL "VORDRUCKE.files",sourcetaskvordrucke);
clearerror;enablestop;putline(name(myself)+" ist komplett.");break(quiet);
msgcodert:=1;send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
startinsertinganschreibenserver;PROC startinsertingdbdd:TASK VAR t,ruftask;
INT VAR msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=nilspace;wait(dsrt
,msgcodert,ruftask);continue(kanal);line;putline(name(myself));line;
taskpassword(taskpasswort);beginpassword(beginnpasswort);disablestop;
tasksourcequelle:=sourcetaskschulis;fetchundinsert("0.IDA SICHERUNG.files");
tasksourcequelle:=sourcetaskbaisy;fetchundinsert("SICHERUNG.files");do(
"postfix ("""")");do("ausgabe namen");do("kf (TRUE)");IF iserrorTHEN putline(
errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;IF NOT
fehlerbeiinsertTHEN erzeugeeumelbasebaisy;erzeugeeumelbaseschulis;FI ;break(
quiet);IF NOT fehlerbeiinsertTHEN begin("statistik sicherung",PROC
startinsertingstatistiksich,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin(
"schulis sicherung",PROC startinsertingschulissich,t);call(t,0,ds,msgcode);
IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN
begin("baisy sicherung",PROC startinsertingbaisysich,t);call(t,0,ds,msgcode);
IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN
begin("ida sicherung",PROC startinsertingidasich,t);call(t,0,ds,msgcode);IF
msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF fehlerbeiinsertTHEN msgcodert
:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanagerEND
PROC startinsertingdbdd;PROC startinsertingstatistiksich:TASK VAR ruftask;
INT VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
continue(kanal);line;putline(name(myself));line;taskpassword(taskpasswort);
beginpassword(beginnpasswort);break(quiet);msgcodert:=1;send(ruftask,
msgcodert,dsrt);do("statistik(TRUE)");do(" postfix ("""") ");commanddialogue(
FALSE );do("isp monitor sicherungstask(""Statistik"")")END PROC
startinsertingstatistiksich;PROC startinsertingidasich:TASK VAR ruftask;INT
VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
continue(kanal);line;putline(name(myself));line;taskpassword(taskpasswort);
beginpassword(beginnpasswort);break(quiet);msgcodert:=1;send(ruftask,
msgcodert,dsrt);do("ida(TRUE)");do("open mit loeschen (FALSE)");do(
" postfix ("""") ");do(" fetch dd (""EUMELbase.schulis"") ");do(
" BOOL VAR b:: db open (""EUMELbase.schulis"") ");commanddialogue(FALSE );do(
"isp monitor sicherungstask(""EUMELbase.schulis"")")ENDPROC
startinsertingidasich;PROC startinsertingschulissich:TASK VAR ruftask;INT
VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
continue(kanal);line;putline(name(myself));line;taskpassword(taskpasswort);
beginpassword(beginnpasswort);tasksourcequelle:=sourcetaskschulisdb;fetch((
ALL tasksourcequelle)LIKE "EUMELbase.schulis*",tasksourcequelle);break(quiet)
;msgcodert:=1;send(ruftask,msgcodert,dsrt);do(
"isp monitor sicherungstask(""EUMELbase.schulis"")")ENDPROC
startinsertingschulissich;PROC startinsertingbaisysich:TASK VAR ruftask;INT
VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
continue(kanal);line;putline(name(myself));line;taskpassword(taskpasswort);
beginpassword(beginnpasswort);tasksourcequelle:=sourcetaskbaisydb;fetch((ALL
tasksourcequelle)LIKE "EUMELbase.baisy*",tasksourcequelle);fetch((ALL
tasksourcequelle)LIKE "*BAISY-*",tasksourcequelle);rename(text(ausbaustufenr)
+".BAISY-0","BAISY-0");rename(text(ausbaustufenr)+".BAISY-1","BAISY-1");break
(quiet);msgcodert:=1;send(ruftask,msgcodert,dsrt);do(
"isp monitor sicherungstask(""EUMELbase.baisy"")")ENDPROC
startinsertingbaisysich;PROC startinsertingdbkom:TASK VAR t,ruftask;INT VAR
msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=nilspace;wait(dsrt,
msgcodert,ruftask);continue(kanal);line;putline(name(myself));
tasksourcequelle:=sourcetaskbaisy;#fehlerbeiinsert:=FALSE ;#
idanichtinstallierbar:=FALSE ;line;taskpassword(taskpasswort);beginpassword(
beginnpasswort);disablestop;fetch("EUMELbase.schulis",sourcetaskschulisdb);
fetchundinsert("DB.files");IF iserrorTHEN putline(errormessage);clearerror;
fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);IF NOT fehlerbeiinsertTHEN
begin("DB.dd",PROC startinsertingdbdd,t);call(t,0,ds,msgcode);IF msgcode=0
THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin(
"standard",PROC startinsertingstandard,t);call(t,0,ds,msgcode);IF msgcodeMOD
2=0THEN fehlerbeiinsert:=TRUE FI ;IF msgcode>=2THEN idanichtinstallierbar:=
TRUE FI FI ;continue(kanal);putline(name(myself)+" ist komplett.");break(
quiet);IF fehlerbeiinsertTHEN msgcodert:=0ELSE msgcodert:=1FI ;IF
idanichtinstallierbarTHEN msgcodert:=msgcodert+2FI ;send(ruftask,msgcodert,
dsrt);freeglobalmanager;END PROC startinsertingdbkom;PROC
startinsertingstandard:TASK VAR t,ruftask;INT VAR msgcodert,msgcode;
DATASPACE VAR dsrt:=nilspace,ds:=nilspace;wait(dsrt,msgcodert,ruftask);
continue(kanal);line;putline(name(myself));tasksourcequelle:=sourcetaskbaisy;
#fehlerbeiinsert:=FALSE ;#idanichtinstallierbar:=FALSE ;line;taskpassword(
taskpasswort);beginpassword(beginnpasswort);disablestop;fetchundinsert(
"STANDARD.files");IF iserrorTHEN putline(errormessage);clearerror;
fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);IF einzurichten(teilsystem6
)THEN IF NOT fehlerbeiinsertTHEN IF procexists("autopageform")THEN begin(
"ida",PROC startinsertingida,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ELSE idanichtinstallierbar:=TRUE FI FI ;FI ;
fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN begin(
"anschrlist werkzeuge",PROC startinsertinganschrlistwerkzeuge,t);call(t,0,ds,
msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=
FALSE ;IF NOT fehlerbeiinsertTHEN begin("erfassungen",PROC
startinsertingerfassungen,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsert
THEN begin("anwendung",PROC startinsertinganwendung,t);call(t,0,ds,msgcode);
IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;continue(kanal);putline(name(
myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0
ELSE msgcodert:=1FI ;IF idanichtinstallierbarTHEN msgcodert:=msgcodert+2FI ;
send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
startinsertingstandard;PROC startinsertingaccess:TASK VAR t,ruftask;INT VAR
msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=nilspace;wait(dsrt,
msgcodert,ruftask);continue(kanal);line;putline(name(myself));
tasksourcequelle:=sourcetaskeumelbase;#fehlerbeiinsert:=FALSE ;#line;
taskpassword(taskpasswort);beginpassword(beginnpasswort);disablestop;
fetchundinsert("ACCESS.files");IF iserrorTHEN putline(errormessage);
clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);IF NOT
fehlerbeiinsertTHEN begin("LOCAL",PROC startinsertinglocal,t);call(t,0,ds,
msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT
fehlerbeiinsertTHEN begin("DB REORG",PROC startinsertingdbreorg,t);call(t,0,
ds,msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;continue(kanal);
putline(name(myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN
msgcodert:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);
freeglobalmanagerEND PROC startinsertingaccess;PROC startinsertinglocal:TASK
VAR t,ruftask;INT VAR msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=
nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);line;putline(name(
myself));tasksourcequelle:=sourcetaskschulis;line;taskpassword(taskpasswort);
beginpassword(beginnpasswort);disablestop;fetchundinsert("0.LOCAL.files");IF
iserrorTHEN putline(errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;
enablestop;break(quiet);IF NOT fehlerbeiinsertTHEN begin("MM",PROC
startinsertingmm,t);call(t,0,ds,msgcode);IF msgcode=0THEN fehlerbeiinsert:=
TRUE FI ;FI ;continue(kanal);putline(name(myself)+" ist komplett.");break(
quiet);IF fehlerbeiinsertTHEN msgcodert:=0ELSE msgcodert:=1FI ;send(ruftask,
msgcodert,dsrt);freeglobalmanagerEND PROC startinsertinglocal;PROC
startinsertingdbreorg:TASK VAR t,ruftask;INT VAR msgcodert,msgcode;DATASPACE
VAR dsrt:=nilspace,ds:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);
line;putline(name(myself));tasksourcequelle:=sourcetaskbaisy;line;
taskpassword(taskpasswort);beginpassword(beginnpasswort);disablestop;
fetchundinsert("DB REORG.files");IF iserrorTHEN putline(errormessage);
clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;putline(name(myself)+
" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0ELSE
msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);do("db reorganisation manager")
END PROC startinsertingdbreorg;PROC startinsertingmm:TASK VAR ruftask;INT
VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
continue(kanal);line;putline(name(myself));tasksourcequelle:=
sourcetaskeumelbase;line;taskpassword(taskpasswort);beginpassword(
beginnpasswort);disablestop;fetchundinsert("MM BAISY.files");IF iserrorTHEN
fehlerbeiinsert:=TRUE ;putline(errormessage);clearerrorFI ;enablestop;putline
(name(myself)+" ist komplett.");enablestop;break(quiet);IF fehlerbeiinsert
THEN msgcodert:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);do(
"generate db manager")END PROC startinsertingmm;PROC erzeugeeumelbasebaisy:
disablestop;testtask:=/"EUMELbase.baisy";IF iserrorTHEN clearerror;
tasksourcequelle:=sourcetaskbaisydb;fetch((ALL tasksourcequelle)LIKE
"EUMELbase.baisy*",tasksourcequelle);do(
"BOOL VAR b:: create db (""EUMELbase.baisy"")");do(
"restore db (""EUMELbase.baisy"")");commanddialogue(FALSE );forget(all);
commanddialogue(TRUE );FI ;enablestopENDPROC erzeugeeumelbasebaisy;PROC
erzeugeeumelbaseschulis:disablestop;testtask:=/"EUMELbase.schulis";IF iserror
THEN clearerror;tasksourcequelle:=sourcetaskschulisdb;fetch((ALL
tasksourcequelle)LIKE "EUMELbase.schulis*",tasksourcequelle);do(
"BOOL VAR b:: create db (""EUMELbase.schulis"")");do(
"restore db (""EUMELbase.schulis"")");commanddialogue(FALSE );forget(all);
commanddialogue(TRUE );FI ;enablestopENDPROC erzeugeeumelbaseschulis;PROC
startinsertinganwendung:TASK VAR ruftask,t;INT VAR msgcodert,i;DATASPACE VAR
dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);line;putline(name
(myself));tasksourcequelle:=sourcetaskschulis;line;taskpassword(taskpasswort)
;beginpassword(beginnpasswort);disablestop;tasksourcequelle:=sourcetaskbaisy;
checkoff;fetchundinsert("ANWENDUNG.files");IF iserrorTHEN putline(
errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);
FOR iFROM 1UPTO anzahlschulistasksREP IF NOT fehlerbeiinsertTHEN begin(
"schulis"+text(i),PROC startschulis1,t);FI ;PER ;continue(kanal);putline(name
(myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0
ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
startinsertinganwendung;PROC startinsertinganschrlistwerkzeuge:TASK VAR
ruftask,t;INT VAR msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=nilspace
;wait(dsrt,msgcodert,ruftask);continue(kanal);line;putline(name(myself));
tasksourcequelle:=sourcetaskschulis;#fehlerbeiinsert:=FALSE ;#line;
taskpassword(taskpasswort);beginpassword(beginnpasswort);disablestop;
fetchundinsert("0.ANSCHRLISTWERKZEUGE.files");do(procaufruf1);fetchundinsert(
"0.ANSCHRLISTWERKZEUGE TEIL2.files");IF iserrorTHEN putline(errormessage);
clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);IF einzurichten(
teilsystem5)THEN fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN
installverzeichnis:="5.STATISTIK.files";begin("statistik",PROC
startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;FI ;IF einzurichten(teilsystem2)THEN
fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
"2.AUSWERTUNGEN KURSWAHL.files";begin("auswertungen kurswahl",PROC
startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;FI ;IF einzurichten(teilsystem4)THEN
fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
"4.AUSWERTUNGEN STUNDENPLAN 3.files";begin("auswertungen stundenplan 3",PROC
startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsert
THEN installverzeichnis:="4.AUSWERTUNGEN STUNDENPLAN 2.files";begin(
"auswertungen stundenplan 2",PROC startinsertinganwendungstask,t);call(t,0,ds
,msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=
FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
"4.AUSWERTUNGEN STUNDENPLAN.files";begin("auswertungen stundenplan",PROC
startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT
fehlerbeiinsertTHEN installverzeichnis:="0.ANSCHREIBEN.files";begin(
"anschreiben",PROC startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF
msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT
fehlerbeiinsertTHEN installverzeichnis:="0.LISTEN 2.files";begin("listen 2",
PROC startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsert
THEN installverzeichnis:="0.LISTEN.files";begin("listen",PROC
startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;continue(kanal);putline(name(myself)+
" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0ELSE
msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
startinsertinganschrlistwerkzeuge;PROC startinsertinganwendungstask:TASK VAR
ruftask,t;INT VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,
ruftask);continue(kanal);line;putline(name(myself));tasksourcequelle:=
sourcetaskschulis;#fehlerbeiinsert:=FALSE ;#line;taskpassword(taskpasswort);
beginpassword(beginnpasswort);disablestop;fetchundinsert(installverzeichnis);
IF iserrorTHEN putline(errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;
enablestop;break(quiet);IF NOT fehlerbeiinsertTHEN begin(name(myself)+
" manager",PROC starteaufrufmanager,t);FI ;continue(kanal);putline(name(
myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0
ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
startinsertinganwendungstask;PROC startinsertingerfassungen:TASK VAR ruftask,
t;INT VAR msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=nilspace;wait(
dsrt,msgcodert,ruftask);continue(kanal);line;putline(name(myself));
tasksourcequelle:=sourcetaskschulis;#fehlerbeiinsert:=FALSE ;#line;
taskpassword(taskpasswort);beginpassword(beginnpasswort);disablestop;
fetchundinsert("0.ERFASSUNGEN.files");IF iserrorTHEN putline(errormessage);
clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);IF einzurichten(
teilsystem2)THEN fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN
installverzeichnis:="2.ERFASSUNGEN KURSWAHL 2.files";begin(
"erfassungen kurswahl 2",PROC startinsertinganwendungstask,t);call(t,0,ds,
msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=
FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
"2.ERFASSUNGEN KURSWAHL.files";begin("erfassungen kurswahl",PROC
startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;FI ;IF einzurichten(teilsystem4)THEN IF NOT
fehlerbeiinsertTHEN installverzeichnis:="4.ERFASSUNGEN STUNDENPLAN.files";
begin("erfassungen stundenplan",PROC startinsertingerfassungenstundenplan,t);
call(t,0,ds,msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;FI ;
fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
"0.ERFASSUNGEN EINZELN 2.files";begin("erfassungen einzeln 2",PROC
startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsert
THEN installverzeichnis:="0.ERFASSUNGEN EINZELN.files";begin(
"erfassungen einzeln",PROC startinsertinganwendungstask,t);call(t,0,ds,
msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=
FALSE ;IF einzurichten(teilsystem4)THEN IF NOT fehlerbeiinsertTHEN
installverzeichnis:="4.ERFASSUNGEN LISTENWEISE 3.files";begin(
"erfassungen listenweise 3",PROC startinsertinganwendungstask,t);call(t,0,ds,
msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=
FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
"4.ERFASSUNGEN LISTENWEISE 2.files";begin("erfassungen listenweise 2",PROC
startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
fehlerbeiinsert:=TRUE FI ;FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT
fehlerbeiinsertTHEN installverzeichnis:="0.ERFASSUNGEN LISTENWEISE.files";
begin("erfassungen listenweise",PROC startinsertinganwendungstask,t);call(t,0
,ds,msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;continue(kanal);
putline(name(myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN
msgcodert:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);
freeglobalmanager;END PROC startinsertingerfassungen;PROC
startinsertingerfassungenstundenplan:TASK VAR ruftask,t;INT VAR msgcodert;
DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);
line;putline(name(myself));tasksourcequelle:=sourcetaskschulis;#
fehlerbeiinsert:=FALSE ;#line;taskpassword(taskpasswort);beginpassword(
beginnpasswort);disablestop;fetchundinsert("4.ERFASSUNGEN STUNDENPLAN.files")
;IF iserrorTHEN putline(errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;
enablestop;break(quiet);IF NOT fehlerbeiinsertTHEN begin(name(myself)+
" manager",PROC starteaufrufmanagersingletask,t);FI ;continue(kanal);putline(
name(myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert
:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanager;END
PROC startinsertingerfassungenstundenplan;PROC starteaufrufmanager:do(
"starte aufruf manager")ENDPROC starteaufrufmanager;PROC
starteaufrufmanagersingletask:do("starte aufruf manager(1)")ENDPROC
starteaufrufmanagersingletask;PROC startinsertingida:TASK VAR ruftask,t;INT
VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
continue(kanal);line;putline(name(myself));tasksourcequelle:=
sourcetaskschulis;line;taskpassword(taskpasswort);beginpassword(
beginnpasswort);disablestop;fetchundinsert("6.IDA.files");do(procaufruf2);IF
iserrorTHEN putline(errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;
enablestop;break(quiet);IF NOT fehlerbeiinsertTHEN begin("ida manager",PROC
starteaufrufmanager,t);FI ;continue(kanal);putline(name(myself)+
" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0ELSE
msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
startinsertingida;PROC startbaisy1:do("monitor")END PROC startbaisy1;PROC
startschulis1:disablestop;startschulisunterdisablestop;IF iserrorTHEN
clearerrorFI ;enablestop;do("monitor")END PROC startschulis1;PROC
startschulisunterdisablestop:enablestop;do(
"oeffne datenbank (""EUMELbase.schulis"")");do("starte schulis");END PROC
startschulisunterdisablestop;PROC fetchundinsert(TEXT CONST datname):IF
fehlerbeiinsertTHEN LEAVE fetchundinsertFI ;disablestop;fetch(datname,
tasksourcequelle);putline("Task "+name(myself)+" wird eingerichtet !");INT
VAR indexnr:=0;TEXT VAR thesname;THESAURUS VAR thes:=ALL datname;get(thes,
thesname,indexnr);WHILE indexnr>0REP IF dateizuberuecksichtigen(thesname)
THEN fetch(thesname,tasksourcequelle);putline(thesname);INT VAR taskkanal:=
channel;break(quiet);insert(thesname);continue(taskkanal);IF iserrorTHEN
fehlerbeiinsert:=TRUE ;put(errormessage);clearerrorFI ;forget(thesname,quiet)
FI ;get(thes,thesname,indexnr);PER ;commanddialogue(FALSE );forget(datname,
quiet);commanddialogue(TRUE );enablestop.END PROC fetchundinsert;BOOL PROC
dateizuberuecksichtigen(TEXT CONST dateiname):INT VAR pospraefixende:=pos(
dateiname,praefixtrenner);TEXT VAR dateipraefix:=subtext(dateiname,1,
pospraefixende-1);IF dateipraefix=""THEN TRUE ELIF dateipraefix=
allgemeinedateiTHEN TRUE ELIF dateipraefix>"9"THEN TRUE ELSE pos(
gueltigepraefixe,teilsystemtrenner+dateipraefix+teilsystemtrenner)>0FI END
PROC dateizuberuecksichtigen;LET invers="",inversoff="",cdown=10,cup=3,esc=
27,hop=1,zeilenlaenge=80,strichelement="=",maxiofelder=15;TYPE MASKENTEXTE =
STRUCT (INT x,y,l,TEXT t,BOOL lfest);ROW maxiofelderMASKENTEXTE VAR mt;TASK
PROC sourcetask(INT CONST i):IF int(mt[i+1].t)<>meinestationTHEN int(mt[i+1].
t)/mt[i].tELSE /mt[i].tFI ENDPROC sourcetask;TASK PROC sourcetaskbaisy:
sourcetask(1)ENDPROC sourcetaskbaisy;TASK PROC sourcetaskschulis:sourcetask(3
)ENDPROC sourcetaskschulis;TASK PROC sourcetaskeumelbase:sourcetask(5)
ENDPROC sourcetaskeumelbase;TASK PROC sourcetaskvordrucke:sourcetask(7)
ENDPROC sourcetaskvordrucke;TASK PROC sourcetaskbaisydb:sourcetask(9)ENDPROC
sourcetaskbaisydb;TASK PROC sourcetaskschulisdb:sourcetask(11)ENDPROC
sourcetaskschulisdb;INT PROC anzahlschulistasks:int(mt[13].t)ENDPROC
anzahlschulistasks;TEXT PROC taskpasswort:mt[14].tENDPROC taskpasswort;TEXT
PROC beginnpasswort:mt[15].tENDPROC beginnpasswort;PROC writexytext(INT
CONST x,y,TEXT CONST t):cursor(x,y);write(t)ENDPROC writexytext;PROC
writexyinvers(INT CONST x,y,TEXT CONST t):cursor(x,y);write(invers+t+
inversoff)ENDPROC writexyinvers;PROC strich(INT CONST zeile):writexytext(1,
zeile,zeilenlaenge*strichelement)ENDPROC strich;PROC kosmetik:page;strich(1);
strich(4);strich(23);kopf.kopf:writexyinvers(27,2," S C H U L I S ");
writexytext(10,3,"Installationsprogramm für SCHULIS Version "+versionsnummer)
.ENDPROC kosmetik;PROC maske:kosmetik;fuss;rumpf.fuss:writexyinvers(2,24,
"ESC HOP = Start CURSOR UP/DOWN = nächstes/voriges Feld ESC ESC = Abbruch"
);.rumpf:writexytext(3,5,
"BAISY-Quelltexte in Task : auf Station:");
writexytext(3,7,
"SCHULIS-Quelltexte in Task : auf Station:");
writexytext(3,9,
"EUMELbase-Quelltexte in Task: auf Station:");
writexytext(3,11,
"Vordrucke in Task : auf Station:");
writexytext(3,13,
"BAISY-Datenbank in Task : auf Station:");
writexytext(3,15,
"SCHULIS-Datenbank in Task : auf Station:");
writexytext(3,20,"Anzahl der Arbeitsplätze für SCHULIS:");writexytext(3,22,
"Task-Password: Beginn-Password:").ENDPROC maske;
TEXT PROC mystation:text(station(myself))ENDPROC mystation;PROC
maskentexteinitialisieren:setmt(1,33,5,27,"BAISY-Quellen");setmt(2,75,5,3,
mystation,TRUE );setmt(3,33,7,27,"SCHULIS-Quellen");setmt(4,75,7,3,mystation,
TRUE );setmt(5,33,9,27,"EUMELbase-Quellen");setmt(6,75,9,3,mystation,TRUE );
setmt(7,33,11,27,"VORDRUCKE");setmt(8,75,11,3,mystation,TRUE );setmt(9,33,13,
27,"BAISY-SCHULIS-DB");setmt(10,75,13,3,mystation,TRUE );setmt(11,33,15,27,
"BAISY-SCHULIS-DB");setmt(12,75,15,3,mystation,TRUE );setmt(13,45,20,3,"1",
TRUE );setmt(14,18,22,21,"");setmt(15,60,22,21,"");ENDPROC
maskentexteinitialisieren;PROC setmt(INT CONST i,px,py,pl,TEXT CONST pt):
setmt(i,px,py,pl,pt,FALSE )ENDPROC setmt;PROC setmt(INT CONST i,px,py,pl,
TEXT CONST pt,BOOL CONST pf):mt[i].x:=px;mt[i].y:=py;mt[i].l:=pl;mt[i].t:=pt;
mt[i].lfest:=pfENDPROC setmt;PROC maskentexte:INT VAR i;FOR iFROM 1UPTO
maxiofelderREP writexytext(mt[i].x,mt[i].y,text(mt[i].t,mt[i].l))PER ENDPROC
maskentexte;BOOL PROC maskeeditiert:INT VAR fnr:=1,editl;TEXT VAR exitchar:=
"";REP cursor(mt[fnr].x,mt[fnr].y);bestimmeeditlaenge;editget(mt[fnr].t,editl
,mt[fnr].l,"�
","��?",exitchar);exitchar:=exitcharSUB length(exitchar);
SELECT code(exitchar)OF CASE cup:vorigesfeldCASE cdown:naechstesfeldCASE esc:
kosmetik;cursor(8,10);IF yes(
"Soll die Installation tatsächlich abgebrochen werden")THEN LEAVE
maskeeditiertWITH FALSE ELSE restorescreenFI CASE hop:kosmetik;cursor(1,10);
IF yes("Soll mit der Installation von SCHULIS begonnen werden")THEN page;
LEAVE maskeeditiertWITH TRUE ELSE restorescreenFI OTHERWISE :naechstesfeld
ENDSELECT PER ;FALSE .restorescreen:maske;maskentexte.naechstesfeld:fnr:=(fnr
MOD maxiofelder)+1.vorigesfeld:IF fnr=1THEN fnr:=maxiofelderELSE fnrDECR 1FI
.bestimmeeditlaenge:IF mt[fnr].lfestTHEN editl:=mt[fnr].lELSE editl:=maxint-1
FI .ENDPROC maskeeditiert;LET endofpermanenttable=32767;DATASPACE VAR
bulletinds:=nilspace;FILE VAR bulletinfile;TEXT VAR buffer,objectname,pattern
;INT VAR packetlink,linenumber;BOOL VAR found:=TRUE ;BOOL PROC procexists(
TEXT CONST procname):prepbulletin;objectname:=compress(procname);scan(
objectname);nextsymbol(pattern);packetlink:=endofpermanenttable;standardhelp.
prepbulletin:forget(bulletinds);bulletinds:=nilspace;bulletinfile:=
sequentialfile(output,bulletinds);linenumber:=0;buffer:="".standardhelp:
toobject(pattern);found.END PROC procexists;PROC toobject(TEXT CONST
searchedobject):LET endofhashtable=1023;INT VAR permanentpointer,index,ntlink
;ntlink:=0;FOR indexFROM 1UPTO LENGTH searchedobjectREP ntlinkINCR ntlink;IF
ntlink>endofhashtableTHEN ntlinkDECR endofhashtableFI ;ntlink:=(ntlink+code(
searchedobjectSUB index))MOD 1024PER ;found:=FALSE ;WHILE yetanotherntentry
REP permanentpointer:=cdbint(ntlink+1);objectname:=cdbtext(ntlink+2);IF
objectname=searchedobjectTHEN found:=TRUE ;LEAVE toobjectFI PER .
yetanotherntentry:ntlink:=cdbint(ntlink);ntlink<>0.END PROC toobject;INT
PROC cdbint(INT CONST index):EXTERNAL 116END PROC cdbint;TEXT PROC cdbtext(
INT CONST index):EXTERNAL 117END PROC cdbtext;
|