Closed luchner closed 10 years ago
72424e1
first fix committed
Hinweise von Andres
Liebe alle,
Mit der Nicht-Anzeige als Provisorium können wir leben. Der Fix hat aber eine hohe Priorität, wie alle Benutzungsfunktionen.
Hier ein möglicher Lösungsweg auf Aleph-Seite zum Fixen der fehlerhaften Anzeige von Fernleihen:
X-Service
[Günter fragt:]
kann mir mal einer erklären, warum dieser request http://aleph.unibas.ch/X?op=find&base=DSV01&request=BAR%3DAP0037707 ein leeres set zurückgibt.
Offenbar weil Fernleihe-Barcodes nicht expandiert werden und nicht im BAR Index landen.
Der Barcode ist durchaus im System, aber leider gibt's dazu keine Bibliographische Info: http://aleph.unibas.ch/X?op=ill-item-by-bc&barcode=AP0037707&library=dsv51
Das ist also wohl eine Sackgasse.
RESTful API
Das RESTful API zeigt alle Ausleihen inklusive Fernleihen korrekt an, inklusive z13-Kurztitel:
http://aleph.unibas.ch:1891/rest-dlf/patron/A0502073/circulationActions/loans?institution=DSV51
Als Antwort kommen die Links auf die Details der beiden Ausleihen:
Der erste Link ist der Link zur Fernleihe. (Der Inhalt des Attributs 'renew' an dieser Stelle ist übrigens Unsinn. Bei der Detailansicht kommt's dann aber korrekt.)
Herzlichen Gruss, Andres
[Bei der Analyse tauchen gleich noch weitere Fehler auf. Lösungen zum Glück auch.]
Q: Warum werden keine ausgeliehenen Fernleihen angezeigt? A: Konfigurationsfehler. Die Kontoanzeige im Aleph ILS-Driver von VuFind Core geschieht mit Aleph::getMyTransactions und Aleph::getMyFines. Die rufen ihrerseits Aleph::barcodeToID auf, um zu einem Exemplar-Barcode die zugehörige ID der bibliographischen DB zu finden. Man muss allerdings angeben, in welcher bibliographischen DB er suchen soll. Lösung:
# Aleph.ini
[Catalog]
bib = DSV01,DSV21
TODO : Testen auf Nebenwirkungen
Q: Warum werden alle Ausleihen behandelt, als ob sie verlängerbar sind? A: Wegen eines Bugs im RESTful API von Aleph 21.01 [.../circulationActions/loans/?view=full]. Aleph liefert völlig ungeprüft für jeden Record das Attribut "renewable" = "Y".
Lösung: Die korrekte Lösung wäre, für jedes Item einen zweiten RESTful call zu machen, die dann das korrekte Attribut "renewable" liefert. Wir machen's uns aber bequem und parsen jeweils das Element "renew-info" in der summarischen Anzeige.
Q: Warum wird im Template immer noch "O von 5" Verlängerungen angezeigt, obwohl das Exemplar nicht verlängerbar ist? A: Weil es so Hardcoded im Template stand.
Hier das vorher/nachher (committ folgt morgen):
Zu früh gefreut und zu gefixt, das Problem der Fernleihen muss noch genauer angeschaut werden. Heute morgen ist mir aufgefallen, dass bei Anmeldung keine Items zurückgeliefert werden, das berüchtigte "no data".
In dieser Funktion wird zuerst der Link für den Rest-Request zusammengebaut und dann dem Benutzer erlaubte Aktionen ausgegeben: https://github.com/swissbib/sbvf2/blob/4d50c3502385eb7c2ebcee0cb149261cbf56d05e/module/Swissbib/src/Swissbib/VuFind/ILS/Driver/Aleph.php#L120
Dabei wird diese Core-Funktion aufgerufen, welche mit zwei BIBs schlecht umgehen kann, zumindest in der konfigurierten Art und Weise: https://github.com/swissbib/sbvf2/blob/4d50c3502385eb7c2ebcee0cb149261cbf56d05e/module/VuFind/src/VuFind/ILS/Driver/Aleph.php#L625
@vonarx @luchner
Ausleihen sind nicht möglich, Exception (s.o.).
Folgende Funktionen im Aleph-Driver:
Dasselbe Problem wie oben schon. Falls DSV21 nicht konfiguriert wird, funktioniert es.
VuFind geht davon aus, dass eine Systemnummer eines Aleph-Systems die Systemnummer in der Form BIB-Nummer (z.B. DSV01-012345678) enthält, wenn mehr als eine BIB konfiguriert ist.
Zwei Wege:
Jedenfalls braucht der Komplex noch weitere Analyse, es wird noch weitere betroffene Kontofunktionen geben. Falls wir das nächste Woche nicht lösen können, müssen die Fernleihen vorerst aussen vor bleiben.
"2. ev. Ausgabe der Aleph-Systemnummern mit vorangestellter BIB. Das wäre im CBS zu machen."
=> das kann auch auf der Aufbereitungsseite noch gemacht werden. Die Information wird im Unterfeld $D ausgegeben:
949 $BIDSBB $CDSV51 $DDSV01 $E003946842 $FA208 $bA208 $c208FO $jJF M II 597 Ed 2007 FBOe...
949 $BIDSLU $CILU50 $DILU01 $E000475422 $FLUUHL $bLUNI3 $cU3FRE $jPC 33 CH .b BIAG 2007...
949 $BNEBIS $CZAD50 $DEBI01 $E005229467 $FZ01 $bZ01 $c02 $jHC 7233 Expl 2...
@ToVie @guenterh @mschwendener
Beispiel: statt: http://aleph.unibas.ch/X?op=find&base=DSV01&request=BAR%3DAP0037707 so: http://aleph.unibas.ch/X?op=find&base=DSV21&request=BAR%3DAP0037707