allegro-C V28.6
acon
allegro Konsolprogramm
Vordergründig kann das Programm acon.exe
(UNIX: acon) drei ältere Programme
ersetzen: SRCH.EXE Volltextsuche in einer Datenbank oder
Grunddatei und/oder Export in bel. Format UPDATE.EXE
Einmischen von Daten in eine Datenbank avanti-cl.exe
bzw. unter UNIX avanti-cl : Programm zum Ausführen von
Job-Dateien Es handelt sich bei acon,
genau gesagt, um eine Weiterentwicklung und Ersatz von avanti-cl, dem
Backend-Programm des avanti-Servers, also des Programms avanti.exe bzw.
avanti. Die
beiden Programme SRCH und UPDATE sind viel älter, sie gehören noch zum
DOS-System und sind 16bit-Programme. acon arbeitet genauso mit avanti
zusammen wie vorher avanti-cl,
aber als Ersatz für SRCH und UPDATE wird der Server avanti
nicht gebraucht, nur acon. acon hat
keine Benutzeroberfläche - das ist typisch für ein Konsolprogramm: es stellt
keine Fragen und präsentiert keine Menüs oder dergleichen. So ein Programm
nimmt Aufträge entgegen, führt sie vollautomatisch aus und beendet seine
Arbeit, ohne dass jemand eine Taste drücken oder sonstwie eingreifen muss. Die
Aufträge heißen in diesem Fall Jobs und sind zu schreiben in der avanti-Variante
der FLEX-Sprache . In
dieser Skriptsprache sind seit V28.5 auch die Voraussetzungen gegeben, alle
Funktionen zu realisieren, für die man bisher die Programme SRCH und UPDATE
gebraucht hat. Diese alten Programme nehmen ebenfalls Aufträge entgegen und
führen sie aus, aber auf andere Art: man übergibt ihnen beim Aufruf eine Anzahl
von Optionen, aus denen sie dann entnehmen, was zu tun ist. Die
folgenden zwei Beispiele zeigen, wie die DOS-Programme SRCH und UPDATE durch acon
ersetzt werden können. Diese Beispiele sind nun aber nur Spezialfälle einer
viel mächtigeren Methodik, mit der das Programm acon Manipulationen aller
erdenklichen Art mit den Mitteln der FLEX-Sprache durchführen kann. Ein Aufruf von acon
hat immer diese Form: acon
<jobdatei [Optionen]
Ab V30 kann man auch schreiben acon -j jobdatei Zuerst als Beispiel 0
der minimale Job: das "Hallo Welt"-Progrämmchen. Dazu macht man sich auf c:\allegro eine
Jobdatei namens welt.job und
schreibt hinein write
"Hallo Welt" Dann gibt man (im DOS-Fenster) diesen Befehl acon <welt.job Der Dateityp .job wird empfohlen, ist aber nicht zwingend,
es geht auch ganz ohne. Kenner erkennen: das Programm liest seinen Auftrag aus
der Standard-Eingabe. (Daher kann man es theoretisch auch ohne Job aufrufen,
den Job dann manuell Zeile für Zeile eintippen und mit Strg+D Enter
abschließen.) Beispiel 1: Konventioneller DOS-Aufruf: srch
-f4 -ka -dxyz.alg -emarcxml/xyz.xml -v0 -s#90 womit gesagt ist: Programm SRCH, nimm die Datei xyz.alg,
suche darin alle Sätze, die das Feld #90 enthalten. exportiere diese Sätze dann
mit den Parametern marcxml.apr in
die Datei xyz.xml. (Mit -f6 statt -f4 würde man einen Direktexport
ohne Suche verlangen und kann dann auf die Option -s
verzichten.) Genau dasselbe kann nun acon
ausführen, wozu man eine Jobdatei namens srch.job
heranzieht. Der Aufruf lautet dann so: acon
-jsrch -ka -dxyz.alg -emarcxml/xyz.xml -s#90 -bc:\allegro\demo2\cat Mit der Option -d können Grunddateien (.ALG),
Externdateien (.ADT) und sogar Datenbankdateien (.ALD) angegeben werden, das
Programm erkennt deren Struktur selbst. Achtung: Wenn Option -b
nicht angeben ist, dann wird die DemoBank genommen, denn irgendeine muss
geöffnet werden, damit acon
arbeiten kann. (Die damit angegebene Datenbank wird bei Bedarf in den
Exportparametern zum "Nachladen" benutzt.) Nebenbei ergibt sich bei Umstellung auf acon
der Vorteil, dass solche Jobs nur mehr weniger als ein Drittel der Zeit
brauchen. Beispiel 2: Konventioneller DOS-Aufruf: update
-fm41 -ka -uxyz.alg -dc:\allegro\demo2 -bcat -n7 was so zu lesen ist: Programm UPDATE.EXE, nimm
die Datei xyz.alg und
speichere die Sätze in die Datenbank cat, die auf c:\allegro\demo2
liegt. Mittels Primärschlüssel soll dabei zunächst geprüft werden, ob ein Satz
bereits in der Datenbank vorhanden ist. Solche vorhandenen Sätze sollen durch
die neueren überschrieben werden, wobei diejenigen Felder der alten Sätze
erhalten bleiben sollen, die im neuen Satz nicht vorkommen; ganz neue Sätze
(d.h. Primärschlüssel kommt noch nicht vor) sollen als neue Sätze in die Datei
7 gespeichert werden (also cat_7.ald). Mehr zur Bedeutung der Optionen findet man im
Kap. 12 des Systemhandbuchs. Genau dasselbe kann nun acon
ausführen, wozu man eine Jobdatei namens update.job
heranzieht. Der Aufruf lautet dann, leicht verändert, so: acon
-j update.job -fm41 -ka -uxyz.alg -bc:\allegro\demo2\cat -n7 (Achtung: -b statt -d .
Sonst klappt es nicht. Dies war bei UPDATE.EXE eine Inkonsequenz.) Optionen beim Aufruf von acon Das Programm acon selber wertet nur fünf Optionen
aus. Und zwar sind dies (analog zu den DOS-Programmen) -k Konfiguration
(z.B. -kn ),
wobei als Default -ka angenommen wird -b Datenbank-Name (z.B. -bcat ) -d Datenbank-Pfad (z.B. -dc:\allegro\demo2 ) -L Pfad
und Name der LOG-Datei (selten); Default cat.log, wenn cat der DbName ist -P Programmverzeichnis
(wo Parameter, uif, cfg ... zu suchen sind) Alle anderen Optionen müssen in dem Job, d.h. mit
FLEX-Befehlen, ausge- und verwertet werden. In den Beispielen srch.job
und update.job kann man sehen, wie das gemacht wird. Dazu braucht man
die neue Sondervariable cl, die den kompletten Aufruf enthält, d.h. im Beispiel
2 hätte man mit var cl die Zeichenfolge acon
-fm41 -ka -uxyz.alg -dc:\allegro\demo2 -bcat -n7 und mit var
cl var
(b" -u" f" " e" ") holt man sich den Inhalt der Option -u
heraus, wobei sogar hinter dem -u noch ein Spatium stehen darf. Besonderheiten avanti-Jobs haben typischerweise als letzte Zeile
die sog. Datenbankanwahl :
@
DB=avdemo ID=admin/MASTER Damit sucht avanti in der Datei avanti.con (auch .conf ist noch möglich) nach einer
Eintragung [avdemo], um
dort den Namen und Speicherort der Datenbank zu finden, sowie die Kennung admin
auszuwerten, um ihre Berechtigungsstufe festzustellen. Eine solche Zeile
brauchen acon-Jobs nicht, wenn sie mit der geeigneten Option -b gestartet
werden. Sonst jedoch funktioniert die Datenbankanwahl ebenfalls, d.h. man kann
alternativ eine solche Zeile im Job verwenden. Eine mit & beginnende Zeile am Anfang der
Jobdatei braucht acon
gleichfalls nicht. Darin kann ein Verzeichnis angegeben werden, auf dem
Parameter-, CFG- oder uif-Dateien zu suchen sind. Wenn man acon
nicht auf dem Programmverzeichnis startet, ist das jedoch evtl. wichtig. Gebraucht wird nur noch die (aktualisierte) uifsger,
nicht mehr zusätzlich uif0ger. Ort für die Installation Windows: Ab V28.6 kann man auf der
Windows-Plattform die avanti-Programme, statt wie bisher auf \programme\avanti\bin
nunmehr auf dem regulären Programmverzeichnis (c:\allegro im Normalfall) ablegen und
starten. Ein paralleles Verzeichnis ..\etc ,
vorher nötig, entfällt. Der Einfachheit halber sind avanti.exe und acon.exe ab V28.6 gleich mit im Gesamtpaket und liegen
nach dem Installieren auf dem ProgDir. UNIX/Linux: Die vier noch nötigen
Dateien kann man legen, wohin man will, aber alle zusammen auf dasselbe
Verzeichnis: avanti Der Server, der über TCP/IP die Jobs annimmt
und Ergebnisse liefert acon Das Konsolprogramm; führt auch die Jobs für
den Server aus avanti.con Datei mit den Angaben zu den eigenen
Datenbanken (früher: avanti.conf) uifsger Meldungstexte Empfehlung: Das Verzeichnis einem
User schenken, der ansonsten keine Rechte hat außer Zugriffsrechten auf die
Datenbanken. Den Server dann unter dem Namen dieses Users starten mit dem
Befehl ./avanti & .
Wenn bei irgendwelchen Jobs Dateien auf anderen Verzeichnissen zu lesen
und/oder schreiben sind, muss der User dazu ebenfalls die Rechte haben.
Auch Namensmuster sind möglich: mit -dkatalog\cat*.ald würde man alle Datenbankdateien auf katalog
verarbeiten.
2010-10-21 / 2022-11-29