20. Zugriff auf Meta-Daten mittels einer PPN und Adressierung von PICA-KategorienKapitel hinzufügen
JavaScript zum Zugriff auf Meta-Daten mittels einer PPN. Abgefragt wird das CBS des GBV (Verbundsystem), adressiert werden PICA-Kategorien. Das Script ist Bestandteil von BCS-2 V6 Professional. Sie finden es unter dem Dateinamen gbv_ppn_query_iai_pica_xml.js im folgenden Verzeichnis: C:\ProgramData\ImageWareComponents\BCS2_V6_64\js.
//
// index_for_query:
//
index_for_query = id.index(1);
//
// Ergebnis-Indizes
//
number_index_identifier = 1; //o_type
number_index_title = 2; //o_type
number_index_medianumber = 3; //o_type
number_index_year = 4; //o_type
number_index_dyn_prop = 7; //dyn_properties
number_index_subtitle = 7; //dyn_properties
number_index_author = 7; //dyn_properties
number_index_item_edition = 7; //dyn_properties
number_index_pagination = 7; //dyn_properties
number_index_note = 7; //dyn_properties
number_index_series_title = 7; //dyn_properties
number_index_series_title_related = 7; //dyn_properties
number_index_publisher = 7; //dyn_properties
number_index_count = 7; //dyn_properties
number_index_place = 7; //dyn_properties
number_index_vol_issue = 7; //dyn_properties
number_index_vol_title = 7; //dyn_properties
number_index_corporation = 7; //dyn_properties
number_index_coordinates = 7; //dyn_properties
number_index_projection = 7; //dyn_properties
number_index_scale = 7; //dyn_properties
number_index_copyright = 8; //dyn_properties
// URL für die Abfrage:
xr.url = "http://sru.gbv.de/gvk?version=1.1&operation=searchRetrieve&query=pica.ppn%3D" +
index_for_query;
//
// performRequest() //führt den Zugriff durch und holt die Ergebnisliste ab.
//
xr.showXmlResult(); //oeffnet den Browser und zeigt das .xml-Abfrageergebnis an
id.setInformation("Anfrage beim GBV CBS für PPN '" + index_for_query + "' läuft...");
xr.performRequest("picaxml", 10, false);
id.setInformation("");
num_records = 0;
if (xr.elementExists("", "zs:numberOfRecords"))
num_records = xr.elementText ("zs:numberOfRecords");
if (num_records > 0) {
//
// loesche alte interne Ergebnisliste
//
xr.clearMarcItemList();
//
// Definiere Werte zum Zugriff fuer die Indizes
//
xr.addFetchItem ("Mediennummer", "007G", "0"); // 1 "Mediennummer"
xr.addFetchItem ("title", "021A", "a"); // 2 "Titel"
xr.addFetchItem ("subtitle", "021A", "d"); // 3 "Untertitel"
xr.addFetchItem ("vol-issue", "036D", "l"); // 4 "Bandnummer"
xr.addFetchItem ("vol-title", "021A", "a"); // 5 "Bandtitel"
xr.addFetchItem ("AutorNachname", "028A", "a", "FIRST"); // 6 "AutorNachname"
xr.addFetchItem ("AutorVorname", "028A", "d", "FIRST"); // 7 "AutorVorname"
xr.addFetchItem ("corporation", "029A", "a"); // 8 "Körperschaft"
xr.addFetchItem ("location", "033A", "p"); // 9 "Ort"
xr.addFetchItem ("publisher", "033A", "n"); //10 "Verlag"
xr.addFetchItem ("year", "011@", "a"); //11 "Jahr"
xr.addFetchItem ("pagination", "034D", "a"); //12 "Umfang"
xr.addFetchItem ("item-edition", "032@", "a"); //13 "Auflage/Edition"
xr.addFetchItem ("coordinates", "035G", "a","b","c","d"); //14 "Koordinaten"
xr.addFetchItem ("projection", "035F", "a"); //15 "Projektion"
xr.addFetchItem ("scale", "035E", "a","f"); //16 "Maßstab"
xr.addFetchItem ("series-title", "036C", "c"); //17 "Überg.Einheit"
xr.addFetchItem ("series-title-related", "046M", "a"); //18 "Überg.EinheitRed"
xr.addFetchItem ("count", "036D", "8"); //19 "Zählung"
xr.addFetchItem ("note", "046L", "a"); //20 "Fussnote/Notiz"
//
// Extrahiere die Liste aus dem SRU-XML-Result
//
xr.fetchMarcItemList ("zs:records", "zs:record", "zs:recordData/record");
// if (xr.itemListLength() > 0) {
// xr.showMarcItemList("PPN-Abfrage beim GBV für die PPN '" + index_for_query + "'",
// xr.itemListLength() + " Treffer. ");
// } else {
// xr.notifyUser ("Ergebnis GND-ID Recherche", "KEINE TREFFER !");
// }
// Uberschreibe index3 (Mediennummer) mit Index1 (PPN)...
id.setIndex(number_index_medianumber, id.index(1));
if (number_index_title > 0)
id.setIndex(number_index_title, xr.resultColumn(2));
if (number_index_subtitle > 0)
id.setIndex(number_index_subtitle, 'subtitle', xr.resultColumn(3));
if (number_index_vol_issue > 0)
id.setIndex(number_index_vol_issue, 'vol-issue', xr.resultColumn(4));
if (number_index_vol_title > 0)
id.setIndex(number_index_vol_title, 'vol-title', xr.resultColumn(5));
if (number_index_author > 0) {
aut_nachname = xr.resultColumn(6);
aut_vorname = xr.resultColumn(7);
if (aut_vorname.length > 0)
id.setIndex(number_index_author, 'author', aut_nachname + ', ' + aut_vorname);
else
id.setIndex(number_index_author, 'author', aut_nachname);
}
if (number_index_corporation > 0)
id.setIndex(number_index_corporation, 'corporation', xr.resultColumn(8));
if (number_index_place > 0)
id.setIndex(number_index_place, 'location', xr.resultColumn(9));
if (number_index_publisher > 0)
id.setIndex(number_index_publisher, xr.resultColumn(10));
if (number_index_year > 0)
id.setIndex(number_index_year, xr.resultColumn(11));
if (number_index_pagination > 0)
id.setIndex(number_index_pagination, 'pagination', xr.resultColumn(12));
if (number_index_item_edition > 0)
id.setIndex(number_index_item_edition, 'item-edition', xr.resultColumn(13));
if (number_index_coordinates > 0)
id.setIndex(number_index_coordinates, 'coordinates', xr.resultColumn(14));
if (number_index_projection > 0)
id.setIndex(number_index_projection, 'projection', xr.resultColumn(15));
if (number_index_scale > 0)
id.setIndex(number_index_scale, 'scale', xr.resultColumn(16));
if (number_index_series_title > 0)
id.setIndex(number_index_series_title, 'series-title', xr.resultColumn(17));
if (number_index_series_title_related > 0)
id.setIndex(number_index_series_title_related, 'series-title-related', xr.resultColumn(18));
if (number_index_count > 0)
id.setIndex(number_index_count, 'count', xr.resultColumn(19));
if (number_index_note > 0)
id.setIndex(number_index_note, 'note', xr.resultColumn(20));
if ((number_index_copyright > 0) && (number_index_dyn_prop > 0)) {
id.setIndex(number_index_dyn_prop, 'copyright',
id.index(number_index_copyright));
}
} else {
xr.alertUser ("PPN Abfrage", "KEINE TREFFER für die PPN '" + index_for_query + "' !");
}