summaryrefslogtreecommitdiff
path: root/app/baisy/2.2.1-schulis/src/isp.manager schnittstelle
blob: 12ba492afdfa55e594552945b69207d2e2c6cdf2 (plain)
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
PACKET ispmanagerschnittstelleDEFINES gibdatenbankkennung,oeffnedatenbank,
initmaske,maskegibtes,maskeloeschen,maskespeichern,maskeumbenennen,
maskekopieren,maskenliste,setzemaske,baumverarbeitung,ladesystembaum,
schulisdbname,#08.02.88dr#baisydbname,#08.02.88dr#setzeschulisdbname,#08.02.
88dr#setzebaisydbname,#08.02.88dr##dnrausk,dnrbenutz,dnrmeld,fnrauskunftsname
,fnrschlverz,fnrauskunftstext,fnrbenutzbestand,fnrbenutzname,
fnrbenutzgeheimwort,fnrbenutzberecht,fnrmeldungsname,fnrmeldungstext#:LET 
PARAM =STRUCT (TEXT textkey1,textkey2,TAG maske);LET pruefen=40,init=41,
loeschen=42,speichern=43,umbenennen=44,kopieren=45,liste=46,newtree=52;#dr06.
07.88indasPACKET "isp schulis db nummern"übernommenLET dnrauskuenfte=2,
fnrauskname=3,fnrauskverz=4,fnrausktext=5,dnrbenutzer=7,fnrbenbestand=8,
fnrbenname=9,fnrbengwort=10,fnrbenrecht=11,dnrmeldungen=12,fnrmeldname=13,
fnrmeldtext=14;#LET ack=0,error=2,ende=3,baumverarbeitungbasis=53;DATASPACE 
VAR ds;BOUND PARAM VAR p;LET manager="baisy server";TASK VAR newmanager;INT 
VAR replycode;TEXT VAR schulisdatenbank:="EUMELbase.schulis",baisydatenbank:=
"EUMELbase.baisy";PROC initdbsneu:neuanmelden;neuinitialisieren.neuanmelden:
newmanager:=baisyserver;.END PROC initdbsneu;PROC neuinitialisieren:forget(ds
);ds:=nilspace;p:=dsEND PROC neuinitialisieren;LET KENNUNGALT =STRUCT (TASK 
managerbaisy,managerschulis,INT baisy,schulis);LET DATENBANKKENNUNG =STRUCT (
TASK newmanager,KENNUNGALT oldmanager);PROC gibdatenbankkennung(DATASPACE 
VAR ds):BOUND DATENBANKKENNUNG VAR dbkennung:=ds;dbkennung.newmanager:=
newmanager;DATASPACE VAR d:=nilspace;BOUND KENNUNGALT VAR kennung:=d;
dbkennung.oldmanager:=kennung;forget(d)END PROC gibdatenbankkennung;PROC 
oeffnedatenbank(DATASPACE CONST ds):BOUND DATENBANKKENNUNG VAR dbkennung:=ds;
newmanager:=dbkennung.newmanager;DATASPACE VAR d:=nilspace;BOUND KENNUNGALT 
VAR kennung:=d;kennung:=dbkennung.oldmanager;oeffneeumelbasebaisydatenbank;#
oeffnedatenbankalt(d);ersetztdurch#kennung.managerbaisy:=/"ei";kennung.
managerschulis:=/"ei";kennung.baisy:=999;kennung.schulis:=999;
neuinitialisierenEND PROC oeffnedatenbank;PROC oeffnedatenbank:
oeffneeumelbasebaisydatenbank;#oeffnedatenbankalt;#initdbsneuEND PROC 
oeffnedatenbank;PROC oeffnedatenbank(TEXT CONST db):fetchdd(db);IF dbopen(db)
THEN setzeschulisdbname(db);oeffnedatenbank;systemdboffELSE errorstop(
"Datenbank der Anwendung konnte nicht geöffnet werden")FI ENDPROC 
oeffnedatenbank;PROC setzebaisydbname(TEXT CONST bdbname):baisydatenbank:=
bdbnameEND PROC setzebaisydbname;PROC setzeschulisdbname(TEXT CONST sdbname):
schulisdatenbank:=sdbnameEND PROC setzeschulisdbname;TEXT PROC baisydbname:
baisydatenbankEND PROC baisydbname;TEXT PROC schulisdbname:schulisdatenbank
END PROC schulisdbname;PROC oeffneeumelbasebaisydatenbank:fetchdd(baisydbname
);IF NOT systemdbopen(baisydbname)THEN errorstop("Datenbank "+baisydbname+
" konnte nicht geöffnet werden")FI ;ENDPROC oeffneeumelbasebaisydatenbank;#
dr06.07.88indasPACKET "isp.schulis db nummern"übernommenINT PROC dnrausk:
dnrauskuenfteENDPROC dnrausk;INT PROC fnrauskunftsname:fnrausknameENDPROC 
fnrauskunftsname;INT PROC fnrschlverz:fnrauskverzENDPROC fnrschlverz;INT 
PROC fnrauskunftstext:fnrausktextENDPROC fnrauskunftstext;INT PROC dnrbenutz:
dnrbenutzerENDPROC dnrbenutz;INT PROC fnrbenutzbestand:fnrbenbestandENDPROC 
fnrbenutzbestand;INT PROC fnrbenutzname:fnrbennameENDPROC fnrbenutzname;INT 
PROC fnrbenutzgeheimwort:fnrbengwortENDPROC fnrbenutzgeheimwort;INT PROC 
fnrbenutzberecht:fnrbenrechtENDPROC fnrbenutzberecht;INT PROC dnrmeld:
dnrmeldungenENDPROC dnrmeld;INT PROC fnrmeldungsname:fnrmeldnameENDPROC 
fnrmeldungsname;INT PROC fnrmeldungstext:fnrmeldtextENDPROC fnrmeldungstext;#
PROC initmaske(TAG VAR t,TEXT CONST name):p.textkey1:=name;sendeauftrag(init)
;t:=p.maskeEND PROC initmaske;BOOL PROC maskegibtes(TEXT CONST name):p.
textkey1:=name;sendeauftrag(pruefen);replycode=ackEND PROC maskegibtes;PROC 
maskeloeschen(TEXT CONST name):p.textkey1:=name;sendeauftrag(loeschen)END 
PROC maskeloeschen;PROC maskespeichern(TEXT CONST name):p.textkey1:=name;
sendeauftrag(speichern)END PROC maskespeichern;PROC maskeumbenennen(TEXT 
CONST alt,neu):p.textkey1:=alt;p.textkey2:=neu;sendeauftrag(umbenennen)END 
PROC maskeumbenennen;PROC maskekopieren(TEXT CONST alt,neu):p.textkey1:=alt;p
.textkey2:=neu;sendeauftrag(kopieren)END PROC maskekopieren;PROC maskenliste(
TEXT CONST dateiname):p.textkey1:=dateiname;sendeauftrag(liste);copy(ds,
dateiname);neuinitialisierenEND PROC maskenliste;PROC setzemaske(TAG CONST t)
:p.maske:=tEND PROC setzemaske;PROC ladesystembaum(DATASPACE VAR d,TEXT 
CONST name):p.textkey1:=name;sendeauftrag(newtree);d:=ds;neuinitialisieren
END PROC ladesystembaum;PROC baumverarbeitung(TEXT VAR dateiname,INT CONST 
aktion):INT VAR wastun:=baumverarbeitungbasis+aktion;IF aktion>4THEN wastun
DECR 2ELIF (aktion=2)COR (aktion=0)THEN FILE VAR f:=sequentialfile(input,
dateiname);INT CONST ch:=channel(myself);TEXT CONST cht:=dateiname+text(ch,2)
;headline(f,cht);break(quiet)FI ;DATASPACE VAR datei:=old(dateiname);INT VAR 
re:=0;call(newmanager,wastun,datei,re);IF (aktion=2)COR (aktion=0)THEN 
continue(ch)FI ;IF re<>ackTHEN IF re<0THEN errorstop("Keine Managertask")
ELSE IF re=errorTHEN BOUND TEXT VAR t:=datei;errorstop(t)ELSE SELECT aktion
OF CASE 2:dateiname:=headline(sequentialfile(input,datei));copy(datei,
dateiname);forget(datei)CASE 3,4:forget(dateiname,quiet);forget(datei);
dateiname:=""OTHERWISE standard;dateiname:=""END SELECT FI FI ELSE standard
FI .standard:forget(dateiname,quiet);copy(datei,dateiname);forget(datei).END 
PROC baumverarbeitung;PROC sendeauftrag(INT CONST auftragsnr):call(newmanager
,auftragsnr,ds,replycode);IF (replycode<>ack)CAND (replycode<>ende)THEN IF 
nomanagerTHEN errorstop(no)ELSE BOUND TEXT VAR t:=ds;TEXT VAR fehlermeldung:=
t;neuinitialisieren;errorstop(fehlermeldung)FI ELSE p:=dsFI .nomanager:
replycode<0.no:"Keine Managertask".END PROC sendeauftrag;END PACKET 
ispmanagerschnittstelle;