Fremddaten einspeisen  
  
1.  `Externe Daten`  
2.  `Einzelheiten der Externstruktur`  
3.  `So geht das Einlesen mit a99`   3a.  `Einlesen von Standard-Datenfeldern`  
4.  `Kopieren aus Parallel-Datenbank`	`Schnellkopplung`  
	(Fremdbank für Datenübernahme öffnen)  
5.    `DNB direkt` / `GBV SRU` / `Z39.50 Direktimport` 
      (Daten aus DNB, GBV oder LoC usw. abrufen ohne Programm zu verlassen!)  
	(`Wie das funktioniert`)
6.  `Import per FLEX` (z.B. mit Copy&Paste)
7.  `Importe nach alter Art`  
      (Sofort starten: MARC, MAB2, Pica, VLB)  

Hintergründe  
Eine häufige Situation: Es sind Daten vorhanden, die in anderen Zusammenhängen entstanden, und nun will man sie in  eine Datenbank einmischen. Dazu bietet allegro viele und weitreichende Möglichkeiten, besonders wenn die Fremddaten eine ungewöhnliche oder jedenfalls ganz andere Struktur haben als man es eigentlich braucht. Die Kapitel 5 (`Konzept und Arbeitsweise`)  und 11 (`Importsprache`) des Systemhandbuches geben dazu erschöpfende Auskunft.   
In Kürze: Ein Import besteht aus zwei Vorgängen  
  
1. Umwandlung  
Man muß im allgemeinen Fall eine Import-Parameterdatei erstellen (Handbuch Kap. 11), in der genaue Vorschriften stehen, Feld für Feld, was das Konvertierprogramm IMPORT.EXE mit den Fremddaten machen soll. Dieses Programm kann die Fremddaten dann einlesen und mit Hilfe der Export-Parameter e-1.apr sofort wieder ausgeben in eine `Externdatei` (siehe unten) oder mit den Parametern i-1.apr  in eine Grunddatei (Typ .ALG).   
Fertige Import-Parameter gibt es für die Formate `MAB2`, `MARC` und `Pica3`.  Aber Vorsicht: besonders MAB und MARC sind nicht so einheitlich, wie man es sich vorstellt! Daten aus unterschiedlichen Quellen können immer mit überraschenden Unterschieden daherkommen, so daß dann die Standardparameter im schlimmsten Fall gar nicht funktionieren. Wer mit diesen Dingen noch nie zu tun hatte, wird oft unangenehm überrascht.  
  
