[Allegro] ALF-Ausnahmefristen

Thomas Berger ThB at Gymel.com
Fr Jul 11 12:53:04 CEST 2014


Lieber Herr Eversberg, liebe ALF-Interessierte,

beim upgraden einer aelteren Anwendung auf die aktuellen
ALF-Flexe (speziell alf.flx vom August 2011) fiel auf,
dass nun staendig nach Ausnahmefristen gefragt wurde,
was vorher nicht so war.

I.
Ich bin dem einmal nachgegangen, verursacht wird das
durch Code ab Zeile 25 in alf.flx:

#uaF   // StandardFrist wegnehmen

var $Uaf
  Praesenzbestand: auch Ausl. mit Ausnahmefrist
ins #uaf 28


Ich halte das fuer kein sinnvolles Flex-Kommando, der Effekt
ist jedenfalls, dass *vor* den iV-Wert "28" gesetzt wird und
die Kombination dann nach #uaf geht. Sollte $Uaf einen Wert
gehabt haben, etwa "10", so landet anschliessend "2810" in
#uaf - das waeren ausnahmsweise 8 Jahre und ist gewiss so nicht
beabsichtigt.

Meine Vermutung ist, dass die "28" an der Stelle Schmutz aus
irgendeinem Edit-Unfall oder einer nachlaessigen Ueberarbeitung
ist, aber weil exakt die drei Zeilen mit V31.8 hinein gekommen
sind ist schwer zu entscheiden, was das sollte.

II.
Es sind hier zwei Sorten "Ausnahmefrist" am Werk, und zwar einmal
die per $Uaf in alf.inc konfigurierbare Ausnahmefrist fuer
Praesenzbestand (der ja eigentlich gar nicht ausleihbar ist)
und zum anderen der Aufruf mit gesetztem #uaf aus alf.rtf
"mit Ausnahemfrist" (das geht direkt auf a-chkout.flx das
mit dem Kommentar beginnt "wird aufgerufen von alf.flx,
nicht direkt!".

Mir scheint, dass das zwei unabhaengige Mechanismen sind,
Harmonisierung waere aber wuenschenswert. Dafuer muesste
allerdings geklaert werden, wie die benoetigten Funktionen
und ihr Zusammenspiel eigentlich aussehen sollten:

a) Angenommen, ich aktiviere die Funktion "mit Ausnahmefrist"
   und breche damit bewusst die ueblichen Fristregelungen fuer
   die einzelnen Medien: Will ich dann Praesenzbestand
   ebenfalls unter genau dieser Frist (zumindest als Vorschlag)
   entleihen oder will ich gerade an dieser Stelle dann doch
   noch den Riegel vorschieben und das, was /prinzipiell/
   nicht ausleihbar ist auch im Modus "mit Ausnahmefrist"
   immer noch als nicht entleihbar behandeln?

b) Dementsprechend bei Setzung der Praesenzbestand-Ausnahmefrist
   in $Uaf: Soll Prasesenzbestand damit auch bei regulaeren
   Entleihungen generell zur "ausnahmsweisen" Ausleihe unter
   der einkonfigurierten Ausnahmefrist angeboten werden oder soll
   diese Ausnahme nur dann eine abweichende Ausnahemfrist darstellen,
   wenn ohnehin im Spezialmodus "mit Ausnahmefrist" operiert wird?

[Die oben zitierte Stelle aus alf.flx ab V31.8 passt auf keins von
beiden, denn das Einimpfen einer gesetzten $Uaf an der Stelle fuehrt
dazu, dass jegliches Medium im Regulaerbetrieb seine normalen Fristen
verliert, nicht nur Prasesenzbestand]

Meine Frage ist, ob man diese beide Sorten Ausnahmen in
einem Modell zusammenfassen kann oder ob die Praxis in
den Bibliotheken eher so ist, dass es alle nur denkbaren
Sorten Ausnahmen gibt und eher keine Festlegungen, dass
gewisse Ausnahmen vorgesehen sind und regelhaft verarbeitet
werden und andere Ausnahmen auch ausnahmsweise nicht
gwaehrt werden?


