20. Zugriff auf Meta-Daten mittels einer PPN und Adressierung von PICA-Kategorien
Kapitel 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 + "' !");
}