2. Einmischen  
Die entstandene Grunddatei kann mit dem DOS-Programm `upd.exe` in die Datenbank eingemischt werden (import.exe selber kann das nicht, es macht nur die Umwandlung!), Grund- und Externdateien kann aber a99 auch direkt einlesen (Befehl `read file`, d.h. man kann auch ohne das DOS-Programm  upd.exe  auskommen:  
Diese zwei Vorgänge können immer in eine Batchdatei verpackt werden.   
Das allgemeine Muster mit allen Einzelheiten sieht folgendermaßen aus:  
  
import -dfile -f5 -iform -e i-1/new.clg -v1 -m0 -s0 -h0 -kkonf  
upd -fm01 -dDbDir\DbName -unew.clg -n2 -m1 -kkonf  
  
Konkretes Beispiel:  
Hat man eine Datenbank mit der Konfiguration $u.cfg und dem Namen marc auf k:\database\catalog,  eine Fremddatei xyz.dat und eine dazu passende Parameterdatei usmarc.uim, dann würde das konkret so aussehen: (der Konfigurationsbuchstabe ist dann u, d.h. die umgewandelte Datei muß vom Typ ulg sein)  
  
import -dxyz.dat -f5 -iusmarc -e i-1/new.ulg -v1 -m0 -s0 -h0 -ku  
upd -fm01 -dk:\database\catalog\marc -u new.ulg -n2 -m1 -ku  
  
Die Funktionsweise des Einmischens wird mit der Option  -fmxy  angegeben. x und y sind Ziffern. Die Möglichkeiten sind im `Handbuch Kap.9` dokumkentiert.  
ACHTUNG: Unter Windows 7/64bit kann das 16bit-Programm  update.exe  nicht mehr genutzt werden. Es wird ersetzt durch das Konsolprogramm acon in Verbindung mit einer Jobdatei  update.job. Der Aufruf sieht dann so aus: (Das neue Programm upd.exe ruft automatisch acon auf und den Job update.job) 
upd -fm01 -bk:\database\catalog\marc -u new.ulg -n2 -m1 -ku  

Die schwierigste Aufgabe besteht im Erstellen einer Import-Parameterdatei. Hat man diese, ist mit dem gezeigten Muster der Rest sehr einfach. Für das Standard-Schema werden mehrere Import-Parameter mitgeliefert, sowie vorbereitete `Batchdateien`, mit denen dann das Importieren auf wenige Knopfdrücke reduziert wird.   

1. Externe Daten  
Besonders einfach ist es, und ohne Handbuch und Importprogramm kommt man aus!, wenn man die Daten schon in einer bestimmten Struktur bereitstellen kann, die wir `Externstruktur` nennen.  Solche Daten kann man sofort einlesen.  
Hier sind zwei Datensätze in dieser Struktur mit den Kategorienummern des konsolidierten Formats (der zweite ist ein hierarchischer mit 2 Untersätzen):  
  
#00 123456  
#20 Einsicht ins Ich : Fantasien und Reflexionen über Selbst und Seele  
#22 ¬The¬ mind's I <dt.>  
#30 CS PH  
#31 Künstliche Intelligenz; Selbstreferenz; Individualität  
#39 Ausgewählt und in Szene gesetzt von Douglas R. Hofstadter und Daniel  
 Dennett. [Aus d. Amerik. übers. von Ulrich Enderwitz]  
#40 Hofstadter, Douglas R.  
#402Dennett, Daniel C.  
#74 Stuttgart  
#75 Klett-Cotta  
#76 1986  
#77 485 S.  
#81 Orig. Ausg. bei Basic Books, 1982  
#87 3-608-93038-8  
  
#00 654321  
#20 Was können wir wissen?  
#31 Evolutionäre Erkenntnistheorie  
#40 Vollmer, Gerhard  
#74 Stuttgart  
#75 Hirzel  
#76 1985  
#77 Bd.1.2.  
#01 1=Bd. 1  
#20 ¬Die¬ Natur der Erkenntnis : Beiträge zur Evolutionären  
 Erkenntnistheorie  
#25 Mit einem Geleitw. v. Konrad Lorenz  
#77 337 S.  
#87 3-7776-0403-8  
#90 2647-3611  
#01 2=Bd. 2  
#20 ¬Die¬ Erkenntnis der Natur : Beiträge zur modernen Naturphilosophie  
#77 350 S.  
#87 3-7776-0404-6  
#90 2650-9705  
  
Wenn diese Sätze genau so in einer Datei EXTERN.DAT stehen (auf dem Arbeitsverzeichnis von a99), kann a99 diese Daten einlesen! Auf dem Menü "Datei" den Punkt "Externe Datei laden", schon sieht man die Daten. Mehr dazu siehe unter 3..  
  
2. Einzelheiten der Externstruktur  
Jedes Datenfeld beginnt auf neuer Zeile und mit dem Zeichen # am Anfang. Die Feldnummern sind in der `Konfigurationsdatei` namens $A.CFG definiert.   
Mehrfachfelder müssen durch eine Ziffer oder einen Buchstaben unterschieden sein, z.B. #402 für den zweiten Verfasser. Welche Ziffern oder Buchstaben an der Stelle erlaubt sein sollen, steht ebenfalls in der CFG.   
Die Reihenfolge der Felder muß nicht der Folge entsprechen, die in der CFG festgelegt ist, das bringt das Programm selber in Ordnung. Mehrfachfelder müssen allerdings schon in der richtigen Folge stehen. Aber:
Zwischen zwei Datensätzen muß eine Leerzeile sein. Wenn ein Datensatz noch keine #00 hat und die IdNummer nicht automatisch laut CFG (Befehle cg/ci) vergeben werden soll, dann dem Satz ein Feld der Struktur z.B.  #00 x?7 voranstellen (damit eine siebenstellige Nummer mit x davor vergeben wird). 
Wenn eine Kategorie wegen ihrer Länge in zwei oder mehr Zeilen umgebrochen wird, sollte dies nur zwischen zwei Wörtern geschehen und dann Fortsetzungszeilen mit einem Leerzeichen beginnen.  
Entsprechend anders müssen die Daten aussehen, wenn man intern nicht das konsolidierte Format verwendet sondern ein anderes, etwa MAB (Konfiguration $D.CFG). Dann z.B. #000 statt #00 für das erste Feld! 
Es muß sich um ASCII-Zeichen handeln. (Wenn es ANSI-Codes sind, also Windows-Standard, müssen in der Datei E-W.APR die Zeilen  "dx=1" und "to" aktiviert sein, dann wird umcodiert.)  
Der zweite Datensatz ist ein hierarchischer, bestehend aus einem Hauptsatz und zwei Untersätzen (jeweils beginnend mit einem Feld  #01 ).  Will man keine hierarchischen, sondern verknüpfte Sätze, muß das zweite Beispiel so aussehen: (es sind dann drei Datensätze, jeder hat seine eigene IdNummer #00, die Verknüpfung geht über die #00 des Hauptsatzes, die dann in der #09 des Untersatzes steht)  
  
#00 654321  
#20 Was können wir wissen?  
#31 Evolutionäre Erkenntnistheorie  
#40 Vollmer, Gerhard  
#74 Stuttgart  
#75 Hirzel  
#76 1985  
#77 Bd.1.2.  
  
#00 324987  
#09 654321+1=Bd. 1  
#20 ¬Die¬ Natur der Erkenntnis : Beiträge zur Evolutionären  
 Erkenntnistheorie  
#25 Mit einem Geleitw. v. Konrad Lorenz  
#77 337 S.  
#87 3-7776-0403-8  
#90 2647-3611  
  
#00 837613  
#09 654321+2=Bd. 2  
#20 ¬Die¬ Erkenntnis der Natur : Beiträge zur modernen Naturphilosophie  
#77 350 S.  
#87 3-7776-0404-6  
#90 2650-9705  

3. So geht das Einlesen mit a99  
  
Weitere Information dazu: `update-Sondertext` 

1. Menü "Datei | Externe Datei laden". Sofort sieht man die Daten im Ergebnismengenfenster. Sie werden nicht sofort in die Datenbank übernommen, sondern sind erst einmal in der `Offline-Datei`. Also keine Angst, etwas falsch zu machen! Dieses Einlesen kann auch geschehen mit dem `FLEX-Befehl`  read file dateiname .  
  
2. Die Sätze kann man sich einzeln im Anzeigefenster anschauen, bearbeiten, mit den Buttons [Nächster] und [Voriger] darin vor- und zurückblättern. In der Statusanzeige steht NEU.  
  
3. Jeden Satz kann man einzeln speichern mit dem Button [Speichern] .  
  
4. Oder man läßt alle Daten auf einmal speichern: Menü "Datei | Offline-Datei -> Datenbank".  Spätestens beim Verlassen des Programms wird gefragt, ob die Offline-Daten gespeichert werden sollen - wenn man das nicht will, dann unbedingt mit "Nein" antworten!  
  
Mit dem FLEX-Befehl `update` kann man das Einspeisen von Daten automatisieren, d.h. innerhalb eines FLEX-Skripts ablaufen lassen.  
  
Sind Ihre Daten nicht in diesem Format oder können Sie es mit eigenen Mitteln nicht herstellen, lesen Sie Kap. 5. Dort steht, wie man vorgeht. Im Kap. 11 wird beschrieben, für welche Formate es Umwandlungsparameter gibt, und wie man solche Parameter erstellt.  
  
3.a Sonderfall: Einlesen von Standarddaten  
Gelegentlich möchte man eine Hilfsdatei, in der gewisse immer wieder benötigte Datenfelder stehen. Diese soll dann mit einem Handgriff in jeden beliebigen Datensatz eingebaut werden, den man gerade eingibt oder bearbeitet. Eine solche Datei muß standardmäßig E.ADT heißen. Sie wird eingelesen mit ALt+ä oder mit dem FLEX-Befehl  read rec oder, wenn die Datei nicht E.ADT heißt, mit read rec dateiname.  
  
4. Fremddaten mit a99 : Nur ein Knopfdruck    
[Handbuch Kap.2.4]  
Zu den beliebtesten Eigenschaften des DOS-Programms PRESTO gehört es, daß man mit Alt+a auf eine zweite (und dritte) Datenbank umschalten kann und daß dann in jener sofort dieselbe Registerstelle aufgeschlagen wird. Mit a99/alcarta ist dies etwas schwieriger zu realisieren, jedoch erreicht man letztlich mit ganz kurzen FLEXen sogar einen noch etwas größeren Komfort.  
Es gibt dafür einen vorbereiteten FLEX namens `FREMDDB`, mit dem Sie eine Schnellkopplung zu einer Fremddatenbank einrichten können - wenn Sie eine auf  Ihrem System haben (d.h. auf einer der zugreifbaren Platten).  Für weitere Sitzungen werden dann die Einstellungen für die FremdBank automatisch in einer Datei fremddb.ini festgehalten, d.h. die Schnellkopplung geht dann noch schneller.  
Achten Sie darauf: Wenn die Schnellkopplung aktiviert ist, hat man oben hinter "Option" den Menüpunkt FremdBank. Der schaltet um zum Fenster der Fremdbank. Dort hingegen hat man an derselben Stelle Kopie. Druck auf diesen kopiert den angezeigten Satz in die eigene Datenbank, deren Fenster dann sofort wieder erscheint. 

Für die interessierten Experten wird das Verfahren nachfolgend genau beschrieben:  
Aufgabe: von der eigenen Datenbank A umschalten auf die Fremddatenbank B. Dort soll dieselbe Registerstelle erscheinen. Ein in B gefundener Satz soll per Knopfdruck von B nach A wandern.  
  
Lösung: Mit Alt+a wie bei PRESTO ist die Sache nicht zu lösen (denn damit wird das Menü "Anzeige" ausgelöst). Statt dessen wird hier ein Weg gezeigt, die Umschaltung AàB mit Alt+1, die Rückschaltung  BàA mit Alt+9 zu machen.   
Man startet beide Datenbanken getrennt mit je einem Aufruf von a99, für B kann es auch alcarta sein. Wir nehmen an, beide Aufrufe erfolgen vom selben Verzeichnis.   
In  B.INI  hat zu stehen:  
ExportParameter=E-W  
OutputFile=E.ADT  
  
NEU gegenüber PRESTO: Hat die Fremddatenbank ein anderes Format, muß man geeignete Exportparameter statt E-W erstellen. Damit wird auch das direkte Importieren aus anderen Formaten möglich.  
  
Umschaltung  A à B   
Dazu braucht man den FLEX namens SWITCH.FLX, der mitgeliefert wird. Darin stehen Kommentare.  
Wird dieser FLEX in A aktiviert, schreibt er zuerst eine Datei alta.flx und sendet dann die Botschaft an B, diese auszuführen. In ALTA.FLX steht dann :  
activate  
index |i xyz  
wobei xyz der letzte Zugriffspunkt im aktuellen Register i ist. (Die Schreibweise  #uxb(0,1)  bewirkt, daß nur das erste Zeichen von  #uxb ausgegeben wird, das ist die Registerziffer.)  
Der Befehl activate am Anfang sorgt dafür, daß sich B dann selber aktiviert, also in den Vordergrund kommt.  
Dann blättert es Register i an der Stelle xyz auf.   
Es funktioniert in beiden Richtungen! Alt+TAB dagegen schaltet um, ohne daß sich was tut. Das kann ohne Schaden jederzeit zwischendurch gemacht werden.  
Einfachster Einbau in A: Im Schreibfeld eingeben  
   #uX1X switch.flx  
Dann Auslösung mit  Alt+1. (Bleibt für nachfolgende Sitzungen erhalten.) Natürlich kann der Aufruf auch in einen Flip zum Anklicken oder auf den eigenen Menüpunkt gelegt werden (siehe dazu den Text  FLIP.TXT).  
Verbesserung: Die Variable #uxa enthält ja nicht die Benutzereingabe, sondern die letzte im Register tatsächlich zum Zugriff benutzte Registerstelle. Beim Umschalten will man aber meist an die Stelle, die man im eigenen Register nicht gefunden hatte. Folgendes kann man tun: zu den Abschnitten der Indexparameter  #-1 ... #-9 ergänzt man diese Zeile  
#u1 =SB e0   (evtl. noch y2 oder y1 vor dem =SB.) Und  dann verwendet man oben statt #uxa die Variable #uSB.  
  
Rückschaltung B à A   
Mit dem FLEX    x download\flex copy  
(zu starten in B) wird zuerst der aktuelle Satz in die Datei E.ADT herausgeschrieben, dann wird A veranlaßt, die Datei COPY.FLX zu lesen und auszuführen. Auch COPY.FLX wird mitgeliefert und ist kommentiert.  
Einfachster Einbau in B: Im Schreibfeld eingeben  
   #uX9x download\flex copy  
Dann Auslösung mit  Alt+9. (Bleibt für nachfolgende Sitzungen erhalten)  
Natürlich kann der Aufruf auch in ein Flip oder auf den eigenen Menüpunkt gelegt werden.  
So wird durch einen einzigen Mausklick ein gefundener Datensatz der Fremddatenbank in die Datei E.ADT exportiert, vom anderen a99 dann eingelesen und als neuer Datensatz behandelt. Durch  put  wird er sofort gespeichert Wenn put fehlt, kommt er nur in den Bearbeitungsspeicher (mit Alt+q später aufsuchen).  
Ein FLEX-Befehl delete in copy.flx löscht die Datei E.ADT, so daß die nächste Aktion in B sofort stattfinden kann.  
Jetzt hat man also auch die Wahl: entweder mehrere Übernahmen hintereinander ohne jedesmal umzuschalten (dann kein activate in COPY.FLX) oder jedesmal umschalten zwecks Bearbeitung, dann kein put  in COPY.FLX.  
Das Bearbeiten kann auch in B erfolgen, denn mit download wird der aktuelle Zustand exportiert. Hinter download empfiehlt sich dann, ein undo einzuschieben, damit in B die Änderung dann wieder beseitigt wird.  
Summa summarum kann mit a99  nicht nur derselbe Komfort (genau so wenig Tastendrücke) wie bei PRESTO erreicht werden, sondern es gibt auch noch eine Reihe von neuen Möglichkeiten.  
switch.flx  und  copy.flx  sind im Paket enthalten.  

5./6.  zDirect und Import per FLEX  
Über diese Neuerungen (ab V27) informiert ein `eigenes Papier`, das auch auf XML-Daten eingeht. 
Die Methode zDirect benutzt ein Hilfsprogramm, das automatisch aufgerufen wird und Daten von Servern aus dem Internet holt. Das merkt man jedoch nicht, sondern diese Daten werden dann sofort automatisch umgewandelt, hier hereingeholt und angezeigt, in der Ihnen vertrauten Form!
  
7.  Importe nach alter Art  
Unverändert gültig bleiben die `Import-Parameterdateien` des DOS-Systems. Mehr dazu im Handbuch, `Kap. 5` und `Kap. 11`.   
Im `CockPit` des DOS-Systems gibt es dafür einen Menüpunkt "Import-Aktionen" unter "Makros". Dort werden dann angeboten: Deutsche Bibliothek (MAB2), Pica, MARC und VLB. Alles läuft nach demselben Schema, wie oben beschrieben! Nur wird jeweils eine geeignete Parameterdatei für die Fremddaten benutzt, und zwar MAB2.AIM, PICA.AIM usw.  
  
Diese Importe können Sie auch direkt von hier aus starten, wenn die Fremddaten schon auf Ihrem Arbeitsverzeichnis vorliegen. Der Dateiname muß z.B. MAB2.DAT sein, wenn es sich um MAB2-Daten der Deutschen Bibliothek handelt, usw.: (Datei vorher umbenennen, wenn sie anders heißt)  
  
`MAB2-Daten` :  MAB2.DAT  
  
`Pica-Daten` :  PICA.DAT  
  
`VLB-Daten` :  VLB.DAT  
  
`MARC-Daten` :  OCLC.DAT  
  
Es entsteht bei diesen Funktionen jeweils eine Datei FREMD.BAT, in der die Programmaufrufe stehen. Diese Datei kann man auch als Vorlage für eigene Import-Prozeduren nehmen.  

?Konfigurationsdatei=h acb-1  
?Externe Daten=h =1. Externe Daten  
?Einzelheiten der Externstruktur=h =2. Einzelheiten  
?So geht das Einlesen mit a99=h =3. So geht das  
?Kopieren aus Parallel-Datenbank=h =4. Fremddaten mit a99  
?Offline-Datei=h off  
?Externstruktur=h =Einzelheiten  
?update=h xupdate  
?FREMDDB=X fremddb  
?Schnellkopplung=X fremddb  
?update.exe=h ac9  
?MAB2=h mab2.aim  
?MARC=h oclc.aim  
?Pica3=h pica.aim  
?Handbuch Kap.9=h ac9=Option -fm  
?Batchdateien=h =7.  Importe nach alter Art  
?Importe nach alter Art=h =7.  Importe nach alter Art  
?read file=h xread  
?Import-Parameterdateien=h param=AIM  
?MAB2-Daten=x var "MAB2"\ins #uvI\exec fremd  
?Pica-Daten=x var "PICA"\ins #uvI\exec fremd  
?MARC-Daten=x var "OCLC"\ins #uvI\exec fremd  
?VLB-Daten=x var "VLB"\ins #uvI\exec fremd  
?CockPit=X cockpit  
?Kap. 5=h ac5  
?Kap. 11=h ac11  
?Importsprache=h ac11  
?Konzept und Arbeitsweise=h ac5  
?Externdatei=h =1. Externe Daten  
?FLEX-Befehl=h xread  
?Einlesen von Standard-Datenfeldern=h =3.a Sonderfall 
?Z39.50 Direktimport=X z39 
?Import per FLEX=h fleximp 
?update-Sondertext=h update 
?eigenes Papier=h fleximp 
?Wie das funktioniert=h fleximp#310 
?DNB direkt=X dnb 
?GBV SRU=X srugbv