Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 16 Nächste Version anzeigen »

Beschreibung

Die Funktion datensatzAendernAutomat kann für die Datensätze einer IDN-Liste die folgenden Aktionen durchführen:

  • Ersetzen eines Feldes/Feldinhalt durch einen anderen Feldinhalt
  • Hinzufügen eines neuen Feldes bzw eines neuen Feldinhaltes
Einbinden in WinIBW
  1. WinIBW öffnen und anmelden
  2. in Menuleiste auf Optionen > Werkzeugleiste anpassen
  3. falls nicht schon ausgewählt, Reiter "Kommandos" öffnen
  4. im Auswahlfenster "Kategorien" nach ganz unten gehen und "Alle Kommandos" auswählen
  5. im Auswahlfenster "Kommandos" auf "DatensatzAendernAutomat" gehen
  6. Kommando "DatensatzAendernAutomat" per Drag&Drop auf die Menuleiste der WinIBW ziehen
  7. im sich öffnenden Dialogfenster "Text" statt "Icon" auswählen
  8. auf "Schließen" zum Schließen des Dialogfensters gehen
Benutzungshinweis

WICHTIG! Das Skript greift auf die Copy&Paste-Funktion Ihres Windows zu. Es empfiehlt sich, das Skript nur laufen zu lassen, wenn Sie nicht an dem ausführenden Rechner arbeiten.

Ablauf

Die "Bedienung" des Skripts erfolgt in der Reihenfolge

  1. Ausfüllen Eingabemaske -> Allgeimeine Angaben
  2. Ausfüllen Angaben zum 1. Feld
  3. Ausfüllen Angaben zum 2. Feld (optional)
  4. Klicken auf OK
  5. Auswahl der IDN-Liste
Eingabemaske
Allgemeine Angaben

  • Das Passwort bitte bei den WinIBW-Betreuern in der IT erfragen.
  • Dummy-Lauf: Wenn hier ein Häkchen gesetzt wird, findet keine produktive Änderung in der Datenbank statt, sondern es wird nur eine Logdatei erstellt mit dem Inhalt "Datensatz vorher ↔ Datensatz, wie er nach einer Änderung aussehen würde"
Angaben zum 1. (und eventuell 2.) Feld

In dieser Maske wird die eigentliche Aktion konfiguriert. Man kann Aktionen für zwei verschiedene Felder angeben (Reiter "1. Feld" und "2. Feld"). Mögliche Aktionen sind

  • "obengenannten Feldinhalt neu einfügen:
    • Ist das angegebene Ausgangsfeld und Inhalt bereits vorhanden, geschieht nichts. IDN und eine entsprechende Bemerkung werden in eine Fehlerdatei geschrieben
    • Ist das angegebene Ausgangsfeld noch gar nicht vorhanden, wird es mit dem angegebenen Inhalt neu in den Datensatz geschrieben
    • Ist das angegebene Ausgangsfeld vorhanden, aber mit anderem Inhalt, hängt die stattfindende Aktion von der Wiederholbarkeit ab:
      • ist "Feld ist wiederholbar" angehakt, wird es als wiederholtes Feld mit dem angegebenen Inhalt neu in den Datensatz geschrieben
      • ist "Feld ist wiederholbar" nicht angehakt und ein Trennzeichen angegeben (";", ". - " o.ä.), wird der neue Inhalt an den bereits vorhandenen Inhalt des Feldes mit dem angegebenen Trennzeichen angehängt
      • ist "Feld ist wiederholbar" nicht angehakt und kein Trennzeichen angegeben, wird die IDN und eine entsprechende Bemerkung in eine Fehlerdatei geschrieben
  • "obengenannten Feldinhalt ersetzen durch"
    • Ist das angegebene Ausgangsfeld und Inhalt vorhanden, wird es durch das neue Feld und den neuen Inhalt ersetzt.
    • Ist das angegebene Ausgangsfeld und/oder der Inhalt nicht vorhanden, wird die IDN und eine entsprechende Bemerkung in eine Fehlerdatei geschrieben
    • Auch eine Feldlöschung ist möglich, hierzu einfach "Feldinhalt ersetzen durch" anhaken und "Feld" und "Feldinhalt" leer lassen

 

