From 8aecfa7c669fc3c439b3a1ff8d19cf0091a5542a Mon Sep 17 00:00:00 2001 From: "G. Richardson" Date: Thu, 21 May 2015 16:05:27 +0200 Subject: [PATCH] Dokumentation angepasst * Link auf Demosystem aktualisiert * Typos behoben * aktuelle HTML-Version der Dokumentation committet --- doc/dokumentation.xml | 16 ++++++++-------- doc/html/ch02s02.html | 5 +++-- doc/html/ch02s05.html | 6 +++--- doc/html/ch02s06.html | 14 ++++++++------ doc/html/ch02s07.html | 6 +++--- doc/html/ch02s10.html | 2 +- doc/html/ch02s12.html | 10 +++++----- doc/html/ch03s02.html | 4 ++-- doc/html/ch04.html | 34 +++++++++++++++++----------------- doc/html/ch04s03.html | 2 +- doc/html/index.html | 4 ++-- 11 files changed, 53 insertions(+), 50 deletions(-) diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index 84412d4d3..a80416365 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -1448,7 +1448,7 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ ./scripts/installation_check.pl -lv - Der Angemmeldete Benutzer muss in einer Gruppe sein, die über das + Der Angemeldete Benutzer muss in einer Gruppe sein, die über das Recht "Konfiguration -> Mandantenverwaltung" verfügt. Siehe auch . Im Userbereich lässt sich unter: @@ -1473,7 +1473,7 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ Standard - Der Standard-Vorlagensatz von Kivitendo. Wie unter http://demo.kivitendo.org zu + Der Standard-Vorlagensatz von Kivitendo. Wie unter https://www.kivitendo.de zu sehen. @@ -1669,14 +1669,14 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ - Wird garkein Fehler angezeigt sondern nur der Name des Templates, + Wird gar kein Fehler angezeigt sondern nur der Name des Templates, heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde. Prüfen Sie den Namen in der Konfiguration (Standard: pdflatex), und stellen Sie sicher, dass pdflatex (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden darf. - Wenn sich das Problem nicht auf Grund der ausgabe im Webbrowser verifizieren lässt: + Wenn sich das Problem nicht auf Grund der Ausgabe im Webbrowser verifizieren lässt: editiere [kivitendo-home]/config/kivitendo.conf und ändere "keep_temp_files" auf 1 @@ -1697,7 +1697,7 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ export TEXINPUTS=".:[kivitendo-home]/templates/[aktuelles_template_verzeichniss]:" - Finde herraus welche Datei kivitendo beim letzten Durchlauf erstellt hat + Finde heraus welche Datei kivitendo beim letzten Durchlauf erstellt hat ls -lahtr ./1*.tex Es sollte die letzte Datei ganz unten sein @@ -2904,7 +2904,7 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ Ausgabemedium. Kann zur Zeit die Werte screen für Bildschirm, - email für E-Mmail (triggert das + email für E-Mail (triggert das _email Kürzel im Dateinamen), printer für Drucker, und queue für Warteschlange enthalten. @@ -5310,7 +5310,7 @@ Beschreibung: <%description%> $::form wurde unter SQL - Ledger als Gottobjekt für alles misbraucht. Sämtliche + Ledger als Gottobjekt für alles missbraucht. Sämtliche alten Funktionen unter SL/ mutieren $::form, das heißt, alles was einem lieb ist (alle Variablen die einem ans Herz gewachsen sind), sollte man vor einem Aufruf (!) von zum Beispiel @@ -5872,7 +5872,7 @@ file_name = /tmp/kivitendo-debug.log Benötigt. Eine Beschreibung, was in diesem Update passiert. Diese wird dem Benutzer beim eigentlichen - Datenbankupdate angezeigt. Während der Tag in englisch gehalten + Datenbankupdate angezeigt. Während der Tag in Englisch gehalten sein sollte, sollte die Beschreibung auf Deutsch erfolgen. diff --git a/doc/html/ch02s02.html b/doc/html/ch02s02.html index 726f9fd4a..358a435a7 100644 --- a/doc/html/ch02s02.html +++ b/doc/html/ch02s02.html @@ -80,14 +80,15 @@ libstring-shellquote-perl libtemplate-perl libtext-csv-xs-perl \ libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \ libimage-info-perl libgd-gd2-perl \ - libfile-copy-recursive-perl postgresql

Für das Paket HTML::Restrict gibt es kein Debian-Paket, dies muß per CPAN installiert werden. Der entsprechende Befehl wird beim Aufruf von installation_check.pl angezeigt.

2.2.2.2. Fedora Core

Für Fedora Core stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:

yum install httpd perl-Archive-Zip perl-Clone perl-DBD-Pg \
+  libfile-copy-recursive-perl postgresql

Für das Paket HTML::Restrict gibt es kein Debian-Paket, dies muß per CPAN installiert werden. Unter Ubuntu funktioniert das mit:

apt-get install build-essential
+cpan HTML::Restrict

2.2.2.2. Fedora Core

Für Fedora Core stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:

yum install httpd perl-Archive-Zip perl-Clone perl-DBD-Pg \
   perl-DBI perl-DateTime perl-Email-Address perl-Email-MIME perl-FCGI \
   perl-File-Copy-Recursive perl-JSON perl-List-MoreUtils perl-Net-SMTP-SSL perl-Net-SSLGlue \
   perl-PDF-API2 perl-Params-Validate perl-Rose-DB perl-Rose-DB-Object \
   perl-Rose-Object perl-Sort-Naturally perl-String-ShellQuote \
   perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \
   perl-XML-Writer perl-YAML perl-parent postgresql-server

