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
|
#limit (11.0)##pagelength (16.5)##block#
#start (2.0,0.0)#
#page (69)#
#headodd#
#center#gs-Warenhaus#right#%
#end#
#headeven#
%#center#gs-Warenhaus
#end#
#center#1
#center##on("b")#7 Weitere Kommandos (für Systembetreuer)#off("b")#
Wenn Sie #on("b")#gs-Warenhaus#off("b")# installiert haben und mit dem Aufbau des Systems nach
der automatischen Generierung zufrieden sind, dann ist dieses Kapitel nicht wichtig
für Sie. Wir erklären Ihnen hier die Befehle, mit denen Sie die Einstellungen, die bei
der Installation vorgenommen wurden, auch nachträglich noch ändern können.
Beachten Sie bitte, daß aus Sicherheitsgründen eine Einstellungs#on("b")#änderung#off("b")# i.a. nur in
der Task möglich ist, in der die entsprechende Einstellung vorgenommen wurde, es
sei denn, dort wurde eine Einstellung gänzlich aufgehoben. Außerdem werden Ein
stellungsänderungen stets nur an Sohntasks weitergegeben ("vererbt"), die #on("b")#nach#off("b")# der
Änderung angemeldet werden!
Die Standard-Installation sieht z.B. nur die Einrichtung #on("b")#einer#off("b")# Warenhaus-Hauptstelle
vor. Wenn Sie tatsächlich nur eine Hauptstelle eingerichtet haben, nun aber doch
mehrere Hauptstellen (für verschiedene Lerngruppen) betreiben wollen, so brauchen
Sie das Programm nicht erneut zu insertieren! Machen Sie besser in der bisherigen
Hauptstellen-Task den Hauptstellenstatus mit dem Kommando 'warenhaus haupt
stelle (FALSE)' rückgängig und richten Sie in Sohntasks mit dem Kommando 'waren
haus hauptstelle (TRUE)' wieder neue Hauptstellen ein. Außerdem können Sie in
Hauptstellen-Tasks die Version für die Programmierschnittstelle umstellen ('grin
(TRUE)' bzw. 'grin (FALSE)').
Ähnlich verhält es sich mit dem Betrieb eines Adapters für das Kartenleser-Interface.
Auch hier ist die Standard-Einstellung u.U. nur für den Betrieb #on("b")#eines#off("b")# Adapters ausge
legt. Möchten Sie mehrere Kartenleser anschließen, so sind bei der Verwendung von
MUFIs im Terminalkanal keine Änderungen nötig, da hier jede Filialtask sowieso nur
auf das MUFI zugreifen kann, das in den Kanal des Terminals geschaltet ist, an das
die Task gekoppelt ist. Möchten Sie jedoch mehrere Kartenleser über Adapter an
separaten seriellen Schnittstellen ansprechen, so müssen Sie dem System mehrere
Kanalnummern mitteilen, die für verschiedene Filialtasks ja durchaus unterschied
lich sein können. Am geschicktesten erscheint es in diesem Fall, unter einer Haupt
stelle mehrere "Zwischentasks" einzurichten, in diesen jeweils die Interface-
Kanalnummern festzulegen und die Filialtasks als Söhne dieser "Zwischentasks"
anzumelden. Benennen Sie die "Zwischentasks" so, daß die eingestellte Kanal
nummer aus dem Namen ersichtlich ist, so ist gleich bei der Anmeldung einer Filial
task klar, welcher Kartenleser von dieser Task aus angesprochen werden kann.
Um diesen Aufbau zu realisieren, sollten Sie zunächst in der entsprechenden Haupt
stellentask einen etwa eingerichteten Direktstart mit dem Kommando 'warenhaus
direktstart (FALSE)' aufheben. Ebenfalls in der Hauptstellentask wird dann mit dem
Kommando 'init interface channel' eine etwa vorhandene Kanaleinstellung gelöscht,
wenn Sie bei der Aufforderung 'Gib Interface-Kanal:' eine '0' eingeben. Nun richten
Sie für jeden vorhandenen Adapter (natürlich müssen auch entsprechend viele freie
serielle Schnittstellen zur Verfügung stehen!) eine "Zwischentask" als Sohn der
Hauptstellentask ein (z.B. 'Kanal 5', 'Kanal 6' etc.) und geben dort jeweils wieder das
Kommando 'init interface channel'. Bei der Abfrage 'Gib Interface-Kanal:' geben Sie
dann die entsprechende Kanalnummer ein (in unserem Beispiel 5 oder 6 etc.). Alle
Söhne der Zwischentask 'Kanal 5' z.B. können dann (abwechselnd) den Kartenleser
benutzen, der an den Adapter an Kanal 5 angeschlossen ist. In diesen Zwischentasks
können Sie, wenn Sie möchten, mit dem Kommando 'warenhaus direktstart (TRUE)'
einen Direktstart für die neu anzumeldenden Sohntasks (Filialen) einrichten.
Ansonsten wird #on("b")#gs-Warenhaus#off("b")# in den Sohntasks aus der 'gib Kommando' - Ebene
mit dem Befehl 'warenhaus' gestartet (vgl. Kapitel 3.3).
Sollten Sie beim Betrieb eines Codekartenlesers feststellen, daß die Wartezeit beim
Einlesen einer Codekarte zu kurz oder zu lang ist, so können Sie auch diese ändern.
Da die Wartezeit durch eine Schleife realisiert ist, in der laufend Werte vom Interface
gelesen werden, ist sie abhängig von der Geschwindigkeit des verwendeten Rechners
und von der gewählten Interface-Anpassung. Die Veränderung der Wartezeit erfolgt
mit dem Kommando 'eingabesicherheit (n)', wobei n eine 'Integer'-Zahl sein muß.
Bei sehr langsamen Systemen hat sich ein Wert von 3 als sinnvoll herausgestellt; bei
schnellen Rechnern muß n etwa 10 oder noch größer sein. Ermitteln Sie den für
Ihren Rechner geeigneten Wert bitte durch Ausprobieren. (Standardmäßig eingestellt
ist n = 5.)
Mit Hilfe von drei Informationsprozeduren können Sie Informationen über den
Systemzustand einholen: 'put (hauptstellenname)' liefert den Namen der zu
ständigen Hauptstellen-Task, 'put (interface anpassung)' zeigt den Namen der bei
der Installation gewählten Interfaceanpassung für den Kartenleser, und 'put (inter
face channel)' liefert die Nummer des Kanals, über den ein Interface an separater
serieller Schnittstelle angesprochen wird.
#on("b")#Detailbeschreibung der Befehle#off("b")#:
#on("b")#PROC eingabesicherheit (INT CONST n):#off("b")#
- stellt die Wartezeit beim Einlesen einer Artikel-, Kunden- oder Auskunfts
codenummer in Abhängigkeit vom Absolutbetrag von n ein. Bei langsamen
Rechnern sollte abs(n) klein (ca. 3), bei schnellen Rechnern größer (ca. 10)
sein.
- Standardeinstellung ist 5.
- Der Befehl kann in jeder Task gegeben werden, in der #on("b")#gs-Warenhaus#off("b")#
insertiert ist.
#on("b")#PROC grin (BOOL CONST entscheidung):#off("b")#
- ist nur in Hauptstellentasks aufrufbar und in Tasks, die keiner Hauptstellen
task untergeordnet sind.
- stellt die Version für die Programmierschnittstelle gemäß der 'entscheidung'
ein:
TRUE ---> GRIN-Version, FALSE ---> ELAN-Version.
Fehlerfälle:
- Dieser Befehl darf nur von der Task '...' aus gegeben werden!
#on("b")#TEXT PROC hauptstellenname:#off("b")#
- liefert den Namen der zuständigen Hauptstellentask.
- liefert 'niltext' (""), wenn in diesem Zweig des Taskbaumes noch keine
Hauptstelle existiert; es ist dann kein Warenhaus-Betrieb möglich! (vgl.
'PROC warenhaus hauptstelle')
#on("b")#PROC init interfacechannel:#off("b")#
- initialisiert eine unbenannte Sohntask ("-") zum Ansprechen des Interface
systems über eine separate serielle Schnittstelle und existiert deshalb nur bei
den Anpassungen für 'MUFI als Endgerät' und 'AKTRONIK-Adapter'.
- erfragt zunächst eine Kanalnummer ('Gib Interface-Kanal:'); zulässig sind
Eingaben von 0 bis 24.
- löscht eine evtl. bereits vorhandene unbenannte Sohntask ("-").
- richtet bei Eingabe einer Kanalnummer > 0 eine neue unbenannte Sohntask
ein und sperrt dieses Kommando für Sohntasks, die danach angemeldet
werden.
- hebt eine etwa gesetzte Sperrung bei Eingabe von 0 als Kanalnummer wieder
auf.
Fehlerfälle:
- Dieses Kommando kann nur von der Task '...' aus gegeben werden!
- Unzulässige Kanalnummer!
#on("b")#TEXT PROC interface anpassung:#off("b")#
- liefert den Namen der bei der Installation ausgewählten Anpassung. Möglich
sind zur Zeit:
"ohne Kartenleser",
"mit Kartenleser an AKTRONIC-Adapter",
"mit Kartenleser an MUFI als Endgerät",
"mit Kartenleser an MUFI im Terminalkanal".
#on("b")#INT PROC interface channel:#off("b")#
- existiert nur bei den Anpassungen für den AKTRONIC-Adapter und MUFI als
Endgerät.
- liefert die Kanalnummer der seriellen Schnittstelle, über die das Interface
system angesprochen wird.
- wird der Wert 0 geliefert, so kann in der Task keine Eingabe über einen
Kartenleser erfolgen (siehe 'PROC init interfacechannel').
#on("b")#PROC warenhaus:#off("b")#
- ist nicht in Hauptstellentasks aufrufbar.
- startet #on("b")#gs-Warenhaus#off("b")# aus der 'gib Kommando' - Ebene oder wird bei einge
richtetem Direktstart automatisch aufgerufen.
- richtet eine Sohntask als Filialverwaltung ein und kennzeichnet damit die
eigene Task für das System als 'aktive' Filiale. Der Name dieser Sohntask
enthält den Namen der zuständigen Hauptstellentask und die Filialnummer,
unter der die Filiale geführt wird. Diese Filialnummer ist identisch mit der
Kanalnummer des angekoppelten Terminals.
- löscht die Filialverwaltungstask, wenn das Warenhaus-Menu geregelt mit
<ESC><q> verlassen wird. Zu Kollisionen bezüglich der Filialnummer
kann es somit nur kommen, wenn an einem Arbeitsplatz das WARENHAUS-
Menu ungeregelt verlassen wird (z.B. durch Tippen der SV-Taste) und dann
an demselben Arbeitsplatz eine neue Filiale angemeldet werden soll. In
diesem Fall erhält die neue Task #on("b")#keine#off("b")# Filialverwaltung als Sohntask und ist
damit für den Warenhaus-Betrieb nicht brauchbar. Deshalb wird hier nach
Ausgabe einer Fehlermeldung sofort gefragt, ob die Task gelöscht werden soll.
Fehlerfälle:
- Dieser Befehl darf nur von Söhnen dieser Task aus gegeben werden!
- Keine uebergeordnete Task ist 'warenhaus hauptstelle'!
- Filiale <n> ist bereits besetzt durch TASK '...'!
Es ist so kein geregelter Warenhaus-Betrieb möglich!
#on("b")#PROC warenhaus direktstart (BOOL CONST entscheidung):#off("b")#
- richtet gemäß dem Wahrheitswert der 'entscheidung' einen Direktstart ein
oder hebt ihn wieder auf.
Hat 'entscheidung' den Wert 'TRUE', so wird ein Direktstart eingerichtet. Es
erscheint zunächst die Frage 'Mit automatischem Löschen (j/n)?'. Durch den
Direktstart gelangt man beim Anmelden einer Sohntask nicht in die 'gib
Kommando' - Ebene, sondern sofort in das WARENHAUS-Menu. Wird die
obige Frage mit <j> beantwortet, so werden Sohntasks nach dem Ausstieg
aus dem WARENHAUS-Menu sofort gelöscht; andernfalls wird erst noch ge
fragt, ob gelöscht werden soll. Bei Verneinung erfolgt ein 'break'. Die Ein
richtung eines Direktstarts wird vom System vermerkt und der Befehl darauf
hin in allen untergeordneten Tasks gesperrt. Sowohl der Direktstart als auch
die Sperrung sind nur wirksam für Sohntasks, die #on("b")#nach#off("b")# Ausführung dieses
Befehls angemeldet werden.
Hat 'entscheidung' den Wert 'FALSE', so wird ein etwa eingerichteter Direkt
start und die damit verbundene Sperrung des Befehls für neue Sohntasks
wieder aufgehoben. Die Aufhebung ist nur möglich in der Task, von der aus
der Direktstart eingerichtet wurde.
Fehlerfälle:
- Der Direktstart kann nur aus der Task '...' geaendert werden!
#on("b")#PROC warenhaus hauptstelle (BOOL CONST entscheidung):#off("b")#
- macht je nach Wahrheitswert der 'entscheidung' eine Task zur Hauptstellen
task ('TRUE') bzw. hebt diesen Status wieder auf ('FALSE'). Eine Task kann
nur Hauptstelle werden, wenn noch keine übergeordnete Task Hauptstelle ist.
Der Hauptstellenstatus kann danach auch nur in dieser Task wieder aufge
hoben werden.
- löscht bei der Einrichtung der Hauptstelle eine etwa bereits vorhandene
"Zentrale" und richtet automatisch eine neue "Zentrale" in Form einer Sohn
task ein, die den Namen der Vatertask mit dem Zusatz ".Zentrale" erhält und
in der später die zentrale Kundendatei gespeichert wird. Bei Aufhebung des
Hauptstellenstatus wird diese Task wieder gelöscht.
- fragt bei Einrichtung der Hauptstelle nach, ob ein Direktstart eingerichtet
werden soll ('Mit Direktstart (j/n)?') und ruft die Prozedur 'warenhaus
direktstart' entsprechend auf.
- Hebt bei Löschen des Hauptstellenstatus einen in der Task etwa einge
richteten Direktstart automatisch auf.
Fehlerfälle:
- Hauptstelle ist bereits die Task '...'!
- Dieses Kommando darf nur in der Task '...' gegeben werden!
|