III. (etwas anderes Thema als I. und II., es geht aber ebenfalls
um Ausnahmen)
In der fraglichen Bibliothek gibt es eine grosse Leserklasse
"Praesenznutzer", im Benutzerklassensatz sowie den zugehoerigen
Medientypsaetzen sind sowohl die Leihfrist als auch die
Maximalzahl der Medien auf "0" eingestellt. Versuch der
Ausleihe (die Ausweise sind nicht speziell eingefaerbt und
es muss ja nicht unbedingt boeser Wille am Werk sein, wenn
ein Benutzer mit Ausweis und Buch zur Theke wandelt und etwas
ausleihen will) fuehrt nun zur Rueckfragen bezueglich
ausnahmsweiser Ueberschreitung der Frist von 0 Tagen /und/
ausnahmsweiser Ueberschreitung der maximalen Medienzahl von 0.
Das ist aber alles so beilaeufig dass die Bibliothek fuer
die Thekenkraefte lieber irgendwo (nein: frueh!) eine fundamentale
Warnung "Praesenznutzer, darf nicht ausleihen" einblenden moechte.
(da gilt das dann strikt und ohne Ausnahmen, weil der Unterschied
zwischen den Nutzerarten an hinterlegter Kaution und moeglichem
Regress haengt - anderswo stelle ich mir vor dass Ausnahmen
wiederum moeglich gemacht werden sollten)

Es gibt in ALF gesperrte Benutzer (eher im Sinn von gesperrten
Ausweisen?), abgemeldete Benutzer und solche deren Ausweis
abgelaufen ist, all das passt nicht auf "Praesenznutzer".
Strenggenommen muesste analysiert werden, ob fuer alle
Medientypklassen die Ausleihe faktisch unmoeglich ist (wohl
aber Vormerkung?), oder fallbezogen, ob fuer alle Medien des
aktuellen Ausleihvorgangs die Ausleihe verweigert werden wird.
Das ist kompliziert, aber in alf.flx wird recht frueh der
Leserklassensatz konsultiert und wenn man daraus Schluesse
ziehen darf, waere das Ziel auch erreicht:

Was /Fristen/ angeht, so sind die Einstellungen im Leserklassensatz
ein Fallback oder Default: Fehlt der Medientypsatz oder hat er
fuer die Frist keinen Eintrag, so gilt die Frist aus dem
Leserklassensatz.

Was aber die Maximalzahl Medien angeht, bin ich mir nicht sicher,
ob das aehnlich gehandhabt werden sollte, oder ob noch weitere
Zusammenhaenge gelten sollen: Ist die Maximalzahl Medien im
Leserklassensatz wirklich nur ein Fallback oder nicht eher ein
Gesamt-Deckel? D.h. wenn ich lt. Medientypsaetzen 5 Buecher und
2 DVDs ausleihen darf, ist dann noch relevant ob im Leserklassen-
satz als Maximalzahl "5", "7", "12" oder "0" steht?
Und wenn der Medientypsatz "Spiel" nicht existiert bzw. keine Zahl
setzt, ist eine hilfsweise gezogenen "5" aus dem Benutzerklassensatz
dann als Limit "5 Spiele" oder "5 Medien insgsamt" zu verstehen?

Ich muss zugeben, dass mir die Interpretation "Gesamt-Deckel"
im konkreten Fall sehr zupass kam: Steht im Benutzerklassensatz
"maximal *0* Medien", dann waeren eventuelle hoehere Werte in
den Medientypsaetzen damit potentiell ohnehin in Konflikt und
ich fand es daher "sauber", sofort (und ohne Untersuchung der
Medientypsaetze) auf "Praesenznutzer" zu schliessen und die
versuchte Ausleihe fruehzeitig abzuwuergen bzw. mit einer Zusatz-
warnung zu versehen.

Doppelfrage auch hier: Wie ist es eigentlich gedacht, wie wuerde
man es in einer "Normalbibliotek" handhaben (und passen die beiden
und die derzeitige Implementierung zusammen?)

viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro