23. Erzeugung einer CSV Datei
Kapitel hinzufügen

JavaScript zur Generierung einer CSV-Datei mittels Scripting. Das Script ist Bestandteil von BCS-2 V6 Professional. Sie finden es unter dem Dateinamen imk_csv_generator.js im folgenden Verzeichnis: C:\ProgramData\ImageWareComponents\BCS2_V6_64\js.

//
// Testweises Erzeugen einer CSV Datei mittels Scripting
// wichtig: Am Ende _MUSS_ der generierte CSV-String als Ergebnis zurückgegeben werden !
// ausserdem muss der CSV-String idealerweise entweder unter dem Key "MetaCSV" oder aber "CSV_Result"
// in der KeyMap des Jobs gespeichert werden, damit er beim Upload zu MyBib eDoc beruecksichtigt wird !
//
// -------------------------------------------------------------------------------------------------------

//
// initialisieren...
//
xr.csvInit();

//
// ggfs. special characters setzen: separator (default ist ';') quote (default ist ')
// do_crlf (default ist false): soll am Zeilenende CRFL kommen oder nur LF (Linux-Text-Standard)
//
// die folgende Zeile wuerde Komma statt Semikolon und doppelte statt einfacher Anfuehrungszeichen
// setzen und ausserdem CRLF am Zeilenende aktivieren...
//
xr.setCsvSpecialCharacters (',', '"', true);

//
// Definition der Spalten der CSV-Datei
// Jede Spalte benoetigt einen Namen, ein optionaler zweiter Parameter (boolean) regelt,
// ob die Daten in quotes gestellt werden sollen
//
xr.addCsvItem ('or_scan_id');
xr.addCsvItem ('or_responder_id');
xr.addCsvItem ('or_item_add_no_lett');
xr.addCsvItem ('or_item_system_no');
xr.addCsvItem ('or_item_series_title');
xr.addCsvItem ('or_item_call_name');
xr.addCsvItem ('or_item_eL_link');
xr.addCsvItem ('or_item_title');
xr.addCsvItem ('or_item_publisher');
xr.addCsvItem ('or_item_publ_place');
xr.addCsvItem ('or_item_zdb_id');
xr.addCsvItem ('or_item_art_title');
xr.addCsvItem ('or_item_art_subtitle');
xr.addCsvItem ('or_item_language');
xr.addCsvItem ('or_item_publ_date_comp');
xr.addCsvItem ('or_item_volume');
xr.addCsvItem ('or_item_publ_date');
xr.addCsvItem ('or_item_pagination');
xr.addCsvItem ('bcs_fotos');


xr.addCsvItem ('bcs_art_author_1');
xr.addCsvItem ('bcs_art_author_gnd_1');
xr.addCsvItem ('bcs_art_author_lebensdaten_1');

xr.addCsvItem ('bcs_art_author_2');
xr.addCsvItem ('bcs_art_author_gnd_2');
xr.addCsvItem ('bcs_art_author_lebensdaten_2');

xr.addCsvItem ('bcs_art_author_3');
xr.addCsvItem ('bcs_art_author_gnd_3');
xr.addCsvItem ('bcs_art_author_lebensdaten_3');

xr.addCsvItem ('bcs_sonst_personen_1');
xr.addCsvItem ('bcs_sonst_personen_rolle_1');
xr.addCsvItem ('bcs_sonst_personen_gnd_1');
xr.addCsvItem ('bcs_sonst_personen_lebensdaten_1');

xr.addCsvItem ('bcs_sonst_personen_2');
xr.addCsvItem ('bcs_sonst_personen_rolle_2');
xr.addCsvItem ('bcs_sonst_personen_gnd_2');
xr.addCsvItem ('bcs_sonst_personen_lebensdaten_2');

xr.addCsvItem ('bcs_sonst_personen_3');
xr.addCsvItem ('bcs_sonst_personen_rolle_3');
xr.addCsvItem ('bcs_sonst_personen_gnd_3');
xr.addCsvItem ('bcs_sonst_personen_lebensdaten_3');