Suche-/Ersetzungsmöglichkeiten (Angaben zu den Feldern und Inhalten)

Es gibt zwei verschiedene Suchmöglichkeiten, um die zu bearbeitenden Felder und Inhalte im Datensatz zu finden:

  • Standard: Hier wird die angegebene Feldbezeichung und der Inhalt einfach hintereinander geschrieben und dann gesucht/ersetzt. Dies hat zur Folge, dass der gesuchte Inhalt am Anfang des Feldes stehen muss, sonst wird er nicht gefunden und damit auch nicht ersetzt.
    • Beispiel: Angabe: Ausgangsfeld "008", Inhalt des Ausgangsfeldes "kio" ergibt Suche nach "008 kio"; wenn im Datensatz vorhanden : "008 kio;kiz" (Haken) Suche erfolgreich, Ersetzung kann stattfinden; aber: wenn im Datensatz vorhanden : "008 kiz;kio" (Fehler) Suche nicht erfolgreich, Ersetzung kann nicht stattfinden
  • Reguläre Ausdrücke: Auch die Verwendung von regulären Ausdrücken sind möglich. Hierzu bitte den entsprechenden Haken setzen
    • Alle Parameter, Zeichenklassen, Quantoren etc. der regulären Ausdrücke können verwendet werden. Die Suchbegriffe können hierdurch viel flexibler gestaltet werden.
      • Beispiel: Ausgangsfeld "008", Inhalt des Ausgangsfeldes ".*?kio.*?" findet sowohl "008 kio;kiz" als auch "008 kiz;kio"
      • Beispiel: Ausgangsfeld "548", Inhalt des Ausgangsfeldes "\d\.\d\.\d\d\d\d" findet "548 9.7.1974", "548 2.8.1822" etc.
      • Informationen über reguläre Ausdrücke
      • Für die Generierung spezieller regulärer Ausdrücke können Sie sich auch gerne an IT1.1 wenden
      • S.a. unten bei "Anwendungsbeispielen"
Auswahl der IDN-Liste

Das Skript bearbeitet Datensätze nach einer IDN-Liste, pro Zeile muss dabei eine IDN stehen. Die IDN-Liste wird durch den üblichen Windows-Datei-Öffnen-Dialog ausgewählt.

  • Eine IDN-Liste kann aus einem Suchset durch die Funktion "ErstelleDNListe" im Menü "Datei" der WinIBW erstellt werden. Regulär werden dabei höchstens 1.000 IDNs in die Liste geschrieben. Wenn das Suchset mehr als 1.000 Datensätze umfasst, kann nach dem Laufen des DatensatzAendernAutomat-Skripts eine neue Suche durchgeführt werden und dann eine neue Liste mit den nächsten 1.000 IDNs erstellt werden (die vorherigen 1.000 IDNs wurden ja mittlerweile abgearbeitet und sollten nicht mehr im Suchset vorhanden sein). Die Einschränkung auf 1.000 hat auch seine Vorteile, weil die Laufzeit des Skriptes sonst sehr lang werden kann.
  • Wenn man durch eine WinIBW-Abfrage nicht die Datensätze selektieren kann, die automatisiert geändert werden soll (weil die Indizes es nicht hergeben), können Sie sich an IT1.1 wenden und dort um Unterstützung bitten.
  • Die IDN-Liste sollte möglichst in ein eigenes Verzeichnis gelegt werden, weil genau dorthin auch die Logdateien von DatensatzAendernAutomat geschrieben werden (s.u.) und man sich so schnellerorientieren kann.
Logdateien

