Nachdem wir nun wissen, wie wir auf eine Archivista-Datenbank zugreifen können, möchten wir anhand einiger Perl-Zeilen exemplarisch aufzeigen, wie wir aufgrund einer Datenbankabfrage die entsprechenden Bitmap-Seiten in den entsprechenden Verzeichnissen finden:
Der obenstehende Code dokumentiert das Berechnen des Dateinamens aus der
Aktennummer und einer gewünschten Seite. Zusätzlich muss aus der Tabelle
'archiv' der Typ der Akte (Feld 'ArchivArt' enthält die nachfolgenden Werte
0=BMP/ZIP,1=TIF,2=PNG sowie 3=JPG) für die Dateiendung sowie der gewünschte
Ordner (Feld 'Ordner') berechnet werden, um den gesamten Pfad einer Seite
berechnen zu können.
Ebenfalls beachtet werden muss, ob eine Akte bereits archiviert wurde (Feld
'Archiviert' in der Tabelle 'Archiv'). Ist dies der Fall, so befindet sich
die gewünschte Seite nicht im Input- sondern im Output-Pfad. Den
entsprechenden Ordnernamen (einer nicht archivierten Akte) im Input-Pfad
erhalten Sie (leicht vereinfacht gesagt) dadurch, dass Sie von einer
Aktennummer mit Modulo 100 den Restwert nehmen und so im entsprechenden
Unterordner die gewünschte Seite finden. Nachfolgend noch zwei Beispiele:
Seite im Input-Ordner: Akte 1, Seite 1 mit A-Kopie und dem Wert '1'
beim Feld 'ArchivArt' befindet sich unter '..\input\in001\A0000B0B.TIF'.
Seite im Output-Order: Akte 2, Seite 3 mit B-Kopie und dem Format
'JPEG' ist bereits archiviert und liegt im Archivordner '1' (Feld
'Ordner'). Diese Seite finden wir unter '..\output\ARCH0001\B0000C0D.JPG'.
sub GetDateiName {
my $modus = shift; # A- bzw. B-Kopie
my $akte = shift; # Aktennummer
my $seite = shift; # gewünschte Seite
return $modus . FileName($akte,5,) . FileName($seite,2);
}
sub FileName {
my $eingabe = shift;
my $anzahl = shift;
my ($res,$res1,$out);
while ($eingabe != 0) {
$res = $eingabe % 26;
$res1 = $res + 65;
$out = chr($res1).$out;
$eingabe = $eingabe - $res;
$eingabe = $eingabe / 26;
}
$out = "0" x ($anzahl - length($out)) . $out;
return $out;
}
Einen guten Anhaltspunkt, wie Sie mit
einer Archivista-Datenbank kommunizieren können, bietet auch die
Publishing-Edition von Archivista. Dort finden Sie einen kompletten
Source-Code, um (inkl. der korrekten Anmeldung) mit Archivista-Datenbanken
zu kommunizieren.