Zusätzlich müssen einige Pakete aus dem CPAN installiert werden. Dazu können Sie die folgenden Befehle nutzen:

yum install perl-CPAN
-cpan Config::Std

2.2.2.3. openSUSE

Für openSUSE stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl +cpan Config::Std

2.2.2.3. openSUSE

Für openSUSE stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:

zypper install apache2 perl-Archive-Zip perl-Clone \
   perl-Config-Std perl-DBD-Pg perl-DBI perl-DateTime perl-Email-Address \
   perl-Email-MIME perl-FastCGI perl-File-Copy-Recursive perl-JSON perl-List-MoreUtils \
diff --git a/doc/html/ch02s05.html b/doc/html/ch02s05.html
index 20ae6f536..f1855baf3 100644
--- a/doc/html/ch02s05.html
+++ b/doc/html/ch02s05.html
@@ -12,7 +12,7 @@ exit 

Andernfalls ist es notwendig, einen neuen Datenbankcluster mit \l geprüft werden.

2.5.2. Änderungen an Konfigurationsdateien

In der Datei postgresql.conf, die je nach Distribution in verschiedenen Verzeichnissen liegen kann (z.B. /var/lib/pgsql/data/ oder - /etc/postgresql/, muss sichergestellt werden, + /etc/postgresql/), muss sichergestellt werden, dass TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den Parameter listen_address gesteuert. Laufen PostgreSQL und kivitendo auf demselben Rechner, so kann dort der Wert @@ -20,9 +20,9 @@ exit

Andernfalls ist es notwendig, einen neuen Datenbankcluster mit Datenbankverbindungen auch von anderen Rechnern aus zugelassen werden, was mit dem Wert * geschieht.

In der Datei pg_hba.conf, die im gleichen Verzeichnis wie die postgresql.conf zu finden - sein sollte, müssen die Berichtigungen für den Zugriff geändert + sein sollte, müssen die Berechtigungen für den Zugriff geändert werden. Hier gibt es mehrere Möglichkeiten. Sinnvoll ist es nur die - nögiten Verbindungen immer zuzulassen, für eine lokal laufenden + nötigen Verbindungen immer zuzulassen, für eine lokal laufende Datenbank zum Beispiel:

local all kivitendo password
 host all kivitendo 127.0.0.1 255.255.255.255 password

2.5.3. Erweiterung für servergespeicherte Prozeduren

In der Datenbank template1 muss die Unterstützung für servergespeicherte Prozeduren eingerichet werden. diff --git a/doc/html/ch02s06.html b/doc/html/ch02s06.html index 16ce94c21..741decc8a 100644 --- a/doc/html/ch02s06.html +++ b/doc/html/ch02s06.html @@ -1,6 +1,6 @@ - 2.6. Webserver-Konfiguration

2.6. Webserver-Konfiguration

2.6.1. Grundkonfiguration mittels CGI

[Anmerkung]Anmerkung

Für einen deutlichen Performanceschub sorgt die Ausführung + 2.6. Webserver-Konfiguration

2.6. Webserver-Konfiguration

2.6.1. Grundkonfiguration mittels CGI

[Anmerkung]Anmerkung

Für einen deutlichen Performanceschub sorgt die Ausführung mittels FastCGI/FCGI. Die Einrichtung wird ausführlich im Abschnitt Konfiguration für FastCGI/FCGI beschrieben.

Der Zugriff auf das Programmverzeichnis muss in der Apache Webserverkonfigurationsdatei httpd.conf eingestellt @@ -39,14 +39,14 @@ Alias /kivitendo-erp/ /var/www/kivitendo-erp/ führt dazu dass ein kivitendo Aufruf der Kernmasken mittlerweile deutlich länger dauert als früher, und dass davon 90% für das Laden der Module verwendet wird.

Mit FastCGI werden nun die Module einmal geladen, und danach - wird nur die eigentliche Programmlogik ausgeführt.

2.6.2.3. Getestete Kombinationen aus Webservern und Plugin

Folgende Kombinationen sind getestet:

  • Apache 2.2.11 (Ubuntu) und mod_fcgid.

  • Apache 2.2.11 / 2.2.22 (Ubuntu) und mod_fastcgi.

Dabei wird mod_fcgid empfohlen, weil mod_fastcgi seit geraumer + wird nur die eigentliche Programmlogik ausgeführt.

2.6.2.3. Getestete Kombinationen aus Webservern und Plugin

Folgende Kombinationen sind getestet:

  • Apache 2.2.11 (Ubuntu) und mod_fcgid.

  • Apache 2.2.11 / 2.2.22 (Ubuntu) und mod_fastcgi.

  • Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.

Dabei wird mod_fcgid empfohlen, weil mod_fastcgi seit geraumer Zeit nicht mehr weiter entwickelt wird. Im Folgenden wird auf mod_fastcgi nicht mehr explizit eingegangen.

Als Perl Backend wird das Modul FCGI.pm verwendet.

[Warnung]Warnung

FCGI-Versionen ab 0.69 und bis zu 0.71 inklusive sind extrem strict in der Behandlung von Unicode, und verweigern - bestimmte Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrere Installation gibt, muss zwingend Version 0.68 oder + bestimmte Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrer Installation gibt, muss zwingend Version 0.68 oder aber Version 0.72 und neuer eingesetzt werden.

Mit CPAN lässt sie sich die Vorgängerversion wie folgt installieren:

force install M/MS/MSTROUT/FCGI-0.68.tar.gz

2.6.2.4. Konfiguration des Webservers

