From 9785598bd9535068f667628c36a5e763ac69c4ff Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Wed, 1 Feb 2012 17:07:58 +0100 Subject: [PATCH] Kleinere Dokumentationsupdates --- doc/Lx-Office-Dokumentation.pdf | Bin 570603 -> 570660 bytes doc/dokumentation.xml | 40 ++++++++++++++------------------ doc/html/ch02.html | 7 +++--- doc/html/ch02s02.html | 21 +++++++---------- doc/html/ch02s03.html | 2 +- doc/html/ch02s05.html | 2 +- doc/html/ch02s06.html | 4 ++-- doc/html/ch02s08.html | 2 +- doc/html/ch03s02.html | 2 +- doc/html/ch04.html | 32 ++++++++++++------------- doc/html/index.html | 4 ++-- 11 files changed, 54 insertions(+), 62 deletions(-) diff --git a/doc/Lx-Office-Dokumentation.pdf b/doc/Lx-Office-Dokumentation.pdf index 681ea8f489e0e96ccae5a5cb3b8e8738d5e5a828..b3fc2856a0958432bdbc205b5721ada91dcd2ccb 100644 GIT binary patch delta 29488 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 z

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 delta 29435 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ⅇ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 diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index c98c4e7ed..e56893c8c 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -79,7 +79,7 @@ linkend="Manuelle-Installation-des-Programmpaketes" />), wenn vorher ein Kompatibilitätspaket installiert wird, das die fehlenden Pakete bereitstellt. Das Paket ist auf Sourceforge + url="https://sourceforge.net/projects/lx-office/files/Lx-Office%20ERP/2.6.3/">Sourceforge unter dem Namen lx-erp-perl-libs-compat-v2.tar.gz hinterlegt. @@ -91,7 +91,8 @@ Zusätzlich müssen dann noch die folgenden Pakete installiert weerden - apt-get install libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl + apt-get install libbit-vector-perl libsub-exporter-perl libclone-perl \ + libclass-factory-util-perl Danach sollte der Installationscheck (siehe ) die enthaltenen Pakete erkennen. @@ -221,7 +222,7 @@ librose-object-perl librose-db-perl librose-db-object-perl \ libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl \ libxml-writer-perl libyaml-perl libconfig-std-perl \ - libparams-validate-perl libjson-perl + libparams-validate-perl libjson-perl libclass-accessor-perl Für Fedora Core benötigen Sie diese Pakete: @@ -262,36 +263,31 @@ /var/www/) entpackt: cd /var/www tar xvzf -lxoffice-erp-2.6.2.tgz +lxoffice-erp-2.6.3.tgz - Verändern Sie evtl. noch den Namen des Verzeichnisses mit + Verändern Sie evtl. noch den Namen des Verzeichnisses und wechseln Sie in es: - mv lxoffice-erp/ lx-erp/ + mv lxoffice-erp/ lx-erp/ +cd lx-erp Alternativ können Sie auch einen Alias in der Webserverkonfiguration benutzen, um auf das tatsächliche Installationsverzeichnis zu verweisen. - Die Verzeichnisse users, - spool und webdav müssen für - den Benutzer beschreibbar sein, unter dem der Webserver läuft. Die - restlichen Dateien müssen für diesen Benutzer lesbar sein. Der - Benutzername ist bei verschiedenen Distributionen unterschiedlich (z.B. - bei Debian/Ubuntu www-data, bei Fedora core - apache oder bei OpenSuSE - wwwrun). + Die Verzeichnisse users, spool und webdav müssen für den Benutzer + beschreibbar sein, unter dem der Webserver läuft. Die restlichen Dateien müssen für diesen Benutzer lesbar sein. Die Benutzer- und + Gruppennamen sind bei verschiedenen Distributionen unterschiedlich (z.B. bei Debian/Ubuntu www-data, bei Fedora + core apache oder bei OpenSuSE wwwrun). Der folgende Befehl ändert den Besitzer für die oben genannten Verzeichnisse auf einem Debian/Ubuntu-System: - chown -R www-data lx-office-erp/users lx-office-erp/spool lx-office-erp/webdav + chown -R www-data users spool webdav - Weiterhin muss der Webserver-Benutzer im Verzeichnis - templates Verzeichnisse für jeden neuen Benutzer, - der in lx-office angelegt wird, anlegen dürfen: + Weiterhin muss der Webserver-Benutzer in den Verzeichnissen templates und users + Unterverzeichnisse für jeden neuen Benutzer anlegen dürfen, der in Lx-Office angelegt wird: - chgrp www-data lx-office-erp/templates -chmod g+w lx-office-erp/templates + chown www-data templates users @@ -316,7 +312,7 @@ chmod g+w lx-office-erp/templates Die Default-Datei wird immer zuerst eingelesen. Werte, die in der Hauptkonfigurationsdatei stehen, überschreiben die Werte aus der Default-Datei. Die Hauptkonfigurationsdatei muss also nur die - Abschintte und Werte enthalten, die von denen der Default-Datei + Abschnitte und Werte enthalten, die von denen der Default-Datei abweichen. Diese Hauptkonfigurationsdatei ist dann eine @@ -1272,7 +1268,7 @@ insserv lx-office-task-server Migration alter Installationen - Wenn Lx-Office 2.6.2 über eine ältere Version installiert wird, + Wenn Lx-Office 2.6.3 über eine ältere Version installiert wird, in der die Benutzerdaten noch im Dateisystem im Verzeichnis users verwaltet wurden, so bietet Lx-Office die Möglichkeit, diese Benutzerdaten automatisch in die diff --git a/doc/html/ch02.html b/doc/html/ch02.html index 87eeca37e..a123773cd 100644 --- a/doc/html/ch02.html +++ b/doc/html/ch02.html @@ -13,11 +13,12 @@ Release ein eigenes .deb geben.

