From aaea67426809cf8ae828a19b0234adcd64e0a51c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20B=C3=BCren?= Date: Tue, 21 Jan 2014 13:41:05 +0100 Subject: [PATCH] In der pdf-Dokumentation auf Dienstleister und UPGRADE hingewiesen --- doc/dokumentation.xml | 7 +++++++ doc/html/ch01.html | 1 + doc/html/ch02s02.html | 6 +++--- doc/html/ch02s06.html | 2 +- doc/html/ch02s07.html | 6 +++--- doc/html/ch03s02.html | 2 +- doc/html/ch04.html | 32 ++++++++++++++++---------------- doc/html/index.html | 4 ++-- doc/kivitendo-Dokumentation.pdf | Bin 661827 -> 662301 bytes 9 files changed, 34 insertions(+), 26 deletions(-) diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index 6ff10677d..f2b4b0b4c 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -14,6 +14,13 @@ im kivitendo-Forum: https://forum.kivitendo.org/ + + in der doc/UPGRADE Datei im doc-Verzeichnis der Installation + + + Im Schulungs- und Dienstleistungsangebot der entsprechenden kivitendo-Partner: http://www.kivitendo.de/partner.html + diff --git a/doc/html/ch01.html b/doc/html/ch01.html index 5e93492a9..f3c9e3e15 100644 --- a/doc/html/ch01.html +++ b/doc/html/ch01.html @@ -1,4 +1,5 @@ Kapitel 1. Aktuelle Hinweise

Kapitel 1. Aktuelle Hinweise

Aktuelle Installations- und Konfigurationshinweise gibt es:

\ No newline at end of file diff --git a/doc/html/ch02s02.html b/doc/html/ch02s02.html index 404dfb62e..b980f1dae 100644 --- a/doc/html/ch02s02.html +++ b/doc/html/ch02s02.html @@ -70,7 +70,7 @@ sind auch in 2.6.1 weiterhin mit ausgeliefert, wurden in einer zukünftigen Version aber aus dem Paket entfernt werden. Es wird empfohlen diese Module zusammen mit den anderen als Bibliotheken zu - installieren.

2.2.2.1. Debian und Ubuntu

Alle benötigten Perl-Pakete stehen für Debian und Ubuntu als Debian-Pakete zur Verfügung. Sie können mit folgendem Befehl + installieren.

2.2.2.1. Debian und Ubuntu

Alle benötigten Perl-Pakete stehen für Debian und Ubuntu als Debian-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:

apt-get install apache2 libarchive-zip-perl libclone-perl \
   libconfig-std-perl libdatetime-perl libdbd-pg-perl libdbi-perl \
   libemail-address-perl  libemail-mime-perl libfcgi-perl libjson-perl \
@@ -79,14 +79,14 @@
   librose-db-perl librose-object-perl libsort-naturally-perl \
   libstring-shellquote-perl libtemplate-perl libtext-csv-xs-perl \
   libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \
-  libfile-copy-recursive-perl postgresql

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 installeirt werden:

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

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 installeirt 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/ch02s06.html b/doc/html/ch02s06.html
index c8329b677..8adafac8c 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 diff --git a/doc/html/ch02s07.html b/doc/html/ch02s07.html index 76a6c3467..577f2b5c6 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/ch03s02.html b/doc/html/ch03s02.html
index 9866b342d..01554890c 100644
--- a/doc/html/ch03s02.html
+++ b/doc/html/ch03s02.html
@@ -566,7 +566,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 ca228b368..7584f82f0 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,7 +62,7 @@ $::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 @@ -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 = /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 = /tmp/kivitendo-debug.log

ist der Key file$::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/index.html b/doc/html/index.html index 423f90d87..8308bbdd7 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -1,9 +1,9 @@ - kivitendo 3.0.0: Installation, Konfiguration, Entwicklung

    kivitendo 3.0.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. E-Mail-Versand aus kivitendo heraus
    2.10.1. Versand über lokalen E-Mail-Server
    2.10.2. Versand über einen SMTP-Server
    2.11. Drucken mit kivitendo
    2.11.1. Vorlagenverzeichnis anlegen
    2.11.2. Standard
    2.11.3. f-tex
    2.11.4. RB
    2.11.5. Allgemeine Hinweise zu LaTeX Vorlagen
    2.12. OpenDocument-Vorlagen
    2.13. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung: + kivitendo 3.0.0: Installation, Konfiguration, Entwicklung

    kivitendo 3.0.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. E-Mail-Versand aus kivitendo heraus
    2.10.1. Versand über lokalen E-Mail-Server
    2.10.2. Versand über einen SMTP-Server
    2.11. Drucken mit kivitendo
    2.11.1. Vorlagenverzeichnis anlegen
    2.11.2. Standard
    2.11.3. f-tex
    2.11.4. RB
    2.11.5. Allgemeine Hinweise zu LaTeX Vorlagen
    2.12. OpenDocument-Vorlagen
    2.13. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung: EUR
    2.13.1. Einführung
    2.13.2. Konfigurationsparameter
    2.13.3. Festlegen der Parameter
    2.13.4. Bemerkungen zu Bestandsmethode
    2.13.5. Bekannte Probleme
    2.14. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb
    2.14.1. Einführung
    2.14.2. Konto 3804 manuell anlegen
    2.15. Einstellungen pro Mandant
    2.16. 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 diff --git a/doc/kivitendo-Dokumentation.pdf b/doc/kivitendo-Dokumentation.pdf index 128601ec682ccce968cb2da81f9f12b311882032..ee9597b6720608dfebef6794bdc1f67278f5c28a 100644 GIT binary patch delta 54170 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
  • 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 z zz>M%WUH_zq7Xi~kR5a7T3}eYaq}xzd2wdpf+sJJ+j&=iP#M1#YQW;_5hGT|dfekBT zok1eH?&%^m%-F;Q%!m;I_6GzaTqfl%In%KIn==g}rmF(zVLcp(BQUs?MVDC$2O2Q_ zlq=0NT(YCj0)&3_JXu`Nh7GY+QXu27 zo?Z~A$h-Q6=)aZH%hC7TrvNTd`1OSsRv4~S+(ivyA2<9?a zc*EvtSSqInr)Ux