Bevor Sie versuchen, eine kivitendo Installation unter FCGI - laufen zu lassen, empfliehlt es sich die Installation ersteinmal + laufen zu lassen, empfiehlt es sich die Installation ersteinmal unter CGI aufzusetzen. FCGI macht es nicht einfach Fehler zu debuggen die beim ersten aufsetzen auftreten können. Sollte die Installation schon funktionieren, lesen Sie weiter.

Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann @@ -70,9 +70,11 @@ Alias /url/for/kivitendo-erp/ /path/to/kivitendo-erp/ <DirectoryMatch /path/to/kivitendo-erp/users> Order Deny,Allow Deny from All -</DirectoryMatch>

Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für +</DirectoryMatch>

[Warnung]Warnung

Im Vergleich zu Apache 2.2 hat sich in Apache 2.4 die Syntax der Directorydirektiven verändert. Statt

+  Order Allow,Deny
+  Allow from All 

muß man jetzt Folgendes einstellen:

Require all granted

Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für die maximale Größe eines Requests. Diese sollte wie folgt - hochgesetzt werden:

FcgidMaxRequestLen 10485760

Das ganze sollte dann so aussehen:

AddHandler fcgid-script .fpl
+          hochgesetzt werden:

FcgidMaxRequestLen 10485760

Das Ganze sollte dann so aussehen:

AddHandler fcgid-script .fpl
 AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
 Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
 FcgidMaxRequestLen 10485760
diff --git a/doc/html/ch02s07.html b/doc/html/ch02s07.html
index e90209e0f..45c6dcfb4 100644
--- a/doc/html/ch02s07.html
+++ b/doc/html/ch02s07.html
@@ -29,7 +29,7 @@
         Links aus einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
         einzubinden. Da das bei neueren Linux-Distributionen aber nicht
         zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
-        anstelle eines symbolischen Links verwendet werden können.

2.7.2.1. SystemV-basierende Systeme (z.B. Debian, ältere OpenSUSE, ältere Fedora Core)

Kopieren Sie die Datei + anstelle eines symbolischen Links verwendet werden können.

2.7.2.1. SystemV-basierende Systeme (z.B. Debian, ältere OpenSUSE, ältere Fedora Core)

Kopieren Sie die Datei scripts/boot/system-v/kivitendo-server nach /etc/init.d/kivitendo-server. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile @@ -37,12 +37,12 @@ Boot-Prozess ein. Dies ist distributionsabhängig:

  • Debian-basierende Systeme:

    update-rc.d kivitendo-task-server defaults
     # Nur bei Debian Squeeze und neuer:
     insserv kivitendo-task-server
  • Ältere OpenSUSE und ältere Fedora Core:

    chkconfig --add kivitendo-task-server

Danach kann der Task-Server mit dem folgenden Befehl gestartet - werden:

/etc/init.d/kivitendo-task-server start

2.7.2.2. Upstart-basierende Systeme (z.B. Ubuntu)

Kopieren Sie die Datei + werden:

/etc/init.d/kivitendo-task-server start

2.7.2.2. Upstart-basierende Systeme (z.B. Ubuntu)

Kopieren Sie die Datei scripts/boot/upstart/kivitendo-task-server.conf nach /etc/init/kivitendo-task-server.conf. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile exec ....).

Danach kann der Task-Server mit dem folgenden Befehl gestartet - werden:

service kivitendo-task-server start

2.7.2.3. systemd-basierende Systeme (z.B. neure OpenSUSE, neuere Fedora Core)

Verlinken Sie die Datei scripts/boot/systemd/kivitendo-task-server.service nach + werden:

service kivitendo-task-server start

2.7.2.3. systemd-basierende Systeme (z.B. neure OpenSUSE, neuere Fedora Core)

Verlinken Sie die Datei scripts/boot/systemd/kivitendo-task-server.service nach /etc/systemd/system/. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile ExecStart=.... und ExecStop=...). Binden Sie das Script in den Boot-Prozess ein.

Alle hierzu benötigten Befehle sehen so aus:

cd /var/www/kivitendo-erp/scripts/boot/systemd
diff --git a/doc/html/ch02s10.html b/doc/html/ch02s10.html
index 3f4621d7f..1cbc1b6e5 100644
--- a/doc/html/ch02s10.html
+++ b/doc/html/ch02s10.html
@@ -4,6 +4,6 @@
       zugeordnet. Unter Druckerbeschreibung wird der Namen des Druckbefehls festgelegt, der dann in der Druckerauswahl des Belegs angezeigt wird.

Unter Druckbefehl definiert man den eigentlichen Druckbefehl, der direkt auf dem Webserver ausgeführt wird, bspw. 'lpr -P meinDrucker' oder ein kompletter Pfad zu einem Skript (/usr/local/src/kivitendo/scripts/pdf_druck_in_verzeichnis.sh). Wird ferner noch ein optionales Vorlagenkürzel verwendet, wird dieses Kürzel bei der Auswahl der Druckvorlagendatei mit einem Unterstrich ergänzt, ist - bspw. das Kürzel 'epson_drucker' definiert, so wird beim Ausdruck eines Angebots folgende Vorlage geparst: sales_quotation_epson_drucker.tex.

2.10.2. System sperren / entsperren

Unter dem Menüpunkt System gibt es den Eintrag 'Installation sperren/entsperren'. Setz man diese Sperre so ist der Zugang zu der gesamten kivitendo Installation gesperrt.

Falls die Sperre gesetzt ist, erscheint anstelle der Anmeldemaske die Information: 'kivitendo ist momentan zwecks Wartungsarbeiten nicht zugänglich.'. + bspw. das Kürzel 'epson_drucker' definiert, so wird beim Ausdruck eines Angebots folgende Vorlage geparst: sales_quotation_epson_drucker.tex.