Das Skript schreibt verschiedene Logdateien, um die Ergebnisse des Laufes kontrollieren zu können. Der Name jeder Logdatei beginnt mit dem Feld, das man unter "1. Ausgangsfeld" angegeben hat. Sie werden in dem Verzeichnis abgelegt, in dem die abzuarbeitende IDN-Liste liegt.

  1. <Feld>_alle_log.txt: Enthält alle bearbeiteten IDNs. Bei einem Abbruch des Skriptes (Absturz der WiniIBW o.ä.) kann man hier sehen, bis zu welcher IDN das Skript gekommen ist.
  2. <Feld>_log.txt: Enthält alle IDNs, die erfolgreich vom Skript bearbeitet wurden, bei denen es also keine Fehlermeldung im Verlauf der Bearbeitung gab.
  3. <Feld>_err.txt: Enthält alle IDNs, bei denen im Lauf der Bearbeitung ein Fehler auftrat. Diese Datensätze wurden also nicht geändert. Zusätzlich wird der Fehler mit ausgegeben:
    1. "Fehler: nicht gefunden f idn <IDN>": Die IDN konnte im CBS nicht gefunden werden
    2. "Fehler: zu ersetzende Inhalte nicht vorhanden <Ausgangsfeld> <Inhalt des Ausgangsfelds> <IDN>": Es sollte ein bestimmter Inhalt in einem bestimmten Feld ersetzt werden, aber das zu ersetzende Feld und/oder der zu ersetzende Inhalt wurde nicht gefunden
    3. "Fehler: neuer Inhalt <Ausgangsfeld> <Inhalt des Ausgangsfelds> bereits vorhanden <IDN>): Es sollte ein neuer Feldinhalt eingefügt werden, aber das Feld und der Inhalt waren bereits vorhanden
    4. "Fehler: Feld bereits mit anderem Inhalt vorhanden, Anhang-Trennzeichen wurde nicht definiert! <IDN": Es sollte ein neuer Feldinhalt in ein nicht als wiederholbar gekennzeichnetes Feld eingefügt werden, aber das Feld war bereits vorhanden. Da kein Trennzeichen angegeben wurde, konnte der neue Inhalt nicht angehängt werden.
    5. "Fehler beim Abschicken: <Meldung der WinIBW> <IDN": Der Datensatz konnte wie gewünscht geändert werden, aber beim Abschicken gab es eine Fehlermeldung der WinIBW (z. B. Validationsfehlermeldungen), so dass der geänderte Datensatz nicht gespeichert werden konnte.
  4. <Feld>_volllog.txt: Enthält alle bearbeiteten Datensätze in der Vollanzeige, und zwar "vorher - nachher". Man kann hier also schnell prüfen, ob die Änderungen so durchgeführt werden, wie gewünscht. Dies geht auch im Dummylauf, es bietet sich also immer an, mit einer reduzierten IDN-Liste erst einen Dummylauf durchzuführen, um dann in dieser Datei die Änderungen prüfen zu können.
  5. <Feld>_stat.txt: Enthält <Tagesdatum> <Anzahl der veränderten Datensätze> (Format muss noch angepasst werden, wurde im GND-Zusammenhang zu einem bestimmten Zweck genutzt)
