BSCW ServerHilfe Index
 rückwärtsvorwärts 

Document Factory

Dieser Abschnitt beschreibt die Funktionen der Komponente Document Factory. Diese Komponente ist eine getrennt Erweiterung des BSCW Systems und ist ggf. in Ihrem System nicht aktiviert.

1 Einleitung
2 Grundlagen
3 Dokumentensammlung
4 Instanzen
5 Vorlagen
6 Funktionen
7 Benutzung der Document Factory

1 Einleitung

Die Document Factory ermöglicht einer Arbeitsgruppe eine komfortable Verwaltung von Dokumenten, die öfters überarbeitet oder veröffentlich werden müssen. Basierend auf hierarchisch strukturieren Vorlagen werden aus einer Dokumentensammlung neue Dokumente in einem Evaluierungsprozess erzeugt. Die Document Factory hilft dabei Redundanzen zu vermindern und ermöglicht Konsistenz von Struktur und Layout. Mit der Operation Export können dann die erzeugten Dokumente via FTP auf einen anderen Server übertragen werden. Insbesondere eignet sich die Document Factory für die Verwaltung von Webseiten.

2 Grundlagen

Die Document Factory basiert auf folgenden Konzepten:

BSCW Dokumentensammlung
Eine BSCW Dokumentensammlung (kurz DokSet) ist ein besondere Ordner, der die Operation Auswerten bereitstellt und spezielle Attribute, die BSCW Instanzen, hat. Auch beinhaltet er die BSCW Vorlagen. Wenn eine Dokumentensammlung Unterordner hat, so erben diese die bereits definierten Instanzen, es können in neue Instanzen definiert und die Operation Auswerten angewendet werden.
BSCW Vorlage
Eine BSCW Vorlage ist eine Vorlage zur Erzeugung von Dokumenten in einer Dokumentensammlung. In einer Vorlage können die BSCW Instanzen referenziert werden oder andere Vorlagen eingebunden werden. Es gibt zwei Klassen von Vorlagen: die eine erzeugt während der Evaluierung direkt ein Dokument, die andere wird in anderen Vorlagen eingebunden.
BSCW Instanzen
Eine BSCW Instanz ist eine Variable, die in einer Vorlage einer Dokumentensammlung genutzt werden kann. Ein Instanz kann ein kurz Begriff sein, wie eine Verzeichnispfad oder eine Versionsnummer. Eine Instanz kann aber genauso eine Überschrift, ein Absatz oder der Inhalt einer ganzen Web-Seite sein. BSCW Instanzen werden innerhalb von Vorlagen oder als Attribute zu Ordner definiert.
Funktionen
Vorlagen oder die Definition einer Instanz können einige Funktionen enthalten, die eine Zeichenfolge liefern. Z. B. kann die Größe eines Dokuments durch Aufruf einer entsprechenden Funktion automatisch während des Evaluierungsprozesses eingesetzt werden. 
Evaluierungsprozess
Der Evaluierungsprozess wird auf die Objekte innerhalb einer Dokumentensammlung angewendet. Dabei wird ein oder mehrere Dokumente erzeugt, in dem in ein oder mehreren Vorlage die Instanzen eingesetzt, andere Vorlage eingebunden und die Funktionen ausgewertet werden.

3 Dokumentensammlung

Eine BSCW Dokumentensammlung (kurz DokSet) wird durch den Menüeintrag [ Datei - Neu - DokSet ] erzeugt und durch das Icon in der Ordnerliste dargestellt. Da eine DokSet im Prinzip ein Ordner ist können auch Unterordner erzeugt werden. In einem DokSet oder in den Unterordnern werden die BSCW Vorlagen abgelegt.

Mit der Operation Auswerten wird der Evaluierungsprozess gestartet. Dabei werden neue Dokumente erzeugt, die in dem Evaluierungsparameter document (siehe unten) angeben sind.

4 Instanzen

Instanzen sind Variablen in einem DokSet. Sie haben immer einen Namen und einen Wert. Der Name besteht aus einer Zeichenkette mit alphanumerischen Zeichen (ein... z, A..., Z, 0... 9). Im Wert ist jede Zeichenkette möglich, die auch Referenzen auf anderen Instanzen auch enthalten kann.

Instanzen können in einem DokSet oder Ordner als Attribute oder innerhalb von Vorlagen definiert werden.

4.1 Definition einer Instanz in einem DokSet oder einem Ordner

In einem DokSet oder einem Ordner wählen Sie den Menüeintrag [ - Werte] aus und gebe im Formular den Name und den Wert der Instanz an.

4.2 Definition einer Instanz in einer Vorlage

Innerhalb einer Vorlage werden Instanzen durch die folgende Notation definiert.

<entity name="Name der Instanz">
Wert der Instanz
</entity>

4.3 Referenz auf eine Instanz

Instanzen werden mit der Notation

&(Name der Instanz);

referenziert. Die Referenzen können in einer Vorlage oder in einem Wert einer Instanz genutzt werden.

4.4 Gültigkeitsbereich der Instanzdefinitionen

