AW: [Kobv-opus-tester] Änderung der Daten per Skript

Sascha Szott szott at zib.de
Mon Apr 23 11:28:01 MEST 2012


Hallo Herr Neuber,

in welcher Sprache Sie das Skript schreiben ist unerheblich, solange Sie 
aus dem Skript heraus ein PHP-Skript ausführen, das den OPUS-Bootstrap 
initialisiert und die drei genannten Statements absetzt (wie in meiner 
letzten Mail skizziert).

Wenn Sie wirklich wissen wollen, welche internen Aktionen beim 
Veröffentlichen eines Dokuments ausgeführt werden, müssen Sie sich in 
das OPUS4-Framework einarbeiten. Das ist aber nicht der empfohlene Weg, 
da sie so Ihr Freischaltskript nach jedem OPUS4-Update auf Änderungen 
überprüfen müssen. M.E. ist es einfacher, wenn Sie die betreffenden 
Dokumente über die Framework-API freischalten und nicht an dieser vorbei 
eigene Logik implementieren, die möglicherweise unvorhergesehene 
Datenbank- oder Indexzustände erzeugt.

Beste Grüße,
Sascha Szott

On 23.04.2012 11:18, Neuber, Daniel [RZ/Studienberatung] wrote:
> Hallo Herr Szott,
>
> ich würde das Skript in Python schreiben, da dies als Cronjob auf
> unserem Server jeden Tag die Sperrfristen unserer Dokumente prüfen
> soll. Dort würde ich dann die entsprechenden Felder anpassen. Ich
> hatte allledings vorab schon mit PHPMyAdmin überprüft, ob durch das
> Ändern der entsprechenden Felder das Dokument veröffentlicht wird.
> Dies hatte leider nicht funktioniert. Daher hatte ich die Vermutung,
> das OPUS noch mehr macht, als nur diese Felder zu ändern.
>
> Viele Grüße Daniel Neuber
>
> -----Ursprüngliche Nachricht----- Von: Sascha Szott
> [mailto:szott at zib.de] Gesendet: Montag, 23. April 2012 10:41 An:
> Opus-Tester Cc: Neuber, Daniel [RZ/Studienberatung] Betreff: Re:
> [Kobv-opus-tester] Änderung der Daten per Skript
>
> Hallo Herr Neuber,
>
> wenn Sie in Ihrem Skript dafür sorgen, dass das Dokument in den
> Zustand (serverstate) *published* überführt wird, dann kümmert sich
> das OPUS-Framework automatisch um das Setzen der entsprechenden
> Zeitstempel (server_date_modified, server_date_published) und die
> Aufnahme des Dokuments in den Suchindex.
>
> Das könnte in etwa so aussehen (sie können sich an dem Skript
> $BASEDIR/opus4/scripts/snippets/release_all_unpublished_docs.php
> orientieren):
>
> $docId = ... // wird von außen übergeben
>
> $doc = new Opus_Document($docId); $doc->setServerState('published');
> $doc->store();
>
>
> Beste Grüße, Sascha Szott
>
> On 23.04.2012 09:21, Neuber, Daniel [RZ/Studienberatung] wrote:
>> Hallo zusammen,
>>
>> wir haben an unserem OPUS-System die Anforderung, Sperrfristen für
>> Abschlussarbeiten zu berücksichtigen. Dies soll automatisiert
>> erfolgen. Das heißt, wenn ein Dokument heute eingestellt, aber erst
>> in einem Jahr veröffentlicht werden darf, dann soll dieses auch
>> erst in einem Jahr in der Suche aufgelistet werden. Mir wurde
>> bereits gesagt, dass dies aktuell nicht möglich ist. Nun würde ich
>> hierfür gern ein kleines Skript schreiben, das täglich das Feld
>> "CompletedDate" prüft und dann das Dokument frei gibt oder nicht.
>> Mein bisheriger Versuch besteht darin, die Felder
>> "server_date_modified", "server_date_published" und "server_state"
>> zu ändern. Doch leider ist das Dokument dann immer noch nicht in
>> der Suche enthalten. Welche Felder werden von OPUS verändert, wenn
>> ein Dokument freigeschaltet wird?
>>
>> Vielen Dank und viele Grüße
>>
>> Daniel Neuber
>
> -- Sascha Szott :: KOBV/ZIB ::<szott at zib.de>  :: +49 30 84185-457

-- 
Sascha Szott :: KOBV/ZIB :: <szott at zib.de> :: +49 30 84185-457