xr.addCsvItem ('bcs_sonst_personen_4');
xr.addCsvItem ('bcs_sonst_personen_rolle_4');
xr.addCsvItem ('bcs_sonst_personen_gnd_4');
xr.addCsvItem ('bcs_sonst_personen_lebensdaten_4');

xr.addCsvItem ('bcs_sonst_personen_5');
xr.addCsvItem ('bcs_sonst_personen_rolle_5');
xr.addCsvItem ('bcs_sonst_personen_gnd_5');
xr.addCsvItem ('bcs_sonst_personen_lebensdaten_5');

xr.addCsvItem ('bcs_schlagwort_1');
xr.addCsvItem ('bcs_schlagwort_gnd_1');

xr.addCsvItem ('bcs_schlagwort_2');
xr.addCsvItem ('bcs_schlagwort_gnd_2');

xr.addCsvItem ('bcs_schlagwort_3');
xr.addCsvItem ('bcs_schlagwort_gnd_3');

xr.addCsvItem ('bcs_schlagwort_4');
xr.addCsvItem ('bcs_schlagwort_gnd_4');

xr.addCsvItem ('bcs_schlagwort_5');
xr.addCsvItem ('bcs_schlagwort_gnd_5');

xr.addCsvItem ('bcs_koerperschaft_1');
xr.addCsvItem ('bcs_koerperschaft_gnd_1');
xr.addCsvItem ('bcs_koerperschaft_ort_1');

xr.addCsvItem ('bcs_koerperschaft_2');
xr.addCsvItem ('bcs_koerperschaft_gnd_2');
xr.addCsvItem ('bcs_koerperschaft_ort_2');

xr.addCsvItem ('bcs_koerperschaft_3');
xr.addCsvItem ('bcs_koerperschaft_gnd_3');
xr.addCsvItem ('bcs_koerperschaft_ort_3');

xr.addCsvItem ('bcs_koerperschaft_4');
xr.addCsvItem ('bcs_koerperschaft_gnd_4');
xr.addCsvItem ('bcs_koerperschaft_ort_4');

xr.addCsvItem ('bcs_koerperschaft_5');
xr.addCsvItem ('bcs_koerperschaft_gnd_5');
xr.addCsvItem ('bcs_koerperschaft_ort_5');

xr.addCsvItem ('bcs_veranstaltung_1');
xr.addCsvItem ('bcs_veranstaltung_gnd_1');
xr.addCsvItem ('bcs_veranstaltung_ort_1');

xr.addCsvItem ('bcs_veranstaltung_2');
xr.addCsvItem ('bcs_veranstaltung_gnd_2');
xr.addCsvItem ('bcs_veranstaltung_ort_2');

xr.addCsvItem ('bcs_veranstaltung_3');
xr.addCsvItem ('bcs_veranstaltung_gnd_3');
xr.addCsvItem ('bcs_veranstaltung_ort_3');

xr.addCsvItem ('bcs_sonst_kuenstler_1');
xr.addCsvItem ('bcs_sonst_kuenstler_gnd_1');
xr.addCsvItem ('bcs_sonst_kuenstler_lebensdaten_1');

xr.addCsvItem ('bcs_sonst_kuenstler_2');
xr.addCsvItem ('bcs_sonst_kuenstler_gnd_2');
xr.addCsvItem ('bcs_sonst_kuenstler_lebensdaten_2');

xr.addCsvItem ('bcs_sonst_kuenstler_3');
xr.addCsvItem ('bcs_sonst_kuenstler_gnd_3');
xr.addCsvItem ('bcs_sonst_kuenstler_lebensdaten_3');

xr.addCsvItem ('bcs_sonst_kuenstler_4');
xr.addCsvItem ('bcs_sonst_kuenstler_gnd_4');
xr.addCsvItem ('bcs_sonst_kuenstler_lebensdaten_4');

xr.addCsvItem ('bcs_sonst_kuenstler_5');
xr.addCsvItem ('bcs_sonst_kuenstler_gnd_5');
xr.addCsvItem ('bcs_sonst_kuenstler_lebensdaten_5');

