16. Zugriff auf die GND für TitelKapitel hinzufügen
JavaScript zum Zugriff auf die GND für Titel (DNB). Das Script ist Bestandteil von BCS-2 V6 Professional. Sie finden es unter dem Dateinamen dnb_titel_suche.js im folgenden Verzeichnis: C:\ProgramData\ImageWareComponents\BCS2_V6_64\js.
//
// das xr Objekt:
//
// zuständig für XML-Requests an SRU oder andere Server
//
// xr.url: die URL, welche für den Zugriff verwendet wird.
// eingebette in die URL ist immer ein Ausdruck,
// der aus einem Index-Wert stammt und vom Nutzer
// eingegeben wurde.
// im vorliegenden Fall: id.index(1), dies steht
// für den momentan aktiven Index-Dialog, dort dann
// der entsprechende Index
// "and BBG=Tp*" bedeutet: nur 'typisierte' Personen nehmen
//
xr.url = "http://services.dnb.de/sru/authorities?version=1.1&operation=searchRetrieve&query=per%3D" +
id.index(1) +
" and BBG=Tp*";
//
// performRequest() führt den Zugriff durch und holt die Ergebnisliste ab.
//
id.setInformation ("GND-Suche nach '" + id.index(1) + "' bei der DNB läuft...");
xr.performRequest();
id.setInformation ("");
//
// clearMarItemList() löscht die interne Ergebnisliste.
//
xr.clearMarcItemList();
//
// für die Darstellung der Liste in der Anwendung muss zunächst eine Menge
// von Spalten definiert werden.
// Die Daten werden aus dem MARC21-xml Ergebnis ausgelesen.
// xr.addFetchItem hat die folgenden Parameter:
//
// column_name: Name der Spalte in der Anzeige
// item_number: MARC-Feldname (Nummer)
// subfield_code: MARC-Unterfeld (Ziffer oder Buchstabe)
// serial_type: steuert, wie mit Mehrfacheinträgen zumzugehen ist:
// all: alle Einträge werden genommen, getrennt durch Kommata
// first: nur der erste Eintrag wird genommen
// last: nur der letzte Eintrag wird genommen
// longest: der längste Eintrag wird genommen
// smallest: der kürzeste Eintrag wird genommen
// prefix: optionaler Prefix, ist dieser nicht-leer, muss das
// Textelement mit dem Prefix anfangen, damit es
// zum Ergebnis genommen wird.
// Das Prefix wird aus dem Ergebnis entfernt
//
// Beispiel: um die GND-ID zu erhalten, muss das MARC-Feld 035 untersucht
// werden. Dort das Unterfeld "a".
// Allerdings sind nur die Treffer richtig, bei denen das Prefix
// "(DE-588)" ist.
//
xr.addFetchItem("Name", "100", "a");
xr.addFetchItem("Jahrgang", "548", "a", "longest");
xr.addFetchItem("GND-ID", "035", "a", "first", "(DE-588)");
xr.addFetchItem("Beruf", "550", "a");
xr.addFetchItem("Geburtsort", "551", "a");
xr.addFetchItem("weitere Informationen", "678", "b");
//
// fetchMarcItemList extrahiert aus dem internen XML-Ergebnis die einzelnen
// Records
//
// Parameter:
//
// path_to_list: Pfad vom Root-Element zur Liste der Records. Im vorliegenden Fall "records"
// list_element_name: Name des eigentlichen Record-Elements. hier "record"
// path_to_items: Unterhalb des Record-Elements der Pfad zu den eigentlichen Record-Daten
//
xr.fetchMarcItemList ("records", "record", "recordData/record");
//
// Anzeige der Liste
//
xr.showMarcItemList("GND-Abfrage bei der DNB für den Autor '" + id.index(1) + "'", xr.itemListLength() + " Treffer. Bitte doppelt klicken um die GND-ID zu übernehmen!");
//
// Hinweis für den Nutzer
// (Kann auch auskommentiert werden)
//
if (xr.resultColumn(3).length > 0)
xr.notifyUser ("Ergebnis GND-ID", xr.resultColumn(3));
//
// Falls eine GND-ID ermittelt wurde, werden nun einige Werte
// in die aktuellen Index-Werte übernommen:
// resultColumn (n) liefert den Wert der n-ten Spalte
// id.setIndex(i, wert) setzt den Index-Wert des i-ten Index
//
if (xr.resultColumn(3).length > 0) {
id.setIndex(7, xr.resultColumn(3));
}
xr.requestResult;