summaryrefslogtreecommitdiff
path: root/app/gs.warenhaus/1.01/doc/gs-Warenhaus-7
blob: 3a55dfe124ac440d8aa43ea122425de0f87d4374 (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
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!