2.10.2. System sperren / entsperren

Unter dem Menüpunkt System gibt es den Eintrag 'Installation sperren/entsperren'. Setzt man diese Sperre so ist der Zugang zu der gesamten kivitendo Installation gesperrt.

Falls die Sperre gesetzt ist, erscheint anstelle der Anmeldemaske die Information: 'kivitendo ist momentan zwecks Wartungsarbeiten nicht zugänglich.'.

Wichtig zu erwähnen ist hierbei noch, dass sich kivitendo automatisch 'sperrt', falls es bei einem Versionsupdate zu einem Datenbankfehler kam. Somit kann hier nicht aus Versehen mit einem inkonsistenten Datenbestand weitergearbeitet werden.

\ No newline at end of file diff --git a/doc/html/ch02s12.html b/doc/html/ch02s12.html index 1560602ee..e924ae496 100644 --- a/doc/html/ch02s12.html +++ b/doc/html/ch02s12.html @@ -5,7 +5,7 @@ die Pakete mit:

aptitude install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \
   texlive-latex-extra texlive-lang-german texlive-generic-extra

-

TODO: RPM-Pakete.

kivitendo bringt drei alternative Vorlagensätze mit:

  • Standard

  • f-tex

  • RB

2.12.1. Vorlagenverzeichnis anlegen

Es lässt sich ein initialer Vorlagensatz erstellen. Die LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:

./scripts/installation_check.pl -lv

Der Angemmeldete Benutzer muss in einer Gruppe sein, die über das +

TODO: RPM-Pakete.

kivitendo bringt drei alternative Vorlagensätze mit:

  • Standard

  • f-tex

  • RB

2.12.1. Vorlagenverzeichnis anlegen

Es lässt sich ein initialer Vorlagensatz erstellen. Die LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:

./scripts/installation_check.pl -lv

Der Angemeldete Benutzer muss in einer Gruppe sein, die über das Recht "Konfiguration -> Mandantenverwaltung" verfügt. Siehe auch Abschnitt 2.9.4, „Gruppen anlegen“.

Im Userbereich lässt sich unter: "System -> @@ -18,7 +18,7 @@ Der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Mandanten verwendet werden. Eventuell müssen Anpassungen (Logo, Erscheinungsbild, etc) noch vorgenommen werden. Den Ordner findet man im Dateisystem unter ./templates/[Neuer Name] -

2.12.2. Standard

Der Standard-Vorlagensatz von Kivitendo. Wie unter http://demo.kivitendo.org zu +

2.12.2. Standard

Der Standard-Vorlagensatz von Kivitendo. Wie unter https://www.kivitendo.de zu sehen.

2.12.3. f-tex

Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur Verfügung stellt.

2.12.3.1. Feature-Übersicht

  • Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also Angebot, Rechnung, Proformarechnung, Lieferschein, aber eben nicht für Paketaufkleber etc..

  • Leichte Anpassung an das Firmen-Layout durch verwendung eines Hintergrund-PDF. Dieses kann leicht mit dem eigenen Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp, Adobe*)

  • Hintergrund-PDF umschaltbar auf "nur erste Seite" (Standard) oder "alle Seiten" (Option @@ -91,18 +91,18 @@ einer Standardinstallation exotische utf8 Zeichen zu drucken. TeXLive unterstützt von Haus nur romanische Schriften und muss mit diversen Tricks dazu gebracht werden andere Zeichen zu akzeptieren. - Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.

Wird garkein Fehler angezeigt sondern nur der Name des Templates, + Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.

Wird gar kein Fehler angezeigt sondern nur der Name des Templates, heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde. Prüfen Sie den Namen in der Konfiguration (Standard: pdflatex), und stellen Sie sicher, dass pdflatex (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden - darf.

Wenn sich das Problem nicht auf Grund der ausgabe im Webbrowser verifizieren lässt:

  • editiere [kivitendo-home]/config/kivitendo.conf und ändere "keep_temp_files" auf 1

    + darf.

    Wenn sich das Problem nicht auf Grund der Ausgabe im Webbrowser verifizieren lässt:

    • editiere [kivitendo-home]/config/kivitendo.conf und ändere "keep_temp_files" auf 1

      keep_temp_files = 1;

    • bei fastcgi oder mod_perl den Webserver neu Starten

    • Nochmal einen Druckversuch im Webfrontend auslösen

    • wechsele in das users Verzeichnis von kivitendo

      cd [kivitendo-home]/users

    • LaTeX Suchpfad anpassen:

      export TEXINPUTS=".:[kivitendo-home]/templates/[aktuelles_template_verzeichniss]:"

      -

    • Finde herraus welche Datei kivitendo beim letzten Durchlauf erstellt hat

      +

    • Finde heraus welche Datei kivitendo beim letzten Durchlauf erstellt hat

      ls -lahtr ./1*.tex

      Es sollte die letzte Datei ganz unten sein

    • für besseren Hinweis auf Fehler texdatei nochmals übersetzen

      pdflatex ./1*.tex

      diff --git a/doc/html/ch03s02.html b/doc/html/ch03s02.html index 3e813c90c..ec1ad60a5 100644 --- a/doc/html/ch03s02.html +++ b/doc/html/ch03s02.html @@ -145,7 +145,7 @@ template_meta.media

      Ausgabemedium. Kann zur Zeit die Werte screen für Bildschirm, - email für E-Mmail (triggert das + email für E-Mail (triggert das _email Kürzel im Dateinamen), printer für Drucker, und queue für Warteschlange enthalten.

      @@ -571,7 +571,7 @@ invdate

      Rechnungsdatum

      invnumber -

      Rechnungsnummer

3.2.10. Variablen in anderen Vorlagen

3.2.10.1. Einführung

Die Variablen in anderen Vorlagen sind ähnlich wie in der +

Rechnungsnummer

3.2.10. Variablen in anderen Vorlagen

3.2.10.1. Einführung

Die Variablen in anderen Vorlagen sind ähnlich wie in der Rechnung. Allerdings heißen die Variablen, die mit inv beginnen, jetzt anders. Bei den Angeboten fangen sie mit quo für "quotation" an: diff --git a/doc/html/ch04.html b/doc/html/ch04.html index 2592fa976..76f85762a 100644 --- a/doc/html/ch04.html +++ b/doc/html/ch04.html @@ -1,6 +1,6 @@ - Kapitel 4. Entwicklerdokumentation

Kapitel 4. Entwicklerdokumentation

4.1. Globale Variablen

4.1.1. Wie sehen globale Variablen in Perl aus?

Globale Variablen liegen in einem speziellen namespace namens + Kapitel 4. Entwicklerdokumentation

Kapitel 4. Entwicklerdokumentation

4.1. Globale Variablen

4.1.1. Wie sehen globale Variablen in Perl aus?

Globale Variablen liegen in einem speziellen namespace namens "main", der von überall erreichbar ist. Darüber hinaus sind bareword globs global und die meisten speziellen Variablen sind... speziell.

Daraus ergeben sich folgende Formen:

@@ -25,7 +25,7 @@ $PACKAGE::form.

local $form

Alle Änderungen an $form werden am Ende - des scopes zurückgesetzt

4.1.2. Warum sind globale Variablen ein Problem?

Das erste Problem ist FCGI™.

+ des scopes zurückgesetzt

4.1.2. Warum sind globale Variablen ein Problem?

Das erste Problem ist FCGI™.

SQL-Ledger™ hat fast alles im globalen namespace abgelegt, und erwartet, dass es da auch wiederzufinden ist. Unter FCGI™ müssen diese Sachen aber wieder @@ -39,7 +39,7 @@ dies hat, seit der Einführung, u.a. schon so manche langwierige Bug-Suche verkürzt. Da globale Variablen aber implizit mit Package angegeben werden, werden die nicht geprüft, und somit kann sich - schnell ein Tippfehler einschleichen.

4.1.3. Kanonische globale Variablen

Um dieses Problem im Griff zu halten gibt es einige wenige + schnell ein Tippfehler einschleichen.

4.1.3. Kanonische globale Variablen

Um dieses Problem im Griff zu halten gibt es einige wenige globale Variablen, die kanonisch sind, d.h. sie haben bestimmte vorgegebenen Eigenschaften, und alles andere sollte anderweitig umhergereicht werden.

Diese Variablen sind im Moment die folgenden neun:

  • @@ -62,13 +62,13 @@ $::request

Damit diese nicht erneut als Müllhalde missbraucht werden, im Folgenden eine kurze Erläuterung der bestimmten vorgegebenen - Eigenschaften (Konventionen):

4.1.3.1. $::form

  • Ist ein Objekt der Klasse + Eigenschaften (Konventionen):

    4.1.3.1. $::form

    • Ist ein Objekt der Klasse "Form"

    • Wird nach jedem Request gelöscht

    • Muss auch in Tests und Konsolenscripts vorhanden sein.

    • Enthält am Anfang eines Requests die Requestparameter vom User

    • Kann zwar intern über Requestgrenzen ein Datenbankhandle cachen, das wird aber momentan absichtlich zerstört

    $::form wurde unter SQL - Ledger™ als Gottobjekt für alles misbraucht. Sämtliche + Ledger™ als Gottobjekt für alles missbraucht. Sämtliche alten Funktionen unter SL/ mutieren $::form, das heißt, alles was einem lieb ist (alle Variablen die einem ans Herz gewachsen sind), sollte man vor einem Aufruf (!) von zum Beispiel @@ -110,7 +110,7 @@ push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; # ... -}

4.1.3.2. %::myconfig

  • Das einzige Hash unter den globalen Variablen

  • Wird spätestens benötigt wenn auf die Datenbank +}

4.1.3.2. %::myconfig

  • Das einzige Hash unter den globalen Variablen

  • Wird spätestens benötigt wenn auf die Datenbank zugegriffen wird

  • Wird bei jedem Request neu erstellt.

  • Enthält die Userdaten des aktuellen Logins

  • Sollte nicht ohne Filterung irgendwo gedumpt werden oder extern serialisiert werden, weil da auch der Datenbankzugriff für diesen user drinsteht.

  • Enthält unter anderem Listenbegrenzung vclimit, @@ -122,10 +122,10 @@ überwiegend die Daten, die sich unter Programm -> Einstellungen befinden, bzw. die Informationen über den Benutzer die über die - Administrator-Schnittstelle eingegeben wurden.

4.1.3.3. $::locale

  • Objekt der Klasse "Locale"

  • Wird pro Request erstellt

  • Muss auch für Tests und Scripte immer verfügbar + Administrator-Schnittstelle eingegeben wurden.

4.1.3.3. $::locale

  • Objekt der Klasse "Locale"

  • Wird pro Request erstellt

  • Muss auch für Tests und Scripte immer verfügbar sein.

  • Cached intern über Requestgrenzen hinweg benutzte Locales

Lokalisierung für den aktuellen User. Alle Übersetzungen, - Zahlen- und Datumsformatierungen laufen über dieses Objekt.

4.1.3.4. $::lxdebug

  • Objekt der Klasse "LXDebug"

  • Wird global gecached

  • Muss immer verfügbar sein, in nahezu allen + Zahlen- und Datumsformatierungen laufen über dieses Objekt.

4.1.3.4. $::lxdebug

  • Objekt der Klasse "LXDebug"

  • Wird global gecached

  • Muss immer verfügbar sein, in nahezu allen Funktionen

$::lxdebug stellt Debuggingfunktionen bereit, wie "enter_sub" und @@ -135,14 +135,14 @@ "message" und "dump" mit denen man flott Informationen ins Log (tmp/kivitendo-debug.log) packen kann.

Beispielsweise so:

$main::lxdebug->message(0, 'Meine Konfig:' . Dumper (%::myconfig));
-$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});