Alternativ dazu kann die normale Installation durchgeführt werden (siehe Manuelle Installation des Programmpaketes), wenn vorher ein Kompatibilitätspaket installiert wird, das die fehlenden Pakete - bereitstellt. Das Paket ist auf Sourceforge + bereitstellt. Das Paket ist auf Sourceforge unter dem Namen lx-erp-perl-libs-compat-v2.tar.gz hinterlegt.

Zur Installation das Paket in das entpackte Lx-Office Verzeichnis entpacken:

tar xzf lx-erp-perl-libs-compat-v2.tar.gz /path/to/lx-office/

Zusätzlich müssen dann noch die folgenden Pakete installiert - weerden

apt-get install libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl

Danach sollte der Installationscheck (siehe Pakete) die enthaltenen Pakete erkennen.

2.1.2. Pakete

Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist + weerden

apt-get install libbit-vector-perl libsub-exporter-perl libclone-perl \
+  libclass-factory-util-perl

Danach sollte der Installationscheck (siehe Pakete) die enthaltenen Pakete erkennen.

2.1.2. Pakete

Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist Apache) und ein Datenbankserver (PostgreSQL, mindestens v8.2) benötigt.

Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht Bestandteil einer Standard-Perl-Installation sind:

  • parent

  • Archive::Zip

  • Config::Std

  • DateTime

  • DBI

  • DBD::Pg

  • Email::Address

  • JSON

  • List::MoreUtils

  • Params::Validate

  • PDF::API2

  • Rose::Object

  • Rose::DB

  • Rose::DB::Object

  • Template

  • Text::CSV_XS

  • Text::Iconv

  • URI

  • XML::Writer

  • YAML

Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete @@ -41,7 +42,7 @@ librose-object-perl librose-db-perl librose-db-object-perl \ libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl \ libxml-writer-perl libyaml-perl libconfig-std-perl \ - libparams-validate-perl libjson-perl

Für Fedora Core benötigen Sie diese Pakete:

yum install httpd postgresql-server perl-parent perl-DateTime \
+  libparams-validate-perl libjson-perl libclass-accessor-perl

Für Fedora Core benötigen Sie diese Pakete:

yum install httpd postgresql-server perl-parent perl-DateTime \
   perl-DBI perl-DBD-Pg perl-Email-Address perl-List-MoreUtils \
   perl-PDF-API2 perl-Rose-Object perl-Rose-DB perl-Rose-DB-Object \
   perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \
diff --git a/doc/html/ch02s02.html b/doc/html/ch02s02.html
index e4a8d8fe2..07e1a8841 100644
--- a/doc/html/ch02s02.html
+++ b/doc/html/ch02s02.html
@@ -5,17 +5,12 @@
       /var/www/html/,
       /srv/www/htdocs oder
       /var/www/) entpackt:

cd /var/www tar xvzf
-lxoffice-erp-2.6.2.tgz

