[Allegro] FLEX-Muster für Erg.Mengen-Verarbeitung

Thomas Berger ThB at Gymel.com
Mi Sep 10 08:26:45 CEST 2014


Lieber Herr Eversberg, liebe Liste,


> Auf der Fortbildung wurde Interesse deutlich für FLEXible
> Ergebnismengen- und Gesamtbank-Verarbeitung mit a99.
> Die schlichte, sehr einfache Abarbeitung einer Erg.-
> oder Gesamtmenge mittels  first / next  ist nicht
> immer hinreichend. Gelegentlich braucht man einen Output, der
> unter dem jeweiligen Datensatz auch seine irgendwie mit ihm
> verknüpften Sätze auflistet, z.B. Bände oder auch Exemplare.
> Hat jemand für solche Zwecke praktikable Muster, die man als
> Beispiel nehmen und leicht modifizieren könnte?
> 
> Denkbar sind da zwei oder drei verschiedene Vorgehensweisen,
> wenn ich's nicht ganz falsch sehe, aber es könnte ja schon
> praktische Erfahrungen geben, die einen bestimmten Ansatz
> als den am elegantesten umsetzbaren erwiesen haben.

Fuer allegro-NRW und allegro-HANS biete ich "Ergebnismengen
manipulieren" an: Ein Verteiler-Flex, der dann per Parameter-
datei aus der aktuellen Ergebnismenge eine neue (als "PRESTO"-
Ergebnismenge) baut:

< https://svn.extra.gymel.com/viewvc/allegro/hans/trunk/fixpkg/resman/ >

Angeboten wird "Hauptaufnahmen hinzunehmen" oder "Baende hinzunehmen",
"Baende ausfiltern", dasselbe fuer Unselbstaendige etc.

Die Variante fuer allegro-NRW kennt auch noch eine Parameterdatei,
die Titelsaetze zu einer Menge von Exemplarsaetzen hinzunimmt:
<
https://svn.extra.gymel.com/viewvc/allegro/nrw/trunk/fixsrc/i-ex2tit.cpr?view=markup
>

Die Anforderungen gerade im ORDER-Bereich sind vielfaeltig, denn
da gibt es viele klar unterschiedene Entitaetsarten (nicht nur
MBWs, Baende und Aufsaetze, sondern auch Lieferanten, Bestellsaetze,
Exemplarsaetze, Kontingente) und die typische Anforderung
scheint zu sein, zu einer Ergebnismenge damit verknuepftes aus
einer anderen Entitaetsart hinzuzunehmen, manchmal auch
darueber hinaus nur das Hinzugekommene zu betrachten bzw.
anschliessend Saetze einer bestimmten Entitaetsart wieder
wegzunehmen.

Dabei soll oft eine "urspruengliche" Reihenfolge erhalten bleiben,
d.h. die Ausgangssaetze sind die Grundlage einer Gruppierung,
hinzugekommene Saetze sind u.U. mehrfach enthalten. Deduplizieren
ist eine weitere Aktion.

Wenn man vom Klein-Klein des aus einer Ergebnismenge eine andere
Ergebnismenge bauens abstrahiert, geht es vielleicht um folgendes:

* Anhand einer sortieren Ergebnismenge (etwa von Titeln) eine dadurch
  gruppierte Menge "anderer" Saetze (etwa Exemplare) praesentieren
  / drucken / bearbeiten lassen

* Umgekehrt: Einer Ergebnismenge (etwa von Exemplaren) ein "externes"
  Ordnungskriterium aufdrucken (etwa der zugehoerigen Titel: Alphabet,
  Signatur(en), Klassifikation(en))


PRESTO-Ergebnismengen koennen auch ohne Parameterdateien direkt
mittels Flex produziert werden, das ist fuer Ergebnismengen-
Manipulationen leider wenig attraktiv: Die Mini-Flexe fuer die
konkreten Operationen sollten fuer sich stehen, damit sie
einfach ergaenzt werden koennen, da Flexe nicht Flexe aufrufen
koennen (bzw. nur um den Preis des Suizids) braucht es Zusatz-
Logik.

Mein Desiderat war schon lange, den Aufbau einer neuen Ergebnismenge
auf direktere Art als ueber eine Temporaerdatei zu ermoeglichen.



> Für acon stellt sich's womöglich ein wenig anders dar. Das war
> gestern zwar nicht das Thema, ist natürlich aber auch von
> Interesse. (acon kennt, anders als a99, das Umschalten zwischen
> einer Fam-Erg.Menge und der eigentlichen Erg.Menge, damit kann
> man aber nur den Fall der verknüpften Banddaten abhandeln, nicht
> den der Exemplardaten.)

Wieso? der Family-Befehl ist doch vor Jahren bereits hinreichend
auf beliebige Schluessel verallgemeinert worden. Wahr ist allerdings,
dass nicht alle Anforderungen dieselben Schluessel benoetigen (sonst
waeren es in einem gewissen Sinn ohnehin dieselben Anforderungen ;-),
insofern braucht man da irgendwo eine "Weiche".

viele Gruesse
Thomas Berger










Mehr Informationen über die Mailingliste Allegro