Instanzen die in einem DokSet definiert wurden, können überall in Ordnern oder Vorlagen referenziert werden. Instanzen die in einem Ordner definiert werden, können in allen Unterordner benutzt werden. D. h der Gültigkeitsbereich einer Instanzeindefinition folgt der Ordnerhierarchie. Ein bestehende Instanzeindefinition kann in einem untergeordnetem Ordner oder in einer Vorlage überschieben werden.

5 Vorlagen

Eine Vorlage ist ein BSCW Dokument vom Type Document Template (text/x-bscw-template).  Solch ein Dokument kann mit einen normalen Texteditor (z. B. MS Windows Notepad) oder einem HTML-Editor erzeugt werden. Nicht zu empfehlen sind Dokumentverarbeitungssystem wie MS Word. Beim Laden in ein DokSet zum BSCW muss der Mime-Typ Document Template (text/x-bscw-template) gewählt werden. Andernfalls wird das Dokument nicht vom Evaluierungsprozess erkannt.

Für eine BSCW Vorlage wird die Endung '.dtm' empfohlen, sp dass Sie in der Liste eines Ordners leicht erkannt werden können. Ferner wird eine Vorlage mit dem Icon gekennzeichnet.

Es gibt zwei Klassen von Vorlagen: Aus Vorlagen der ersten Klasse werden während des Evaluierungsprozesses direkt Dokumente erzeugt. Eine Vorlage gehört zu dieser Klasse, wenn der Evaluierungsparameter document gesetzt ist.

Vorlagen der zweiten Klasse sind indirekt an der Erzeugung von Dokumenten beteiligt, da sie in anderen Vorlagen eingebettet werden. Eine Vorlage gehört zu dieser Klasse, wenn der Evaluierungsparameter document fehlt.

Neben dem Evaluierungsparameter document gibt es noch den Evaluierungsparameter template. Beide Evaluierungsparameter geben Dateiname innerhalb eines DokSets an.

Für den Evaluierungsprozess gelten die folgende Regeln:

5.1 Der Evaluierungsparameter document ist für eine Vorlage X definiert

Der Evaluierungsprozess wertet die Vorlage X aus und erzeugt das Dokument, dass in dem Parameter document angegeben wurde. In diesem Fall besteht die Vorlage X im wesentlichen aus Text, der Referenzen auf Instanzen enthält, die durch den Evaluierungsprozess ausgewertet werden. 

5.2 Die Evaluierungsparameter document und template sind für eine Vorlage X definiert

Der Evaluierungsprozess wertet die Vorlage, die in dem Parameter template angeben wurde, aus und erzeugt das Dokument, dass in dem Parameter document angegeben wurde. Vor der Auswertung werden die Instanzen, die in der Vorlage X definert wurden, gelesen, so dass sie in der Vorlage, die in dem Parameter template angeben wurde, referenziert werden können. In diesem Fall besteht die Vorlage X aus Definitionen von Instanzen, die in die Vorlage eingesetzt werden, die in dem Parameter template angeben wurde.

5.3 Es sind keine Evaluierungsparameter für die Vorlage X definiert

Der Evaluierungsprozess wertet die Vorlage X nur aus, wenn sie in einer anderen Vorlage in dem Evaluierungsparameter template angegeben wurde (siehe 5.2) oder in eine andere Vorlage eingebettet wird (siehe 5.5). Dabei besteht wie in 5.1 die Vorlage X im wesentlichen aus Text, der Referenzen auf Instanzen enthält, die durch den Evaluierungsprozess ausgewertet werden.

5.4 Der Evaluierungsparameter template ist für eine Vorlage X definiert

Der Evaluierungsprozess wertet die Vorlage X nur aus, wenn sie in einer anderen Vorlage in dem Evaluierungsparameter template angegeben wurde (siehe 5.2) oder in eine andere Vorlage eingebettet wird (siehe 5.5). Dabei besteht wie in 5.2 die Vorlage X aus Definitionen von Instanzen, die in die Vorlage eingesetzt werden, die in dem Parameter template angeben wurde.

5.5 Eingebettet Vorlagen

In einer Vorlage können andere Vorlagen eingebettet werden. Dadurch kann eine Vorlage von mehreren anderen Vorlagen verwendet werden. Ein Vorlage wird mit der folgenden Notation eingebettet:

#(Name der Vorlage)#

Während des Evaluierungsprozess wird so angegeben Vorlage ausgewertet und der daraus resultierende Text eingesetzt. Solch eine Referenz auf eine Vorlage kann auch Pfadinformation haben, die die Vorlage innerhalb eines DokSet lokalisiert. Vorlagen, die Definitionen von Instanzen enthalten, können ebenso eingebettet werden. Diese werden wie in 5.4 beschrieben ausgewertet.

Mit

#(Name der Vorlage, Name einer verbundenen Vorlage)#

kann man zum Zeitpunkt der Einbettung eine Vorlage, die Definitionen von Instanzen enthält, mit einer anderen Vorlage verbinden, als wie in dem Evaluierungsparameter template angegeben wurde. D. h. Vorlagen, die Definitionen von Instanzen enthalten, können abhängig vom jeweiligen Kontext mit verschiedenen Vorlagen verbunden werden.