Anwendungsbeispiele
  1. in den Datensätzen einer IDN-Liste soll im Feld 008 der Entitätencode "kio" eingefügt werden, falls es noch keinen anderen Entitätencode gibt.
    1. Ausgangsfeld "008"
    2. Inhalt des Ausgangsfelds "kio"
    3. kein Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck"
    4. Aktion: Haken bei "oben genannten Feldinhalt neu einfügen"
    5. kein Trennzeichen angeben, da der Entitätencode nicht an einen eventuell bereits vorhanden angehängt werden soll
  2. in den Datensätzen einer IDN-Liste soll im Feld 008 der Entitätencode "kio" eingefügt werden. Falls es bereits einen anderen Entitätencode gibt, soll er hinzugefügt werden
    1. Ausgangsfeld "008"
    2. Inhalt des Ausgangsfelds "kio"
    3. kein Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck"
    4. Aktion: Haken bei "oben genannten Feldinhalt neu einfügen"
    5. als Trennzeichen ";" angeben, da der Entitätencode an einen eventuell bereits vorhanden angehängt werden soll. Laut Datenformat werden weitere Entitätencodes mit ";" angehängt.
  3. in den Datensätzen (GND) einer IDN-Liste sollen strukturell falsche exakte Lebensdaten im Feld 548 korrigiert werden. Korrekte Struktur: "DD.MM.JJJJ", in den Daten gibt es aber oft "D.M.JJJJ"
    1. für Geburtsdatum in $a
      1. Ausgangsfeld "548"
      2. Inhalt des Ausgangsfelds: "(\d\.)(\d\.)(\d\d\d\d.*\$4datx)"
      3. Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck"
      4. Aktion: Haken bei "oben genannten Feldinhalt ersetzen durch",
      5. Feld: "548"
      6. Feldinhalt: "0$10$2$3"
    2. für Sterbedatum in $b
      1. Ausgangsfeld "548"
      2. Inhalt des Ausgangsfelds: "(.*\$b)(\d\.)(\d\.)(\d\d\d\d.*\$4datx)"
      3. Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck"
      4. Aktion: Haken bei "oben genannten Feldinhalt ersetzen durch",
      5. Feld: "548"
      6. Feldinhalt: "$10$20$3$4"
  4. in den Datensätzen des Bonner Katalogs sollen in den Personenfeldern (30XY) die dort noch vorhandenen Strings durch Verknüpfungsnummern ersetzt werden. Eine Konkordanz "Name - IDN" liegt vor, so dass man für häufig vorkommenden Namen (Mozart, Verdi, Wagner...) das Skript verwenden kann. Beispiel Grundlage: IDN-Liste des Suchsets "f (per mozart, wolfgang amadeus or per egk, werner) and bbg maxl" (so hat man in einem Suchset zwei Namen und kann gleich beide in einem Lauf abarbeiten).
    1. Ausgangsfeld (1): "(30..)"
    2. Inhalt des Ausgangsfelds (1) "Mozart, Wolfgang Amadeus"
    3. Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck" (1)
    4. Aktion: Haken bei "oben genannten Feldinhalt ersetzen durch" (1)
    5. Feld: "$1" (1)
    6. Inhalt: "!118584596!" (1)
    7. Ausgangsfeld (2): "(30..)"
    8. Inhalt des Ausgangsfelds (2) "Egk, Werner"
    9. Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck" (2)
    10. Aktion: Haken bei "oben genannten Feldinhalt ersetzen durch" (2)
    11. Feld: "$1" (2)
    12. Inhalt: "!118529129!" (2)
      Bei diesem Beispiel muss beachtet werden, dass in jedem Datensatz der IDN-Liste nach beiden Namen gesucht wird, in den meisten Fälle aber nur einer gefunden wird. Daher wird fast jeder Datensatz in der Fehlerliste auftauchen, obwohl der jeweils andere Name korrigiert werden konnte, was in diesem Fall eigentlich kein Fehler wäre.
  5. in einigen Datensätzen gibt es im Feld 4060 einen spezifischen Tippfehler: "1 Schallackplatte" statt "1 Schellackplatte". IDN-Liste: "f ufa Schallackplatte"
    1. Ausgangsfeld: "4060"
    2. Inhalt des Ausgangsfelds: "1 Schallackplatte"
    3. kein Haken bei "Feld ist wiederholbar"und "Regulärer Ausdruck"
    4. Aktion: Haken bei "oben genannten Feldinhalt ersetzen durch"
    5. Feld: "4060" 
    6. Inhalt: "1 Schellackplatte"
      Wenn der falsche Inhalt auch "2 Schallackplatten" sein könnte oder ähnliches, könnte man dies mit regulären Ausdrücken abfangen: Inhalt des Ausgangsfelds dann : "(\d) Schallackplatte(n?)"; ersetzen durch "$1 Schellackplatte$2"
Historie

Datum

geändert von

Beschreibung

2012-10-04

Mujkic

neu erstellt

2014-01-20Grundausführliche Beschreibung
Scriptdatei(en)

dnb_public.js

  • Keine Stichwörter