Verändern Sie evtl. noch den Namen des Verzeichnisses mit

mv lxoffice-erp/ lx-erp/

Alternativ können Sie auch einen Alias in der +lxoffice-erp-2.6.3.tgz

Verändern Sie evtl. noch den Namen des Verzeichnisses und wechseln Sie in es:

mv lxoffice-erp/ lx-erp/
+cd lx-erp

Alternativ können Sie auch einen Alias in der Webserverkonfiguration benutzen, um auf das tatsächliche - Installationsverzeichnis zu verweisen.

Die Verzeichnisse users, - spool und webdav müssen für - den Benutzer beschreibbar sein, unter dem der Webserver läuft. Die - restlichen Dateien müssen für diesen Benutzer lesbar sein. Der - Benutzername ist bei verschiedenen Distributionen unterschiedlich (z.B. - bei Debian/Ubuntu www-data, bei Fedora core - apache oder bei OpenSuSE - wwwrun).

Der folgende Befehl ändert den Besitzer für die oben genannten - Verzeichnisse auf einem Debian/Ubuntu-System:

chown -R www-data lx-office-erp/users lx-office-erp/spool lx-office-erp/webdav

Weiterhin muss der Webserver-Benutzer im Verzeichnis - templates Verzeichnisse für jeden neuen Benutzer, - der in lx-office angelegt wird, anlegen dürfen:

chgrp www-data lx-office-erp/templates
-chmod g+w lx-office-erp/templates
\ No newline at end of file + Installationsverzeichnis zu verweisen.

Die Verzeichnisse users, spool und webdav müssen für den Benutzer + beschreibbar sein, unter dem der Webserver läuft. Die restlichen Dateien müssen für diesen Benutzer lesbar sein. Die Benutzer- und + Gruppennamen sind bei verschiedenen Distributionen unterschiedlich (z.B. bei Debian/Ubuntu www-data, bei Fedora + core apache oder bei OpenSuSE wwwrun).

Der folgende Befehl ändert den Besitzer für die oben genannten + Verzeichnisse auf einem Debian/Ubuntu-System:

chown -R www-data users spool webdav

Weiterhin muss der Webserver-Benutzer in den Verzeichnissen templates und users + Unterverzeichnisse für jeden neuen Benutzer anlegen dürfen, der in Lx-Office angelegt wird:

chown www-data templates users
\ No newline at end of file diff --git a/doc/html/ch02s03.html b/doc/html/ch02s03.html index de3f4e2f7..dcb930633 100644 --- a/doc/html/ch02s03.html +++ b/doc/html/ch02s03.html @@ -9,7 +9,7 @@ Default-Datei"):

$ cp config/lx_office.conf.default config/lx_office.conf

Die Default-Datei wird immer zuerst eingelesen. Werte, die in der Hauptkonfigurationsdatei stehen, überschreiben die Werte aus der Default-Datei. Die Hauptkonfigurationsdatei muss also nur die - Abschintte und Werte enthalten, die von denen der Default-Datei + Abschnitte und Werte enthalten, die von denen der Default-Datei abweichen.

Diese Hauptkonfigurationsdatei ist dann eine installationsspezifische Datei, d.h. sie enthält bspw. lokale Passwörter und wird auch nicht im Versionsmanagement (git) diff --git a/doc/html/ch02s05.html b/doc/html/ch02s05.html index e7afbea09..0bbe54acd 100644 --- a/doc/html/ch02s05.html +++ b/doc/html/ch02s05.html @@ -1,6 +1,6 @@ - 2.5. Webserver-Konfiguration

2.5. Webserver-Konfiguration

2.5.1. Grundkonfiguration mittels CGI

[Anmerkung]Anmerkung

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

2.5. Webserver-Konfiguration

2.5.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/ch02s06.html b/doc/html/ch02s06.html index bbe62bc43..d8777358f 100644 --- a/doc/html/ch02s06.html +++ b/doc/html/ch02s06.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.6.2.1. SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora + anstelle eines symbolischen Links verwendet werden können.

2.6.2.1. SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)

Kopieren Sie die Datei scripts/boot/system-v/lx-office-task-server nach /etc/init.d/lx-office-task-server. Passen @@ -40,7 +40,7 @@ insserv lx-office-task-server

  • OpenSuSE und Fedora Core:

    chkconfig --add lx-office-task-server
  • Danach kann der Task-Server mit dem folgenden Befehl gestartet werden: /etc/init.d/lx-office-task-server start -

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

    Kopieren Sie die Datei +

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

    Kopieren Sie die Datei scripts/boot/upstart/lx-office-task-server.conf nach /etc/init/lx-office-task-server.conf. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile diff --git a/doc/html/ch02s08.html b/doc/html/ch02s08.html index 7a8f3863f..8ea6a85fd 100644 --- a/doc/html/ch02s08.html +++ b/doc/html/ch02s08.html @@ -60,7 +60,7 @@ der Gruppenmitgliedschaft. Hier wird eine Matrix angezeigt, die alle im System angelegten Gruppen und Benutzer enthält. Durch Setzen der Häkchen wird der Benutzer in der ausgewählten Zeile der - Gruppe in der ausgewählten Spalte hinzugefügt.

    2.8.6. Migration alter Installationen

    Wenn Lx-Office 2.6.2 über eine ältere Version installiert wird, + Gruppe in der ausgewählten Spalte hinzugefügt.

    2.8.6. Migration alter Installationen

    Wenn Lx-Office 2.6.3 über eine ältere Version installiert wird, in der die Benutzerdaten noch im Dateisystem im Verzeichnis users verwaltet wurden, so bietet Lx-Office die Möglichkeit, diese Benutzerdaten automatisch in die diff --git a/doc/html/ch03s02.html b/doc/html/ch03s02.html index 0d4514871..e921fb679 100644 --- a/doc/html/ch03s02.html +++ b/doc/html/ch03s02.html @@ -554,7 +554,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 9e1f420c7..bca4dfc62 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 (admin.pl) 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 (admin.pl) 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,12 +135,12 @@ "message" und "dump" mit denen man flott Informationen ins Log (tmp/lx-office-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.

      4.1.3.6. $::lx_office_conf

      • Objekt der Klasse + Request kurz resettet.

      4.1.3.6. $::lx_office_conf

      • Objekt der Klasse "SL::LxOfficeConf"

      • Global gecached

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

      Globale Konfiguration. Configdateien werden zum Start gelesen und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass @@ -150,16 +150,16 @@ $main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{ file = /tmp/lx-office-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 @@ -172,20 +172,20 @@ file = /tmp/lx-office-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 53195acc6..c1bc2799b 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -1,6 +1,6 @@ - Lx-Office: Installation, Konfiguration, Entwicklung

    Lx-Office: Installation, Konfiguration, Entwicklung


    Inhaltsverzeichnis

    1. Aktuelle Hinweise
    2. Installation und Grundkonfiguration
    2.1. Benötigte Software und Pakete
    2.1.1. Betriebssystem
    2.1.2. Pakete
    2.2. Manuelle Installation des Programmpaketes
    2.3. Lx-Office-Konfigurationsdatei
    2.3.1. Einführung
    2.3.2. Abschnitte und Parameter
    2.3.3. Versionen vor 2.6.3
    2.4. Anpassung der PostgreSQL-Konfiguration
    2.4.1. Zeichensätze/die Verwendung von UTF-8
    2.4.2. Änderungen an Konfigurationsdateien
    2.4.3. Erweiterung für servergespeicherte Prozeduren
    2.4.4. Datenbankbenutzer anlegen
    2.5. Webserver-Konfiguration
    2.5.1. Grundkonfiguration mittels CGI
    2.5.2. Konfiguration für FastCGI/FCGI
    2.6. Der Task-Server
    2.6.1. Verfügbare und notwendige Konfigurationsoptionen
    2.6.2. Automatisches Starten des Task-Servers beim Booten
    2.6.3. Wie der Task-Server gestartet und beendet wird
    2.7. Benutzerauthentifizierung und Administratorpasswort
    2.7.1. Grundlagen zur Benutzerauthentifizierung
    2.7.2. Administratorpasswort
    2.7.3. Authentifizierungsdatenbank
    2.7.4. Passwortüberprüfung
    2.7.5. Name des Session-Cookies
    2.7.6. Anlegen der Authentifizierungsdatenbank
    2.8. Benutzer- und Gruppenverwaltung
    2.8.1. Zusammenhänge
    2.8.2. Datenbanken anlegen
    2.8.3. Gruppen anlegen
    2.8.4. Benutzer anlegen
    2.8.5. Gruppenmitgliedschaften verwalten
    2.8.6. Migration alter Installationen
    2.9. Drucken mit Lx-Office
    2.10. OpenDocument-Vorlagen
    2.11. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung: + Lx-Office: Installation, Konfiguration, Entwicklung

    Lx-Office: Installation, Konfiguration, Entwicklung


    Inhaltsverzeichnis

    1. Aktuelle Hinweise
    2. Installation und Grundkonfiguration
    2.1. Benötigte Software und Pakete
    2.1.1. Betriebssystem
    2.1.2. Pakete
    2.2. Manuelle Installation des Programmpaketes
    2.3. Lx-Office-Konfigurationsdatei
    2.3.1. Einführung
    2.3.2. Abschnitte und Parameter
    2.3.3. Versionen vor 2.6.3
    2.4. Anpassung der PostgreSQL-Konfiguration
    2.4.1. Zeichensätze/die Verwendung von UTF-8
    2.4.2. Änderungen an Konfigurationsdateien
    2.4.3. Erweiterung für servergespeicherte Prozeduren
    2.4.4. Datenbankbenutzer anlegen
    2.5. Webserver-Konfiguration
    2.5.1. Grundkonfiguration mittels CGI
    2.5.2. Konfiguration für FastCGI/FCGI
    2.6. Der Task-Server
    2.6.1. Verfügbare und notwendige Konfigurationsoptionen
    2.6.2. Automatisches Starten des Task-Servers beim Booten
    2.6.3. Wie der Task-Server gestartet und beendet wird
    2.7. Benutzerauthentifizierung und Administratorpasswort
    2.7.1. Grundlagen zur Benutzerauthentifizierung
    2.7.2. Administratorpasswort
    2.7.3. Authentifizierungsdatenbank
    2.7.4. Passwortüberprüfung
    2.7.5. Name des Session-Cookies
    2.7.6. Anlegen der Authentifizierungsdatenbank
    2.8. Benutzer- und Gruppenverwaltung
    2.8.1. Zusammenhänge
    2.8.2. Datenbanken anlegen
    2.8.3. Gruppen anlegen
    2.8.4. Benutzer anlegen
    2.8.5. Gruppenmitgliedschaften verwalten
    2.8.6. Migration alter Installationen
    2.9. Drucken mit Lx-Office
    2.10. OpenDocument-Vorlagen
    2.11. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung: EUR
    2.11.1. Einführung
    2.11.2. Konfigurationsparameter
    2.11.3. Festlegen der Parameter
    2.11.4. Bemerkungen zu Bestandsmethode
    2.11.5. Bekannte Probleme
    2.12. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb
    2.12.1. Einführung
    2.12.2. Konto 3804 manuell anlegen
    2.13. Lx-Office ERP verwenden
    3. Features und Funktionen
    3.1. Wiederkehrende Rechnungen
    3.1.1. Einführung
    3.1.2. Konfiguration
    3.1.3. Auflisten
    3.1.4. Erzeugung der eigentlichen Rechnungen
    3.1.5. 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
    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.2.5. Bekannte Probleme
    4.3. SQL-Upgradedateien
    4.3.1. Einführung
    4.3.2. Format der Kontrollinformationen
    4.3.3. Hilfsscript dbupgrade2_tool.pl
    4.4. Translations and languages
    4.4.1. Introduction
    4.4.2. File structure
    4.5. Stil-Richtlinien
    4.6. Dokumentation erstellen
    4.6.1. Einführung
    4.6.2. Benötigte Software
    4.6.3. PDFs und HTML-Seiten erstellen
    4.6.4. Einchecken in das Git-Repository
    \ No newline at end of file + Formularen
    3.3. Excel-Vorlagen
    3.3.1. Zusammenfassung
    3.3.2. Bedienung
    3.3.3. Variablensyntax
    3.3.4. Einschränkungen
    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.2.5. Bekannte Probleme
    4.3. SQL-Upgradedateien
    4.3.1. Einführung
    4.3.2. Format der Kontrollinformationen
    4.3.3. Hilfsscript dbupgrade2_tool.pl
    4.4. Translations and languages
    4.4.1. Introduction
    4.4.2. File structure
    4.5. Stil-Richtlinien
    4.6. Dokumentation erstellen
    4.6.1. Einführung
    4.6.2. Benötigte Software
    4.6.3. PDFs und HTML-Seiten erstellen
    4.6.4. Einchecken in das Git-Repository
    \ No newline at end of file -- 2.20.1