xr.addCsvItem ('bcs_sonst_kuenstler_6');
xr.addCsvItem ('bcs_sonst_kuenstler_gnd_6');
xr.addCsvItem ('bcs_sonst_kuenstler_lebensdaten_6');

xr.addCsvItem ('bcs_sonst_kuenstler_7');
xr.addCsvItem ('bcs_sonst_kuenstler_gnd_7');
xr.addCsvItem ('bcs_sonst_kuenstler_lebensdaten_7');

xr.addCsvItem ('bcs_sonst_kuenstler_8');
xr.addCsvItem ('bcs_sonst_kuenstler_gnd_8');
xr.addCsvItem ('bcs_sonst_kuenstler_lebensdaten_8');

xr.addCsvItem ('bcs_sonst_kuenstler_9');
xr.addCsvItem ('bcs_sonst_kuenstler_gnd_9');
xr.addCsvItem ('bcs_sonst_kuenstler_lebensdaten_9');

xr.addCsvItem ('bcs_sonst_kuenstler_10');
xr.addCsvItem ('bcs_sonst_kuenstler_gnd_10');
xr.addCsvItem ('bcs_sonst_kuenstler_lebensdaten_10');

xr.addCsvItem ('bcs_textgattung');
xr.addCsvItem ('or_item_type');
xr.addCsvItem ('bcs_herkunftsangabe');
xr.addCsvItem ('or_item_ref_source');
xr.addCsvItem ('bcs_genre');
xr.addCsvItem ('bcs_copyright');
xr.addCsvItem ('or_item_c3_id');

//
// Start der CSV-Erzeugung muss explizit erfolgen:
//
xr.csvStart ();

//
// nun pro Zeile (dieses Script erzeugt nur eine Zeile) fuer jede Spalte den Wert setzen
//
xr.addCsvValue ('or_scan_id', job.index1);
xr.addCsvValue ('or_responder_id',job.myBibOrderRec['or_responder_id']);
xr.addCsvValue ('or_item_add_no_lett', job.myBibOrderRec['or_item_add_no_lett']);
xr.addCsvValue ('or_item_system_no', job.myBibOrderRec['or_item_system_no']);
xr.addCsvValue ('or_item_series_title', job.myBibOrderRec['or_item_series_title']);
xr.addCsvValue ('or_item_call_name', job.myBibOrderRec['or_item_call_name']);

// Web-Frontend: http://<server-url>/<mel-name>/web/index.html?open=<medianumber>

eL_name = 'imk';
server_url = 'http://mybib-imk.gbv.de/';


// Web-Frontend:
xr.addCsvValue ('or_item_eL_link', server_url + eL_name + '/web/index.html?open=' + job.index1);

xr.addCsvValue ('or_item_title', job.index2);
xr.addCsvValue ('or_item_publisher', job.index3);
xr.addCsvValue ('or_item_publ_place', job.index4);
xr.addCsvValue ('or_item_zdb_id', job.index5);
xr.addCsvValue ('or_item_art_title', job.index6);
xr.addCsvValue ('or_item_art_subtitle', job.index7);
xr.addCsvValue ('or_item_language', job.index8);
xr.addCsvValue ('or_item_publ_date_comp', job.index9);
xr.addCsvValue ('or_item_volume', job.index10);
xr.addCsvValue ('or_item_publ_date', job.index11);
xr.addCsvValue ('or_item_pagination', job.index12);
xr.addCsvValue ('bcs_fotos', job.index13);



// bcs2_art_author_1
xr.addCsvValue ('bcs_art_author_1',             job.indexVal(14, 1, 1));
xr.addCsvValue ('bcs_art_author_gnd_1',         job.indexVal(14, 1, 2));
xr.addCsvValue ('bcs_art_author_lebensdaten_1', job.indexVal(14, 1, 3));

