Anlegen von Vorgängen aus einer CSV-Datei


#1

Liebe Community,

gibt es eine Möglichkeit eine große Mengen von Vorgängen aus einer CSV-Datei heraus anzulegen? In Spalte 1 der Tabelle steht ein eindeutiger Identifier. Danach kommen in mehreren Spalten die “üblichen” Metadaten wie Verfasser, Titel, Erscheinungsjahr etc. ; in der letzten Spalte steht ein Link, der auf das Verzeichnis zielt, in dem sich die zum Vorgang gehörenden Bilddateien befinden. Der Inhalt dieses jeweiligen Verzeichnisses soll in den Vorgang kopiert werden.

Viele Grüße, Andreas Schlüter


#2

Hallo Herr Schlüter,
Intranda hat in unserem Auftrag die WEB-API um das Kommando createbyxml erweitert. Das verwenden wir an der UB Bielefeld, um große Mengen von Vorgängen anzulegen. Ich denke, dass unser Vorgehen auch bei Ihnen angewandt werden kann, auch wenn wir für die Metadaten unseren Katalog befragen.
Der Aufruf erwartet zwei Parameter PVID (ID der Produktionsvorlage) und eine XML-Datei mit Metadaten. Die XML-Datei basiert auf den Regeln der ruleset.xml und sieht so aus:

<?xml version="1.0"?>
<record>
        <identifier>1775411</identifier>
        <processtitle>kotzritt_1775411</processtitle>
        <docstruct>Monograph</docstruct>

        <optionalData>
        <metadata rulesetname="TSL_ATS" value="kotzritt" />
        <metadata rulesetname="singleDigCollection" value="Kinder- und Jugendbuch-Sammlung Aiga Klotz" /> 
        <metadata rulesetname="CatalogIDSource" value="HT009823578"/>
        <metadata rulesetname="DocLanguage" value="ger"/>
        <metadata rulesetname="Author" value='Kotzde-Kottenrodt, Wilhelm' />
        <metadata rulesetname="TitleDocMain" value='Ein Ritt ins Luch und andere Erzählungen aus großer Zeit' /> 
        <metadata rulesetname="TitleDocMainShort" value='Ritt ins Luch und andere Erzählungen aus großer Zeit' /> 
        <metadata rulesetname="PlaceOfPublication" value="Langensalza" />
        <metadata rulesetname="PublisherName" value="Beltz"/>
        <metadata rulesetname="PublicationYear" value="1914"/>
        <metadata rulesetname="shelfmarksource" value="ZS176 T6" />
        <metadata rulesetname="DDC" value="830"/>
        </optionalData>
</record>

Die Werte in der XML-Datei kommen bei uns aus dem Katalog. Sie können sie direkt aus Ihrer CSV-Datei entnehmen.
Ein Beispiel-Shellskript sehe dann so aus:

while read line; do
    func_createxml $line
    curl -H "Content-Type: text/xml" 'http://localhost/goobi/api/process/createbyxml/'$PVID'?token=IhrAuthtoken' -d @$XMLDat'
done <DAT.csv

Ich hoffe, dass hilft Ihnen weiter.
Viele Grüße
Artur Nold


#3

Hallo Herr Nold,

das hilft auf jeden Fall! Jetzt müssen wir das nur noch mit einem automatisierten Imageimport verknüpfen :slight_smile:

Herzliche Grüße aus Weimar, Andreas Schlüter


#4

Hey Andreas

Sag Bescheid, wenn du es fertig hast. Dann müssen wir das nicht mehr selber implementieren. :sunglasses:

Liebe Grüße

Steffen


#5

Hallo Steffen,

ich hatte doch schon die Idee! Ich bin aber bereit, auf meine mir aus dem Patent zustehenden Rechte zu verzichten. :wink: