[Allegro] Vb.299: Anleitung zur Migration von M zu A (vom NRW-Format zum Standardformat)

Bernhard Eversberg b-eversberg at gmx.de
Do Aug 30 13:46:38 CEST 2018


Verlautbarung 299 zur allegro-Entwicklung                    2018-08-30
-----------------------------------------
Keine neue Version! Die alte ist noch nicht soo alt und tut es noch.

                                Inhalt
                                ------
0.   marctxt.apr weiter verbessert: abholen mit  X gf marctxt.apr

I.   Von M (NRW) zu A migrieren mit einem einzigen Befehl

II.  Grunddatei checken: ob die Sätze in der Datenbank vorhanden sind

III. FLEX rdl.flx korrigiert (registriert Doppeleintraege und Lücken)


I. Ein schneller Weg von M zu A!
================================

Aber zuerst die Frage: Warum eigentlich?
Das allegro-Standardformat, auch A-Format genannt, hat ein paar 
Vorteile gegenüber anderen Formaten:
(Dokumentiert ist es hier:  http://www.allegro-b.de/download/doku/form2016)

1. Es gibt dafür ausgefeilte Parameter zur Indexierung : cat.api
       (ermöglichen die beliebte ALL-Suche, auch Schnellsuche genannt)
2. Mehrere Anzeigeparameter zur Wahl: d-wrtf.apr, d-html.apr,
   d-krtf.apr oder d-khtm.apr, zu kombinieren mit d-k.apt
   (für Windows bzw. Web, also PHPAC oder a35)
3. Zwei Varianten MARC-Exportparameter : A. marctxt.apr ist mit im GP,
   B. Variante von Herrn Lehmann (sehr bewährt, von ihm zu beziehen).
   Zum Datenexport für "beluga" (VuFind) und WorldCat oder Verbund
4. Zahlreiche andere Import- und Export-Parameter sowie einige große
   FLEX-Pakete für Ausleihe, Erwerbung, Zeitschriftenverwaltung etc.
 
Insgesamt bedeutet dies, daß viele A-Anwender sich wahrscheinlich
nie mit der als sehr schwierig geltenden Export-Parametrierung
befassen müssen / mußten und auch kaum je mit FLEX.

Es ist daher schon mancherorts von Interesse gewesen, die eigenen,
anders formatierten Daten (z.B. mit m.cfg = MAB) in das A-Format
zu konvertieren, um damit mehr machen zu können und weniger
komplizierte Kenntnisse zu brauchen.

Nur, wie geht das? Wie kommt man insbesondere von M zu A?
  (Eine Kurzübersicht des M- oder NRW-Formats findet sich hier:
   http://www.allegro-b.de/download/doku/NRW/NRW-Format.htm  )  

Grundsätzlich sind das zwei Aufgaben:
1. Umwandlung von M in A, als Grunddatei (.alg) oder Externdatei (.adt)
2. Indexierung der umgewandelten Datei, d.h. Erstellung der Index-
   dateien, incl. Satztabelle (.tbl) und Kurztiteldatei (.stl) sowie
   Restriktionendatei (.res)

Beide Vorgänge sind nicht trivial, sondern brauchen Parameter, der
zweite eine nicht ganz einfache Batchdatei (auch eine Sache, die
Erfahrung bräuchte, wenn man alles selber machen müßte).
Für das M-Format sind diese Dateien erstellt worden und können als 
Vorlage auch für andere Formate (andere X.cfg) dienen:
  mtoa.bat  führt alle Aktionen aus, die nötig sind.
  mtoa.mpr  Parameter zur Wandlung von .mld- oder .mlg-Dateien in .adt
    abzuholen mit  X gf mtoa.bat  bzw.  X gf mtoa.mpr
Vielleicht ist es sinnvoll, sich auch eine Version der CFG-Datei
$m.cfg abzuholen:  X gf $m.cfg
und die eigene damit zu ersetzen.
Diejenige, die lokal vorhanden ist, hat vielleicht nicht alle
Kategorien, die in der mtoa.mpr verarbeitet werden, und dann gibt
es Fehlermeldungen ...

Der Vorgang besteht dann für den Anwender aus nur einem einzigen
Aufruf von mtoa.bat.
(Ausgearbeitet und erprobt wurde alles bei einer Spez.Bibl., die
schon lange mit M gearbeitet hatte.)

Zuerst aber Hinweise zu den Voraussetzungen:

(Ihre Ordnernamen können ganz andere sein! Hier sind nur denkbare
Beispiele angegeben.)

Sagen wir, man hat im Ordner  m:\daten\bank  die M-Datenbank,
bestehend aus einigen Dateien des Typs  .mld  (die übrigen
zur Datenbank gehörigen Dateien werden für die Umwandlung nicht
gebraucht, außer der m.cfg.)
Man möchte die neue A-Datenbank im Ordner  k:\data\katalog  haben.
Dieser Ordner darf zunächst noch gar nicht vorhanden sein, nur 
natürlich die "Platte" K: muß da sein und darauf ein Ordner  k:\data.
(mtoa.bat legt dann den Ordner ..\katalog selber an.)

Sagen wir ferner, die Programme liegen in  D:\programme\allegro
(also a99.exe & Co)

Jetzt kommen wir zu dem Programmaufruf:
1. Man öffnet eine "Eingabeaufforderung"  (früher DOS-Fenster)
2. Man begibt sich in den Programmordner, 
    d.h. man gibt in dem Fenster 2 Befehle ein:
      d:
      cd \programme\allegro

3. Dann diesen Befehl eingeben:

      mtoa  m:\daten\bank  k:\data\katalog

Wenn die Voraussetzungen stimmen und der eingegebene Befehl auch,
dann läuft alles automatisch ab, und zwar schnell.
Zuerst werden die M-Daten mit Hilfe der Parameter mtoa.mpr in
eine A-Datei namens  datei.alg  gewandelt, sie kommt in den katalog-
Ordner. Dann wird diese Datei indexiert.
Am Ende wird a99 gestartet und öffnet die neue A-Datenbank.
Im Ordner k:\data\katalog liegen dann folgende Dateien:

cat_1.ald   Die eigentlichen Daten (vorher waren sie in *.mld-Dateien)
cat_2.ald usw.   falls es mehr als 16 MB Daten sind
cat.tbl     Satztabelle: Adressen der Datensätze
cat.stl     Kurztiteldatei für die Ergebnismengen-Kurzanzeige
cat.res     Restriktionendatei
cat.adx     Indexdatei, Register 1 - 11
cat.aex     zusätzliche Indexdatei, vor allem für die ALL-Suche
cat.ini     enthält für a99 die nötigen Angaben zur Öffnen der Datenbank
  und
datei.adt   Darin die umgewandelten M-Daten, s.o.

Die letzte Datei kann man löschen, aber vielleicht will man sie
mit einem Editor mal inspizieren, neugierig wie man ist.

cat.ini ist eine Kopie der zur Demo-Bank gehörigen Datei cat.ini,
sie liegt in diesem Fall in d:\programme\allegro\demo
Man kann sie nach Bedarf abwandeln, es stehen Kommentare drin.
Z.B. könnte man da auch noch diesen Befehl einfügen:
DisplayParameter=d-krtf
um eine andere Anzeigeform einzustellen, Standard ist sonst d-wrtf.apr.

Die Batchdatei  mtoa.bat  enthält ausführliche Kommentare.
Kap. 7.1 im Handbuch beschreibt die einzelnen Schritte mit
vollständigen Beispielen - falls das jemand interessiert.
(In a99 eingeben:  h ac7-1 )

Und was ist mit der M-Datenbank? Ist die am Ende verschwunden oder
irgendwie verändert? Nein, damit passiert nichts. Die ganze Sache
ist in der Hinsicht völlig ungefährlich! Wenn man's also sich doch
noch anders überlegt : den neuen Ordner "katalog" einfach löschen.

Wenn es aber nicht M ist, womit man arbeitet, sondern vielleicht
n.cfg oder x.cfg oder was immer? Wie kriegt man das nach A rüber?
Nun, grundsätzlich muß es sinnvoll möglich sein, die eigenen Daten 
in das A-Format zu überführen, jedenfalls diejenigen Elemente, die
man hernach in einer A-Datenbank haben will. 
Ist dies der Fall, dann nimmt man die Parameter  mtoa.mpr  zur Hand
und macht  xtoa.xpr  draus, indem man die M-Kategorienummern durch
X-Nummern ersetzt! Klar, nicht unbedingt leicht, aber mit mtoa.mpr 
als Muster wenigstens nicht ganz so schwer. Sonst fragen Sie einen
Supporter.
Alles andere läuft genauso wie für M: Man kopiert mtoa.bat auf 
xtoa.bat und ersetzt darin überall .m durch .x und -km durch -kx.

Wenn alles gelaufen ist und man inskünftig nur noch mit der neuen
A-Datenbank arbeiten will, kann man die alten Daten löschen und
die Dateien mtoa.* auch.
Will man jedoch die A-Datenbank nur nebenbei für bestimmte Zwecke
nutzen, die man mit den M-Daten nicht hinkriegt, z.B. MARC-Export,
dann ist es auch möglich, mit der M-Datenbank unverändert weiter
zu arbeiten und nur gelegentlich, wenn ein MARC-Export ansteht,
die beschriebene Prozedur abermals auszuführen; in dem Fall aber
die A-Datenbank zuerst wieder löschen - oder einen anderen, neuen
Ordner für die neuerliche A-Datenbank aufmachen.

*****************************************************************

Nun aber noch zwei GANZ andere Themen:

II. Grunddatei checken: ob die Sätze in der Datenbank vorhanden sind
====================================================================

Es kam schon mal vor, daß man eine Datei mit neuen Sätzen zuerst
einmal darauf prüfen wollte, ob einige davon oder keine schon in
der Datenbank vorkamen. Das ist möglich anhand des Primärschlüssels:
Mit "var p" kann man sich den per FLEX ausrechnen und dann im Index
nachschauen, ob es ihn schon gibt. 
Es wurde ein FLEX namens  pkc.flx  geschrieben. (= primary key check)
Abzuholen mit  X gf pkc.flx

Und so wird's gemacht:
Sagen wir, die fragliche Datei liegt vor als  daten.alg.
(Wenn .adt, dann vorher mit dem dawa.flx in .alg wandeln, s. Vb275)
In a99 braucht man dann nur zu geben:
  X pkc daten.alg
(wenn daten.alg im Arbeitsordner liegt, sonst den Pfad mit angeben)

Es entsteht eine Datei namens  notfound.adt, sie enthält die NICHT
in der Datenbank gefundenen Sätze. Diese Datei kann man sich
zuerst mal anschauen und dann auf Wunsch mit update einspeisen:

acon -jupdate -ddemo2 -bcat -fm21 -ka -u notfound.adt

Nur statt demo2 bzw. cat den eigenen Ordner- bzw. Datenbanknamen!


III. FLEX rdl.flx korrigiert  (siehe Vb.288)
----------------------------
(rdl = registriere doppeleinträge und lücken)
Es wurde fälschlich "Mehrf." ... ausgegeben, auch wenn Modus 1
gewählt war, d.h. nur die Lücken gewünscht wurden.
Dieser FLEX war zu wenig dokumentiert, es wurden einige 
Kommentare eingestreut.

Weitere geringfügig veränderte FLEXe:
dispex.flx   Export-Parameter im a99-Display testen (Vb296)

pkc.flx      primary key check: Sind die Saetze der datei xyz.alg
                schon in meiner Datenbank? (siehe oben)

dir.flx      Zeigt die Dateienliste eines gewählten Ordners (Vb181)

dosfile.flx  Datei auswaehlen aus gewünschtem Ordner (Start aus dos.flx)

numcon.inc   Number Converter, mit Zahlenbasis von 2 bis 20
               vor allem: HEX <-> DEZ  (s. umrech.flx u. Vb286)





Mehr Informationen über die Mailingliste Allegro