// bcs2_art_author_2
xr.addCsvValue ('bcs_art_author_2',             job.indexVal(14, 2, 1));
xr.addCsvValue ('bcs_art_author_gnd_2',         job.indexVal(14, 2, 2));
xr.addCsvValue ('bcs_art_author_lebensdaten_2', job.indexVal(14, 2, 3));

// bcs2_art_author_3
xr.addCsvValue ('bcs_art_author_3',             job.indexVal(14, 3, 1));
xr.addCsvValue ('bcs_art_author_gnd_3',         job.indexVal(14, 3, 2));
xr.addCsvValue ('bcs_art_author_lebensdaten_3', job.indexVal(14, 3, 3));


//bcs_sonst_personen_1
xr.addCsvValue ('bcs_sonst_personen_1',            job.indexVal(15, 1, 1));
xr.addCsvValue ('bcs_sonst_personen_rolle_1',      job.indexVal(15, 1, 2));
xr.addCsvValue ('bcs_sonst_personen_gnd_1',        job.indexVal(15, 1, 3));
xr.addCsvValue ('bcs_sonst_personen_lebenssdaten_1', job.indexVal(15, 1, 4));

//bcs_sonst_personen_2
xr.addCsvValue ('bcs_sonst_personen_2',            job.indexVal(15, 2, 1));
xr.addCsvValue ('bcs_sonst_personen_rolle_2',      job.indexVal(15, 2, 2));
xr.addCsvValue ('bcs_sonst_personen_gnd_2',        job.indexVal(15, 2, 3));
xr.addCsvValue ('bcs_sonst_personen_lebensdaten_2', job.indexVal(15, 2, 4));

//bcs_sonst_personen_3
xr.addCsvValue ('bcs_sonst_personen_3',            job.indexVal(15, 3, 1));
xr.addCsvValue ('bcs_sonst_personen_rolle_3',      job.indexVal(15, 3, 2));
xr.addCsvValue ('bcs_sonst_personen_gnd_3',        job.indexVal(15, 3, 3));
xr.addCsvValue ('bcs_sonst_personen_lebensdaten_3', job.indexVal(15, 3, 4));

//bcs_sonst_personen_4
xr.addCsvValue ('bcs_sonst_personen_4',            job.indexVal(15, 4, 1));
xr.addCsvValue ('bcs_sonst_personen_rolle_4',      job.indexVal(15, 4, 2));
xr.addCsvValue ('bcs_sonst_personen_gnd_4',        job.indexVal(15, 4, 3));
xr.addCsvValue ('bcs_sonst_personen_lebensdaten_4', job.indexVal(15, 4, 4));

//bcs_sonst_personen_5
xr.addCsvValue ('bcs_sonst_personen_5',            job.indexVal(15, 5, 1));
xr.addCsvValue ('bcs_sonst_personen_rolle_5',      job.indexVal(15, 5, 2));
xr.addCsvValue ('bcs_sonst_personen_gnd_5',        job.indexVal(15, 5, 3));
xr.addCsvValue ('bcs_sonst_personen_lebensdaten_5', job.indexVal(15, 5, 4));

//bcs_schlagwort_1
xr.addCsvValue ('bcs_schlagwort_1',     job.indexVal(16, 1, 1));
xr.addCsvValue ('bcs_schlagwort_gnd_1', job.indexVal(16, 1, 2));

//bcs_schlagwort_2
xr.addCsvValue ('bcs_schlagwort_2',     job.indexVal(16, 2, 1));
xr.addCsvValue ('bcs_schlagwort_gnd_2', job.indexVal(16, 2, 2));

//bcs_schlagwort_3
xr.addCsvValue ('bcs_schlagwort_3',     job.indexVal(16, 3, 1));
xr.addCsvValue ('bcs_schlagwort_gnd_3', job.indexVal(16, 3, 2));

//bcs_schlagwort_4
xr.addCsvValue ('bcs_schlagwort_4',     job.indexVal(16, 4, 1));
xr.addCsvValue ('bcs_schlagwort_gnd_4', job.indexVal(16, 4, 2));