Die Namensangabe der Vorlage kann die Jokerzeichen '*' und '?' enthalten. In diesem Fall werden fortlaufend alle Vorlagen eingebettet, die dem Muster entsprechen.

Zum Beispiel:

#(&(content_dir);/faq/questions*.dtm, &(template_dir);/faq.dtm)#

Alle Vorlagen im Ordner &(content_dir);/faq, deren Name dem Muster question*.dtm entsprechen, werden mit der Vorlage &(template_dir);/faq.dtm verbunden, ausgewertet und eingesetzt.

6 Funktionen

Um während des Evaluierungsprozess einige Umgebungswerte einsetzen zu können, stellt die Document Factory einige Funktionen zur Verfügung, die in Vorlagen oder Instanzen genutzt werden könnn:
&base(file name);
löscht die Pfadinformation und Erweiterung eines Dateinames, z. B:
     
    &base(/home/bscw/www/faq.bht); ->  faq
&rel(path);
erzeugt aus einem absoluten einen relativen Pfadnamen in Abhängingkeit, wo ein Dokument erzeugt werden soll, z. B.:
 
Wenn &rel(/Images); in einer Vorlage benutzt wird, die ein Dokument /faq/index.htm erzeugen soll, so wird der Ausdruck zu ../Images ausgewertet. Soll dagegen ein Dokument /faq/question/install.htm erzeugt werden, so liefert die Funktion ./../Images.
 
&size(file name, [B|K|M|G]);
setzt die Grösse der angegeben Datei in Bytes, Kilobytes, Megabytes oder Gigabytes ein, z. B.:
     
      &size(/Download/bscw34.exe, M); -> 8.43
 
&date(format);
setzt die aktuelle Tageszeit ein. In dem Parameter format können folgende Formatierungszeichen verwendet werden: 
 
Zeichen  Bedeutung 
%a Abkürzung für den Wochentag
%A Wochentag
%b Abkürzung für den Monatsnamen
%B Monatsname
%c Standarddarstellung für Datum und Uhrzeit
%d Tag im Monats [01,31]
%H Stunde (24 Stunden) [00,23]
%I Stunde (12Stunden) [01,12]
%j Tag im Jahr [001,366].
%m Monat [01,12]
%M Minute [00,59]
%p entweder AM oder PM.
%S Sekunden [00,61]
%U Wochennummer im Jahr (Sonntag ist der erste Tag in der Woche) [00,53]
%w Wochentag als Zahl  [0(Sonntag),6].
%W Wochennummer im Jahr (Montag ist der erste Tag in der Woche) [00,53]
%x Standarddarstellung für Datum
%X Standarddarstellung für Uhrzeit
%y Jahr ohne Jahrhundert [00,99]
%Y Jahr mit Jahrhundert
%Z Name der Zeitzone
%% das Zeichen "%"

Zum Beispiel:

     
    &date(%B %Y); -> September 2001

7 Benutzung der Document Factory

Um mit der document factory zu starten, müssen Sie zuerst ein neues DokSet mit dem Menüeintrag [ Datei - Neu - DokSet ] anlegen. Dort müssen Sie den Name des DokSet und optional eine Beschreibung angeben.

Um Instanzen in der Ordnerhierarchie zu einzutragen, wählen Sie den Menüeintrag [ - Werte ]. Dort müssen Sie den Namen und den Wert der Instanz angeben. Bleibt ein Namensfeld einer Instanz leer, so wird die Instanz gelöscht.

Bei Vorlagen, d. h. Dokumente vom Mime-Typ Document Template (text/x-bscw-template) können Sie die Evaluierungsparameter mit dem Menüeintrag  [ - Parameter ] setzen. Dort können Sie eine Vorlage angeben, mit der die aktuelle Vorlage verbunden werden soll, und ein Dokumentname, wenn aus der Vorlage ein Dokument erzeugt werden soll. Intern werden die Evaluierungsparameter als Instanzen mit den Namen @template@ bzw. @document@ gespeichert.

Um sich alle Instanzen, die bei einem Ordner oder einer Vorlage gelten, anzuzeigen gibt es den Menüeintrag [ - Werte zeigen ]. Wenn der Name einer Instanz kursiv ist, so wird diese von einem übergeordneten Ordner geerbt.

Die Operation  | auswerten |  bzw.  [ - Auswerten ] startet den Evaluierungsprozess für die ausgewählten Vorlagen.

Um ein Sicherung eines DokSet anlegen zu können, können Sie mit dem Menüeintrag  [ - Werte exportieren ] alle Instanzen sichern. Dies erzeugt eine Datei mit der folgenden Syntax und sichert diese auf Ihrem lokalen Rechner:

<object path>' = {
<entity name>' : '<entity value>',
...
}
...

Mit dem Menüeintrag [ - Werte importieren ] können Sie solche Sicherungen wieder importieren.


 rückwärtsvorwärts