4.1.3.5. $::auth

  • Objekt der Klasse "SL::Auth"

  • Wird global gecached

  • Hat eine permanente DB Verbindung zur Authdatenbank

  • Wird nach jedem Request resettet.

+$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});

4.1.3.5. $::auth

  • Objekt der Klasse "SL::Auth"

  • Wird global gecached

  • Hat eine permanente DB Verbindung zur Authdatenbank

  • Wird nach jedem Request resettet.

$::auth stellt Funktionen bereit um die Rechte des aktuellen Users abzufragen. Obwohl diese Informationen vom aktuellen User abhängen wird das Objekt aus Geschwindigkeitsgründen nur einmal angelegt und dann nach jedem Request kurz resettet.

Dieses Objekt kapselt auch den gerade aktiven Mandanten. Dessen Einstellungen können über $::auth->client abgefragt werden; Rückgabewert ist ein Hash mit den Werten aus der Tabelle - auth.clients.

4.1.3.6. $::lx_office_conf

  • Objekt der Klasse + auth.clients.

4.1.3.6. $::lx_office_conf

  • Objekt der Klasse "SL::LxOfficeConf"

  • Global gecached

  • Repräsentation der config/kivitendo.conf[.default]-Dateien

Globale Konfiguration. Configdateien werden zum Start gelesen und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass @@ -152,16 +152,16 @@ $main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{ file_name = /tmp/kivitendo-debug.log

ist der Key file im Programm als $::lx_office_conf->{debug}{file} erreichbar.

[Warnung]Warnung

Zugriff auf die Konfiguration erfolgt im Moment über - Hashkeys, sind also nicht gegen Tippfehler abgesichert.

4.1.3.7. $::instance_conf

  • Objekt der Klasse + Hashkeys, sind also nicht gegen Tippfehler abgesichert.

4.1.3.7. $::instance_conf

  • Objekt der Klasse "SL::InstanceConfiguration"

  • wird pro Request neu erstellt

Funktioniert wie $::lx_office_conf, speichert aber Daten die von der Instanz abhängig sind. Eine Instanz ist hier eine Mandantendatenbank. Beispielsweise überprüft

$::instance_conf->get_inventory_system eq 'perpetual'

- ob die berüchtigte Bestandsmethode zur Anwendung kommt.

4.1.3.8. $::dispatcher

  • Objekt der Klasse + ob die berüchtigte Bestandsmethode zur Anwendung kommt.

4.1.3.8. $::dispatcher

  • Objekt der Klasse "SL::Dispatcher"

  • wird pro Serverprozess erstellt.

  • enthält Informationen über die technische Verbindung zum Server

Der dritte Punkt ist auch der einzige Grund warum das Objekt global gespeichert wird. Wird vermutlich irgendwann in einem anderen - Objekt untergebracht.

4.1.3.9. $::request

  • Hashref (evtl später Objekt)

  • Wird pro Request neu initialisiert.

  • Keine Unterstruktur garantiert.

+ Objekt untergebracht.

4.1.3.9. $::request

  • Hashref (evtl später Objekt)

  • Wird pro Request neu initialisiert.

  • Keine Unterstruktur garantiert.

$::request ist ein generischer Platz um Daten "für den aktuellen Request" abzulegen. Sollte nicht für action at a distance benutzt werden, sondern um lokales memoizing zu @@ -174,20 +174,20 @@ file_name = /tmp/kivitendo-debug.log

ist der Key f $::request

  • Muss ich von anderen Teilen des Programms lesend drauf zugreifen? Dann $::request, aber Zugriff über - Wrappermethode

  • 4.1.4. Ehemalige globale Variablen

    Die folgenden Variablen waren einmal im Programm, und wurden - entfernt.

    4.1.4.1. $::cgi

    • war nötig, weil cookie Methoden nicht als + Wrappermethode

    4.1.4. Ehemalige globale Variablen

    Die folgenden Variablen waren einmal im Programm, und wurden + entfernt.

    4.1.4.1. $::cgi

    • war nötig, weil cookie Methoden nicht als Klassenfunktionen funktionieren

    • Aufruf als Klasse erzeugt Dummyobjekt was im Klassennamespace gehalten wird und über Requestgrenzen leaked

    • liegt jetzt unter $::request->{cgi} -

    4.1.4.2. $::all_units

    • war nötig, weil einige Funktionen in Schleifen zum Teil +

    4.1.4.2. $::all_units

    • war nötig, weil einige Funktionen in Schleifen zum Teil ein paar hundert mal pro Request eine Liste der Einheiten brauchen, und de als Parameter durch einen Riesenstack von Funktionen geschleift werden müssten.

    • Liegt jetzt unter $::request->{cache}{all_units}

    • Wird nur in AM->retrieve_all_units() gesetzt oder - gelesen.

    4.1.4.3. %::called_subs

    • wurde benutzt um callsub deep recursions + gelesen.

    4.1.4.3. %::called_subs

    • wurde benutzt um callsub deep recursions abzufangen.

    • Wurde entfernt, weil callsub nur einen Bruchteil der möglichen Rekursioenen darstellt, und da nie welche auftreten.

    • komplette recursion protection wurde entfernt.

    \ No newline at end of file diff --git a/doc/html/ch04s03.html b/doc/html/ch04s03.html index ce24e9d41..8875c7724 100644 --- a/doc/html/ch04s03.html +++ b/doc/html/ch04s03.html @@ -28,7 +28,7 @@ description

    Benötigt. Eine Beschreibung, was in diesem Update passiert. Diese wird dem Benutzer beim eigentlichen - Datenbankupdate angezeigt. Während der Tag in englisch gehalten + Datenbankupdate angezeigt. Während der Tag in Englisch gehalten sein sollte, sollte die Beschreibung auf Deutsch erfolgen.

    depends diff --git a/doc/html/index.html b/doc/html/index.html index 7bbc903b8..e1dc04389 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -1,9 +1,9 @@ - kivitendo 3.2.0: Installation, Konfiguration, Entwicklung

    kivitendo 3.2.0: Installation, Konfiguration, Entwicklung


    Inhaltsverzeichnis

    1. Aktuelle Hinweise
    2. Installation und Grundkonfiguration
    2.1. Übersicht
    2.2. Benötigte Software und Pakete
    2.2.1. Betriebssystem
    2.2.2. Benötigte Perl-Pakete installieren
    2.3. Manuelle Installation des Programmpaketes
    2.4. kivitendo-Konfigurationsdatei
    2.4.1. Einführung
    2.4.2. Abschnitte und Parameter
    2.4.3. Versionen vor 2.6.3
    2.5. Anpassung der PostgreSQL-Konfiguration
    2.5.1. Zeichensätze/die Verwendung von Unicode/UTF-8
    2.5.2. Änderungen an Konfigurationsdateien
    2.5.3. Erweiterung für servergespeicherte Prozeduren
    2.5.4. Datenbankbenutzer anlegen
    2.6. Webserver-Konfiguration
    2.6.1. Grundkonfiguration mittels CGI
    2.6.2. Konfiguration für FastCGI/FCGI
    2.7. Der Task-Server
    2.7.1. Verfügbare und notwendige Konfigurationsoptionen
    2.7.2. Automatisches Starten des Task-Servers beim Booten
    2.7.3. Wie der Task-Server gestartet und beendet wird
    2.7.4. Task-Server mit mehreren Mandanten
    2.8. Benutzerauthentifizierung und Administratorpasswort
    2.8.1. Grundlagen zur Benutzerauthentifizierung
    2.8.2. Administratorpasswort
    2.8.3. Authentifizierungsdatenbank
    2.8.4. Passwortüberprüfung
    2.8.5. Name des Session-Cookies
    2.8.6. Anlegen der Authentifizierungsdatenbank
    2.9. Mandanten-, Benutzer- und Gruppenverwaltung
    2.9.1. Zusammenhänge
    2.9.2. Mandanten, Benutzer und Gruppen
    2.9.3. Datenbanken anlegen
    2.9.4. Gruppen anlegen
    2.9.5. Benutzer anlegen
    2.9.6. Mandanten anlegen
    2.10. Drucker- und Systemverwaltung
    2.10.1. Druckeradministration
    2.10.2. System sperren / entsperren
    2.11. E-Mail-Versand aus kivitendo heraus
    2.11.1. Versand über lokalen E-Mail-Server
    2.11.2. Versand über einen SMTP-Server
    2.12. Drucken mit kivitendo
    2.12.1. Vorlagenverzeichnis anlegen
    2.12.2. Standard
    2.12.3. f-tex
    2.12.4. Der Druckvorlagensatz RB
    2.12.5. Allgemeine Hinweise zu LaTeX Vorlagen
    2.13. OpenDocument-Vorlagen
    2.14. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung: + kivitendo 3.2.0: Installation, Konfiguration, Entwicklung

    kivitendo 3.2.0: Installation, Konfiguration, Entwicklung


    Inhaltsverzeichnis

    1. Aktuelle Hinweise
    2. Installation und Grundkonfiguration
    2.1. Übersicht
    2.2. Benötigte Software und Pakete
    2.2.1. Betriebssystem
    2.2.2. Benötigte Perl-Pakete installieren
    2.3. Manuelle Installation des Programmpaketes
    2.4. kivitendo-Konfigurationsdatei
    2.4.1. Einführung
    2.4.2. Abschnitte und Parameter
    2.4.3. Versionen vor 2.6.3
    2.5. Anpassung der PostgreSQL-Konfiguration
    2.5.1. Zeichensätze/die Verwendung von Unicode/UTF-8
    2.5.2. Änderungen an Konfigurationsdateien
    2.5.3. Erweiterung für servergespeicherte Prozeduren
    2.5.4. Datenbankbenutzer anlegen
    2.6. Webserver-Konfiguration
    2.6.1. Grundkonfiguration mittels CGI
    2.6.2. Konfiguration für FastCGI/FCGI
    2.7. Der Task-Server
    2.7.1. Verfügbare und notwendige Konfigurationsoptionen
    2.7.2. Automatisches Starten des Task-Servers beim Booten
    2.7.3. Wie der Task-Server gestartet und beendet wird
    2.7.4. Task-Server mit mehreren Mandanten
    2.8. Benutzerauthentifizierung und Administratorpasswort
    2.8.1. Grundlagen zur Benutzerauthentifizierung
    2.8.2. Administratorpasswort
    2.8.3. Authentifizierungsdatenbank
    2.8.4. Passwortüberprüfung
    2.8.5. Name des Session-Cookies
    2.8.6. Anlegen der Authentifizierungsdatenbank
    2.9. Mandanten-, Benutzer- und Gruppenverwaltung
    2.9.1. Zusammenhänge
    2.9.2. Mandanten, Benutzer und Gruppen
    2.9.3. Datenbanken anlegen
    2.9.4. Gruppen anlegen
    2.9.5. Benutzer anlegen
    2.9.6. Mandanten anlegen
    2.10. Drucker- und Systemverwaltung
    2.10.1. Druckeradministration
    2.10.2. System sperren / entsperren
    2.11. E-Mail-Versand aus kivitendo heraus
    2.11.1. Versand über lokalen E-Mail-Server
    2.11.2. Versand über einen SMTP-Server
    2.12. Drucken mit kivitendo
    2.12.1. Vorlagenverzeichnis anlegen
    2.12.2. Standard
    2.12.3. f-tex
    2.12.4. Der Druckvorlagensatz RB
    2.12.5. Allgemeine Hinweise zu LaTeX Vorlagen
    2.13. OpenDocument-Vorlagen
    2.14. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung: EUR
    2.14.1. Einführung
    2.14.2. Konfigurationsparameter
    2.14.3. Festlegen der Parameter
    2.14.4. Bemerkungen zu Bestandsmethode
    2.14.5. Bekannte Probleme
    2.15. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb
    2.15.1. Einführung
    2.15.2. Konto 3804 manuell anlegen
    2.16. Verhalten des Bilanzberichts
    2.17. Einstellungen pro Mandant
    2.18. kivitendo ERP verwenden
    3. Features und Funktionen
    3.1. Wiederkehrende Rechnungen
    3.1.1. Einführung
    3.1.2. Konfiguration
    3.1.3. Spezielle Variablen
    3.1.4. Auflisten
    3.1.5. Erzeugung der eigentlichen Rechnungen
    3.1.6. Erste Rechnung für aktuellen Monat erstellen
    3.2. Dokumentenvorlagen und verfügbare Variablen
    3.2.1. Einführung
    3.2.2. Variablen ausgeben
    3.2.3. Verwendung in Druckbefehlen
    3.2.4. Anfang und Ende der Tags verändern
    3.2.5. Zuordnung von den Dateinamen zu den Funktionen
    3.2.6. Sprache, Drucker und E-Mail
    3.2.7. Allgemeine Variablen, die in allen Vorlagen vorhanden sind
    3.2.8. Variablen in Rechnungen
    3.2.9. Variablen in Mahnungen und Rechnungen über Mahngebühren
    3.2.10. Variablen in anderen Vorlagen
    3.2.11. Blöcke, bedingte Anweisungen und Schleifen
    3.2.12. Markup-Code zur Textformatierung innerhalb von - Formularen
    3.3. Excel-Vorlagen
    3.3.1. Zusammenfassung
    3.3.2. Bedienung
    3.3.3. Variablensyntax
    3.3.4. Einschränkungen
    3.4. Mandantenkonfiguration Lager
    4. Entwicklerdokumentation
    4.1. Globale Variablen
    4.1.1. Wie sehen globale Variablen in Perl aus?
    4.1.2. Warum sind globale Variablen ein Problem?
    4.1.3. Kanonische globale Variablen
    4.1.4. Ehemalige globale Variablen
    4.2. Entwicklung unter FastCGI
    4.2.1. Allgemeines
    4.2.2. Programmende und Ausnahmen
    4.2.3. Globale Variablen
    4.2.4. Performance und Statistiken
    4.3. SQL-Upgradedateien
    4.3.1. Einführung
    4.3.2. Format der Kontrollinformationen
    4.3.3. Format von in Perl geschriebenen Datenbankupgradescripten
    4.3.4. Hilfsscript dbupgrade2_tool.pl
    4.4. Translations and languages
    4.4.1. Introduction
    4.4.2. Character set
    4.4.3. File structure
    4.5. Die kivitendo-Test-Suite
    4.5.1. Einführung
    4.5.2. Voraussetzungen
    4.5.3. + Formularen
    3.3. Excel-Vorlagen
    3.3.1. Zusammenfassung
    3.3.2. Bedienung
    3.3.3. Variablensyntax
    3.3.4. Einschränkungen
    3.4. Mandantenkonfiguration Lager
    4. Entwicklerdokumentation
    4.1. Globale Variablen
    4.1.1. Wie sehen globale Variablen in Perl aus?
    4.1.2. Warum sind globale Variablen ein Problem?
    4.1.3. Kanonische globale Variablen
    4.1.4. Ehemalige globale Variablen
    4.2. Entwicklung unter FastCGI
    4.2.1. Allgemeines
    4.2.2. Programmende und Ausnahmen
    4.2.3. Globale Variablen
    4.2.4. Performance und Statistiken
    4.3. SQL-Upgradedateien
    4.3.1. Einführung
    4.3.2. Format der Kontrollinformationen
    4.3.3. Format von in Perl geschriebenen Datenbankupgradescripten
    4.3.4. Hilfsscript dbupgrade2_tool.pl
    4.4. Translations and languages
    4.4.1. Introduction
    4.4.2. Character set
    4.4.3. File structure
    4.5. Die kivitendo-Test-Suite
    4.5.1. Einführung
    4.5.2. Voraussetzungen
    4.5.3. Existierende Tests ausführen
    4.5.4. Bedeutung der verschiedenen Test-Scripte -- 2.20.1