//bcs_schlagwort_5
xr.addCsvValue ('bcs_schlagwort_5',     job.indexVal(16, 5, 1));
xr.addCsvValue ('bcs_schlagwort_gnd_5', job.indexVal(16, 5, 2));

//bcs_koerperschaft_1
xr.addCsvValue ('bcs_koerperschaft_1',     job.indexVal(17, 1, 1));
xr.addCsvValue ('bcs_koerperschaft_gnd_1', job.indexVal(17, 1, 2));
xr.addCsvValue ('bcs_koerperschaft_ort_1', job.indexVal(17, 1, 3));

//bcs_koerperschaft_2
xr.addCsvValue ('bcs_koerperschaft_2',     job.indexVal(17, 2, 1));
xr.addCsvValue ('bcs_koerperschaft_gnd_2', job.indexVal(17, 2, 2));
xr.addCsvValue ('bcs_koerperschaft_ort_2', job.indexVal(17, 2, 3));

//bcs_koerperschaft_3
xr.addCsvValue ('bcs_koerperschaft_3',     job.indexVal(17, 3, 1));
xr.addCsvValue ('bcs_koerperschaft_gnd_3', job.indexVal(17, 3, 2));
xr.addCsvValue ('bcs_koerperschaft_ort_3', job.indexVal(17, 3, 3));

//bcs_koerperschaft_4
xr.addCsvValue ('bcs_koerperschaft_4',     job.indexVal(17, 4, 1));
xr.addCsvValue ('bcs_koerperschaft_gnd_4', job.indexVal(17, 4, 2));
xr.addCsvValue ('bcs_koerperschaft_ort_4', job.indexVal(17, 4, 3));

//bcs_koerperschaft_5
xr.addCsvValue ('bcs_koerperschaft_5',     job.indexVal(17, 5, 1));
xr.addCsvValue ('bcs_koerperschaft_gnd_5', job.indexVal(17, 5, 2));
xr.addCsvValue ('bcs_koerperschaft_ort_5', job.indexVal(17, 5, 3));

//bcs_veranstaltung_1
xr.addCsvValue('bcs_veranstaltung_1',     job.indexVal(18, 1, 1));
xr.addCsvValue ('bcs_veranstaltung_gnd_1', job.indexVal(18, 1, 2));
xr.addCsvValue ('bcs_veranstaltung_ort_1', job.indexVal(18, 1, 3));

//bcs_veranstaltung_2
xr.addCsvValue ('bcs_veranstaltung_2',     job.indexVal(18, 2, 1));
xr.addCsvValue ('bcs_veranstaltung_gnd_2', job.indexVal(18, 2, 2));
xr.addCsvValue ('bcs_veranstaltung_ort_2', job.indexVal(18, 2, 3));

//bcs_veranstaltung_3
xr.addCsvValue ('bcs_veranstaltung_3',     job.indexVal(18, 3, 1));
xr.addCsvValue ('bcs_veranstaltung_gnd_3', job.indexVal(18, 3, 2));
xr.addCsvValue ('bcs_veranstaltung_ort_3', job.indexVal(18, 3, 3));

//bcs_sonst_kuenstler_1
xr.addCsvValue('bcs_sonst_kuenstler_1',                job.indexVal(19, 1, 1));
xr.addCsvValue ('bcs_sonst_kuenstler_gnd_1',           job.indexVal(19, 1, 4));
xr.addCsvValue ('bcs_sonst_kuenstler_lebensdaten_1',   job.indexVal(19, 1, 3));

//bcs_sonst_kuenstler_1
xr.addCsvValue('bcs_sonst_kuenstler_2',                job.indexVal(19, 2, 1));
xr.addCsvValue ('bcs_sonst_kuenstler_gnd_2',           job.indexVal(19, 2, 4));
xr.addCsvValue ('bcs_sonst_kuenstler_lebensdaten_2',   job.indexVal(19, 2, 3));

