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.
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
Der API-Aufruf steht nicht in jeder aktuellen Installation zur Verfügung, kann aber von uns installiert werden (wie bei @bbfks schon geschehen). Die Dokumentation ziehen wir in den nächsten Wochen nach.