//bcs_sonst_kuenstler_3
xr.addCsvValue('bcs_sonst_kuenstler_3',              job.indexVal(19, 3, 1));
xr.addCsvValue ('bcs_sonst_kuenstler_gnd_3',         job.indexVal(19, 3, 4));
xr.addCsvValue ('bcs_sonst_kuenstler_lebensdaten_3', job.indexVal(19, 3, 3));

//bcs_sonst_kuenstler_4
xr.addCsvValue('bcs_sonst_kuenstler_4',              job.indexVal(19, 4, 1));
xr.addCsvValue ('bcs_sonst_kuenstler_gnd_4',         job.indexVal(19, 4, 4));
xr.addCsvValue ('bcs_sonst_kuenstler_lebensdaten_4', job.indexVal(19, 4, 3));

//bcs_sonst_kuenstler_5
xr.addCsvValue('bcs_sonst_kuenstler_5',              job.indexVal(19, 5, 1));
xr.addCsvValue ('bcs_sonst_kuenstler_gnd_5',         job.indexVal(19, 5, 4));
xr.addCsvValue ('bcs_sonst_kuenstler_lebensdaten_5', job.indexVal(19, 5, 3));

//bcs_sonst_kuenstler_6
xr.addCsvValue('bcs_sonst_kuenstler_6',              job.indexVal(19, 6, 1));
xr.addCsvValue ('bcs_sonst_kuenstler_gnd_6',         job.indexVal(19, 6, 4));
xr.addCsvValue ('bcs_sonst_kuenstler_lebensdaten_6', job.indexVal(19, 6, 3));

//bcs_sonst_kuenstler_7
xr.addCsvValue('bcs_sonst_kuenstler_7',              job.indexVal(19, 7, 1));
xr.addCsvValue ('bcs_sonst_kuenstler_gnd_7',         job.indexVal(19, 7, 4));
xr.addCsvValue ('bcs_sonst_kuenstler_lebensdaten_7', job.indexVal(19, 7, 3));

//bcs_sonst_kuenstler_8
xr.addCsvValue('bcs_sonst_kuenstler_8',              job.indexVal(19, 8, 1));
xr.addCsvValue ('bcs_sonst_kuenstler_gnd_8',         job.indexVal(19, 8, 4));
xr.addCsvValue ('bcs_sonst_kuenstler_lebensdaten_8', job.indexVal(19, 8, 3));

//bcs_sonst_kuenstler_9
xr.addCsvValue('bcs_sonst_kuenstler_9',              job.indexVal(19, 9, 1));
xr.addCsvValue ('bcs_sonst_kuenstler_gnd_9',         job.indexVal(19, 9, 4));
xr.addCsvValue ('bcs_sonst_kuenstler_lebensdaten_9', job.indexVal(19, 9, 3));

//bcs_sonst_kuenstler_10
xr.addCsvValue('bcs_sonst_kuenstler_10',              job.indexVal(19, 10, 1));
xr.addCsvValue ('bcs_sonst_kuenstler_gnd_10',         job.indexVal(19, 10, 4));
xr.addCsvValue ('bcs_sonst_kuenstler_lebensdaten_10', job.indexVal(19, 10, 3));

xr.addCsvValue ('bcs_textgattung', job.index(20));
xr.addCsvValue ('or_item_type', job.index(21));
xr.addCsvValue ('bcs_herkunftsangabe', job.index(22));
xr.addCsvValue ('or_item_ref_source', job.index(23));
xr.addCsvValue ('bcs_genre', job.index(24));
xr.addCsvValue ('bcs_copyright', job.index(25));
//xr.addCsvValue ('or_item_c3_id');
//
// aktuelle Zeile finalisieren...
//
xr.finishCsvRow();

//
// Speichern des CSV-Ergebnisses in der KeyMap des Jobs unter 'CSV_Result'
//
var csv_result = xr.csvString ();

job.setKeyValue("CSV_Result", csv_result);

//
// dies liefert den (hoffentlich) erzeugten XML-String als Ergebnis zurück
// und führt dazu, dass die Datei - wie im Transferziel angegegben - geschrieben wird...
//
csv_result;