X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fdokumentation.xml;h=80d23d301af35d2f0efd6aae1b829b45b23bb04a;hb=9d3c499e4fccf77b2bd0a221dd4dc56053e56d2f;hp=92686bd3cdb403dc726cf9631ca533af9b6f06cb;hpb=c4184d5483ff4ae6c38e36976b7f323cbc27086a;p=kivitendo-erp.git
diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml
index 92686bd3c..80d23d301 100644
--- a/doc/dokumentation.xml
+++ b/doc/dokumentation.xml
@@ -43,11 +43,13 @@
ohne groÃe Probleme auf den derzeit aktuellen verbreiteten
Distributionen läuft.
- Anfang 2012 sind das folgende Systeme, von denen bekannt ist, dass Lx-Office auf ihnen läuft:
+ Anfang 2012 sind das folgende Systeme, von denen bekannt ist,
+ dass Lx-Office auf ihnen läuft:
- Ubuntu 8.04 LTS Hardy Heron, 10.04 LTS Lucid Lynx bis 11.10 Oneiric Ocelot
+ Ubuntu 8.04 LTS Hardy Heron, 10.04 LTS Lucid Lynx bis 11.10
+ Oneiric Ocelot
@@ -74,10 +76,10 @@
Alternativ dazu kann die normale Installation durchgeführt
werden (siehe ), wenn vorher
+ 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.
@@ -89,10 +91,11 @@
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-perlDanach sollte der Installationscheck (siehe ) die enthaltenen Pakete erkennen.
+ linkend="Pakete" />) die enthaltenen Pakete erkennen.
@@ -219,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:
@@ -260,100 +263,131 @@
/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-erpAlternativ 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
- Lx-Office-Konfigurationsdatei
+ Lx-Office-Konfigurationsdatei
-
- Einführung
+
+ Einführung
-
- Seit Lx-Office 2.6.3. gibt es nur noch eine Konfigurationsdatei die benötigt wird: config/lx_office.conf (kurz:
- "die Hauptkonfigurationsdatei"). Diese muss bei der Erstinstallation von Lx-Office bzw. der Migration von älteren Versionen angelegt
- werden.
-
+ Seit Lx-Office 2.6.3. gibt es nur noch eine Konfigurationsdatei
+ die benötigt wird: config/lx_office.conf (kurz:
+ "die Hauptkonfigurationsdatei"). Diese muss bei der Erstinstallation
+ von Lx-Office bzw. der Migration von älteren Versionen angelegt
+ werden.
-
- Als Vorlage dient die Datei config/lx_office.conf.default (kurz: "die Default-Datei"):
-
+ Als Vorlage dient die Datei
+ config/lx_office.conf.default (kurz: "die
+ Default-Datei"):
- $ cp config/lx_office.conf.default config/lx_office.conf
+ $ 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 abweichen.
-
+ 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
+ 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) verwaltet.
-
+ Diese Hauptkonfigurationsdatei ist dann eine
+ installationsspezifische Datei, d.h. sie enthält bspw. lokale
+ Passwörter und wird auch nicht im Versionsmanagement (git)
+ verwaltet.
-
- Die Konfiguration ist ferner serverabhängig, d.h. für alle Mandaten, bzw. Datenbanken gleich.
-
-
+ Die Konfiguration ist ferner serverabhängig, d.h. für alle
+ Mandaten, bzw. Datenbanken gleich.
+
-
- Abschnitte und Parameter
+
+ Abschnitte und Parameter
-
- Die Konfigurationsdatei besteht aus mehreren Teilen, die entsprechend kommentiert sind:
-
+ Die Konfigurationsdatei besteht aus mehreren Teilen, die
+ entsprechend kommentiert sind:
-
- authentication
- authentication/database
- authentication/ldap
- system
- features
- paths
- applications
- environment
- print_templates
- task_server
- periodic_invoices
- console
- debug
-
+
+
+ authentication
+
+
+
+ authentication/database
+
+
+
+ authentication/ldap
+
+
+
+ system
+
+
+
+ features
+
+
+
+ paths
+
+
+
+ applications
+
+
+
+ environment
+
-
- Die üblicherweise wichtigsten Parameter, die am Anfang einzustellen oder zu kontrollieren sind, sind:
-
+
+ print_templates
+
+
+
+ task_server
+
+
+
+ periodic_invoices
+
+
+
+ console
+
+
+
+ debug
+
+
- [authentication]
+ Die üblicherweise wichtigsten Parameter, die am Anfang
+ einzustellen oder zu kontrollieren sind, sind:
+
+ [authentication]
admin_password = geheim
[authentication/database]
@@ -364,41 +398,41 @@ user = postgres
password =
[system]
-eur = 1
dbcharset = UTF-8
-
- Nutzt man wiederkehrende Rechnungen, kann man unter [periodic_invoices] den Login eines Benutzers angeben, der
- nach Erstellung der Rechnungen eine entsprechende E-Mail mit Informationen über die erstellten Rechnungen bekommt.
-
-
-
- Nutzt man den Taskserver für wiederkehrende Rechnungen, muss unter [task_server] ein Login eines
- Benutzers angegeben werden, mit dem sich der Taskserver an Lx-Office bei der Datenbank anmeldet, die dem Benutzer zugewiesen ist.
-
-
-
- Für Entwickler finden sich unter [debug] wichtige Funktionen, um die Fehlersuche zu erleichtern.
-
-
-
-
- Versionen vor 2.6.3
-
-
- In älteren Lx-Office Versionen gab es im Verzeichnis config die Dateien authentication.pl
- und lx-erp.conf, die jeweils Perl-Dateien waren. Es gab auch die Möglichkeit, eine lokale Version der
- Konfigurationsdatei zu erstellen (lx-erp-local.conf). Dies ist ab 2.6.3 nicht mehr möglich, aber auch nicht mehr
- nötig.
-
-
-
- Beim Update von einer Lx-Office-Version vor 2.6.3 auf 2.6.3 oder jünger müssen die Einstellungen aus den alten Konfigurationsdateien
- manuell übertragen und die alten Konfigurationsdateien anschlieÃend gelöscht oder verschoben werden. Ansonsten zeigt Lx-Office eine
- entsprechende Fehlermeldung an.
-
-
+ Nutzt man wiederkehrende Rechnungen, kann man unter
+ [periodic_invoices] den Login eines Benutzers
+ angeben, der nach Erstellung der Rechnungen eine entsprechende E-Mail
+ mit Informationen über die erstellten Rechnungen bekommt.
+
+ Nutzt man den Taskserver für wiederkehrende Rechnungen,
+ muss unter [task_server] ein Login eines Benutzers
+ angegeben werden, mit dem sich der Taskserver an Lx-Office bei der
+ Datenbank anmeldet, die dem Benutzer zugewiesen ist.
+
+ Für Entwickler finden sich unter [debug]
+ wichtige Funktionen, um die Fehlersuche zu erleichtern.
+
+
+
+ Versionen vor 2.6.3
+
+ In älteren Lx-Office Versionen gab es im Verzeichnis
+ config die Dateien
+ authentication.pl und
+ lx-erp.conf, die jeweils Perl-Dateien waren. Es
+ gab auch die Möglichkeit, eine lokale Version der Konfigurationsdatei
+ zu erstellen (lx-erp-local.conf). Dies ist ab
+ 2.6.3 nicht mehr möglich, aber auch nicht mehr nötig.
+
+ Beim Update von einer Lx-Office-Version vor 2.6.3 auf 2.6.3 oder
+ jünger müssen die Einstellungen aus den alten Konfigurationsdateien
+ manuell übertragen und die alten Konfigurationsdateien anschlieÃend
+ gelöscht oder verschoben werden. Ansonsten zeigt Lx-Office eine
+ entsprechende Fehlermeldung an.
+
@@ -415,13 +449,17 @@ dbcharset = UTF-8
PostgreSQL-Datenbankcluster muss ebenfalls mit UTF-8 als Locale
angelegt worden sein.
- Dieses ist kann überprüft werden: ist das Encoding der Datenbank âtemplate1â âUTF8â, so kann auch Lx-Office mit UTF-8
- betrieben werden. Andernfalls ist es notwendig, einen neuen Datenbankcluster mit UTF-8-Encoding anzulegen und diesen zu
- verwenden. Unter Debian und Ubuntu kann dies z.B. für PostgreSQL 8.2 mit dem folgenden Befehl getan werden:
+ Dieses ist kann überprüft werden: ist das Encoding der Datenbank
+ âtemplate1â âUTF8â, so kann auch Lx-Office mit UTF-8 betrieben werden.
+ Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
+ UTF-8-Encoding anzulegen und diesen zu verwenden. Unter Debian und
+ Ubuntu kann dies z.B. für PostgreSQL 8.2 mit dem folgenden Befehl
+ getan werden:pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2 clustername
- Die Datenbankversionsnummer muss an die tatsächlich verwendete Versionsnummer angepasst werden.
+ Die Datenbankversionsnummer muss an die tatsächlich verwendete
+ Versionsnummer angepasst werden.Unter anderen Distributionen gibt es ähnliche Methoden.
@@ -429,7 +467,8 @@ dbcharset = UTF-8
ist ein Neuanlegen eines weiteren Clusters nicht möglich, so kann
Lx-Office mit ISO-8859-15 als Encoding betrieben werden.
- Das Encoding einer Datenbank kann in psql mit \l geprüft werden.
+ Das Encoding einer Datenbank kann in psql mit
+ \l geprüft werden.
@@ -438,8 +477,8 @@ dbcharset = UTF-8
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, dass
- TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den
+ /etc/postgresql/, muss sichergestellt werden,
+ dass TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den
Parameter listen_address gesteuert. Laufen
PostgreSQL und Lx-Office auf demselben Rechner, so kann dort der Wert
localhost verwendet werden. Andernfalls müssen
@@ -447,9 +486,9 @@ dbcharset = UTF-8
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 werden.
- Hier gibt es mehrere Möglichkeiten. Eine besteht darin, lokale
+ Verzeichnis wie die postgresql.conf zu finden
+ sein sollte, müssen die Berichtigungen für den Zugriff geändert
+ werden. Hier gibt es mehrere Möglichkeiten. Eine besteht darin, lokale
Verbindungen immer zuzulassen:local all all trust
@@ -498,7 +537,7 @@ host all lxoffice 127.0.0.1 255.255.255.255 passwordFür einen deutlichen Performanceschub sorgt die Ausführung
mittels FastCGI/FCGI. Die Einrichtung wird ausführlich im Abschnitt
- beschrieben.
+ beschrieben.
Der Zugriff auf das Programmverzeichnis muss in der Apache
@@ -524,7 +563,8 @@ Alias /lx-erp/ /var/www/lx-erp/
das Lx-Office-Archiv entpacket haben.
- Vor den einzelnen Optionen muss bei einigen Distributionen ein Plus â+â gesetzt werden.
+ Vor den einzelnen Optionen muss bei einigen Distributionen ein
+ Plus â+â gesetzt werden.Auf einigen Webservern werden manchmal die Grafiken und
@@ -595,14 +635,13 @@ Alias /lx-erp/ /var/www/lx-erp/
verwendet.
-
- FCGI 0.69 und höher ist extrem strict in der Behandlung von Unicode, und verweigert bestimmte Eingaben von Lx-Office. Falls es
- Probleme mit Umlauten in Ihrere Installation gibt, muss auf die Vorgängerversion FCGI 0.68 ausgewichen werden.
-
+ FCGI 0.69 und höher ist extrem strict in der Behandlung von
+ Unicode, und verweigert bestimmte Eingaben von Lx-Office. Falls es
+ Probleme mit Umlauten in Ihrere Installation gibt, muss auf die
+ Vorgängerversion FCGI 0.68 ausgewichen werden.
-
- Mit CPAN lässt sie sich die Vorgängerversion wie folgt installieren:
-
+ Mit CPAN lässt sie sich die Vorgängerversion wie folgt
+ installieren:force install M/MS/MSTROUT/FCGI-0.68.tar.gz
@@ -689,8 +728,10 @@ Alias /url/for/lx-office-erp /path/to/lx-office-erp
AliasMatch ^/url/for/lx-office-erp-fcgid/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
Alias /url/for/lx-office-erp-fcgid/ /path/to/lx-office-erp/
- Dann ist unter /url/for/lx-office-erp/ die normale Version erreichbar, und unter
- /url/for/lx-office-erp-fcgid/ die FastCGI-Version.
+ Dann ist unter /url/for/lx-office-erp/
+ die normale Version erreichbar, und unter
+ /url/for/lx-office-erp-fcgid/ die
+ FastCGI-Version.
@@ -714,36 +755,39 @@ Alias /url/for/lx-office-erp-fcgid/ /path/to/lx-office-erp/
-
- login
-
-
- gültiger Lx-Office-Benutzername, der benutzt wird, um die zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss in
- der Administration angelegt werden. Diese Option muss angegeben werden.
-
-
-
+
+ login
-
- run_as
-
-
- Wird der Server vom Systembenutzer root gestartet, so wechselt er auf den mit run_as
- angegebenen Systembenutzer. Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie auch der Webserverbenutzer
- (siehe see ). Daher ist es sinnvoll, hier denselben Systembenutzer
- einzutragen, unter dem auch der Webserver läuft.
-
-
-
+
+ gültiger Lx-Office-Benutzername, der benutzt wird, um die
+ zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss
+ in der Administration angelegt werden. Diese Option muss
+ angegeben werden.
+
+
-
- debug
-
-
- Schaltet Debug-Informationen an und aus.
-
-
-
+
+ run_as
+
+
+ Wird der Server vom Systembenutzer root
+ gestartet, so wechselt er auf den mit run_as
+ angegebenen Systembenutzer. Der Systembenutzer muss dieselben
+ Lese- und Schreibrechte haben, wie auch der Webserverbenutzer
+ (siehe see ). Daher
+ ist es sinnvoll, hier denselben Systembenutzer einzutragen,
+ unter dem auch der Webserver läuft.
+
+
+
+
+ debug
+
+
+ Schaltet Debug-Informationen an und aus.
+
+
@@ -787,7 +831,8 @@ insserv lx-office-task-server
- Danach kann der Task-Server mit dem folgenden Befehl gestartet werden: /etc/init.d/lx-office-task-server
+ Danach kann der Task-Server mit dem folgenden Befehl gestartet
+ werden: /etc/init.d/lx-office-task-server
start
@@ -800,7 +845,8 @@ insserv lx-office-task-server
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 lx-office-task-server
+ Danach kann der Task-Server mit dem folgenden Befehl gestartet
+ werden: service lx-office-task-server
start
@@ -882,52 +928,63 @@ insserv lx-office-task-server
Administratorpasswort
- Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt wird, wird ebenfalls in dieser Datei gespeichert. Es
- kann auch nur dort und nicht mehr im Administrationsinterface selber geändert werden. Der Parameter dazu heiÃt
- admin_password im Abschnitt [authentication].
+ Das Passwort, das zum Zugriff auf das Aministrationsinterface
+ benutzt wird, wird ebenfalls in dieser Datei gespeichert. Es kann auch
+ nur dort und nicht mehr im Administrationsinterface selber geändert
+ werden. Der Parameter dazu heiÃt admin_password im
+ Abschnitt [authentication].Authentifizierungsdatenbank
- Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern in [authentication/database]
- konfiguriert. Hier sind die folgenden Parameter anzugeben:
+ Die Verbindung zur Authentifizierungsdatenbank wird mit den
+ Parametern in [authentication/database]
+ konfiguriert. Hier sind die folgenden Parameter anzugeben:
-
- host
-
- Der Rechnername oder die IP-Adresse des Datenbankservers
-
-
+
+ host
-
- port
-
- Die Portnummer des Datenbankservers, meist 5432
-
-
+
+ Der Rechnername oder die IP-Adresse des
+ Datenbankservers
+
+
-
- db
-
- Der Name der Authentifizierungsdatenbank
-
-
+
+ port
-
- user
-
- Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. "postgres")
-
-
+
+ Die Portnummer des Datenbankservers, meist 5432
+
+
-
- password
-
- Das Passwort für den Datenbankbenutzer
-
-
+
+ db
+
+
+ Der Name der Authentifizierungsdatenbank
+
+
+
+
+ user
+
+
+ Der Benutzername, mit dem sich Lx-Office beim
+ Datenbankserver anmeldet (z.B.
+ "postgres")
+
+
+
+
+ password
+
+
+ Das Passwort für den Datenbankbenutzer
+
+ Die Datenbank muss noch nicht existieren. Lx-Office kann sie
@@ -937,84 +994,112 @@ insserv lx-office-task-server
Passwortüberprüfung
- Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die Authentifizierungsdatenbank und gegen einen externen LDAP-
- oder Active-Directory-Server. Welche davon benutzt wird, regelt der Parameter module im Abschnitt
+ Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen
+ die Authentifizierungsdatenbank und gegen einen externen LDAP- oder
+ Active-Directory-Server. Welche davon benutzt wird, regelt der
+ Parameter module im Abschnitt
[authentication].
- Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank gespeichert werden, so muss der Parameter
- module den Wert DB enthalten. In diesem Fall können sowohl der Administrator als auch die
- Benutzer selber ihre Psaswörter in Lx-Office ändern.
+ Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank
+ gespeichert werden, so muss der Parameter module
+ den Wert DB enthalten. In diesem Fall können sowohl
+ der Administrator als auch die Benutzer selber ihre Psaswörter in
+ Lx-Office ändern.
- Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt werden, so muss der Parameter module
- auf LDAP gesetzt werden. In diesem Fall müssen zusätzliche Informationen über den LDAP-Server im Abschnitt
+ Soll hingegen ein externer LDAP- oder Active-Directory-Server
+ benutzt werden, so muss der Parameter module auf
+ LDAP gesetzt werden. In diesem Fall müssen
+ zusätzliche Informationen über den LDAP-Server im Abschnitt
[authentication/ldap] angegeben werden:
-
- host
-
- Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend
- erforderlich.
-
-
+
+ host
-
- port
-
- Die Portnummer des LDAP-Servers; meist 389.
-
-
+
+ Der Rechnername oder die IP-Adresse des LDAP- oder
+ Active-Directory-Servers. Diese Angabe ist zwingend
+ erforderlich.
+
+
-
- tls
-
- Wenn Verbindungsverschlüsselung gewünscht ist, so diesen Wert auf â1â setzen, andernfalls auf
- â0â belassen
-
-
+
+ port
-
- attribute
-
- Das LDAP-Attribut, in dem der Benutzername steht, den der Benutzer eingegeben hat. Für Active-Directory-Server ist dies
- meist âsAMAccountNameâ, für andere LDAP-Server hingegen âuidâ. Diese Angabe ist zwingend
- erforderlich.
-
-
+
+ Die Portnummer des LDAP-Servers; meist 389.
+
+
-
- base_dn
-
- Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich.
-
-
+
+ tls
-
- filter
-
- Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort <%login%>, so wird dieses durch den
- vom Benutzer eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum nach einem Element durchsucht, bei dem das oben
- angegebene Attribut mit dem Benutzernamen identisch ist.
-
-
+
+ Wenn Verbindungsverschlüsselung gewünscht ist, so diesen
+ Wert auf â1â setzen, andernfalls auf
+ â0â belassen
+
+
-
- bind_dn und bind_password
-
- Wenn der LDAP-Server eine Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist dies bei Active-Directory-Servern
- der Fall), so kann diese hier angegeben werden. Für Active-Directory-Server kann als âbind_dnâ entweder eine
- komplette LDAP-DN wie z.B. âcn=Martin Mustermann,cn=Users,dc=firmendomainâ auch nur der volle Name des
- Benutzers eingegeben werden; in diesem Beispiel also âMartin Mustermannâ.
-
-
+
+ attribute
+
+
+ Das LDAP-Attribut, in dem der Benutzername steht, den der
+ Benutzer eingegeben hat. Für Active-Directory-Server ist dies
+ meist âsAMAccountNameâ, für andere
+ LDAP-Server hingegen âuidâ. Diese Angabe ist
+ zwingend erforderlich.
+
+
+
+
+ base_dn
+
+
+ Der Abschnitt des LDAP-Baumes, der durchsucht werden soll.
+ Diese Angabe ist zwingend erforderlich.
+
+
+
+
+ filter
+
+
+ Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort
+ <%login%>, so wird dieses durch den vom
+ Benutzer eingegebenen Benutzernamen ersetzt. Andernfalls wird
+ der LDAP-Baum nach einem Element durchsucht, bei dem das oben
+ angegebene Attribut mit dem Benutzernamen identisch ist.
+
+
+
+
+ bind_dn und
+ bind_password
+
+
+ Wenn der LDAP-Server eine Anmeldung erfordert, bevor er
+ durchsucht werden kann (z.B. ist dies bei
+ Active-Directory-Servern der Fall), so kann diese hier angegeben
+ werden. Für Active-Directory-Server kann als
+ âbind_dnâ entweder eine komplette LDAP-DN wie
+ z.B. âcn=Martin
+ Mustermann,cn=Users,dc=firmendomainâ auch nur der
+ volle Name des Benutzers eingegeben werden; in diesem Beispiel
+ also âMartin Mustermannâ.
+
+ Name des Session-Cookies
- Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt werden, so müssen die Namen der Session-Cookies für alle
- Installationen unterschiedlich sein. Der Name des Cookies wird mit dem Parameter cookie_name im Abschnitt
+ Sollen auf einem Server mehrere Lx-Office-Installationen
+ aufgesetzt werden, so müssen die Namen der Session-Cookies für alle
+ Installationen unterschiedlich sein. Der Name des Cookies wird mit dem
+ Parameter cookie_name im Abschnitt
[authentication]gesetzt.Diese Angabe ist optional, wenn nur eine Installation auf dem
@@ -1182,7 +1267,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
@@ -1321,128 +1406,245 @@ insserv lx-office-task-server
Dieses Verzeichnis, wie auch das komplette
users-Verzeichnis, muss vom Webserver beschreibbar
sein. Dieses wurde bereits erledigt (siehe ), kann aber erneut
- überprüft werden, wenn die Konvertierung nach PDF fehlschlägt.
+ linkend="Manuelle-Installation-des-Programmpaketes" />), kann aber
+ erneut überprüft werden, wenn die Konvertierung nach PDF
+ fehlschlägt.
- Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung: EUR
+ Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
+ EUR
-
- Einführung
+
+ Einführung
-
- Lx-Office besaà bis inklusive Version 2.6.3 einen Konfigurationsparameter namens eur, der sich in der
- Konfigurationsdatei config/lx_office.conf befindet. Somit galt er für alle Mandanten, die in dieser
- Installation benutzt wurden.
-
+ Lx-Office besaà bis inklusive Version 2.6.3 einen
+ Konfigurationsparameter namens eur, der sich in der
+ Konfigurationsdatei config/lx_office.conf
+ befindet. Somit galt er für alle Mandanten, die in dieser Installation
+ benutzt wurden.
-
- Mit der nachfolgenden Version wurde der Parameter zum Einen in die Mandantendatenbank verschoben und dabei auch gleich in drei
- Einzelparameter aufgeteilt, mit denen sich das Verhalten genauer steuern lässt.
-
+ Mit der nachfolgenden Version wurde der Parameter zum Einen in
+ die Mandantendatenbank verschoben und dabei auch gleich in drei
+ Einzelparameter aufgeteilt, mit denen sich das Verhalten genauer
+ steuern lässt.
-
- Konfigurationsparameter
-
-
- Es gibt drei Parameter, die die Gewinnermittlungsart, Versteuerungsart und die Warenbuchungsmethode regeln:
-
-
-
-
- profit_determination
-
-
- Dieser Parameter legt die Berechnungsmethode für die Gewinnermittlung fest. Er enthält entweder balance für
- Betriebsvermögensvergleich/Bilanzierung oder income für die Einnahmen-Ãberschuss-Rechnung.
-
-
-
-
-
- accounting_method
-
-
- Dieser Parameter steuert die Buchungs- und Berechnungsmethoden für die Versteuerungsart. Er enthält entweder
- accrual für die Soll-Versteuerung oder cash für die Ist-Versteuerung.
-
-
-
-
-
- inventory_system
-
-
- Dieser Parameter legt die Warenbuchungsmethode fest. Er enthält entweder perpetual für die Bestandsmethode
- oder periodic für die Aufwandsmethode.
-
-
-
-
-
-
- Zum Vergleich der Funktionalität bis und nach 2.6.3: eur = 1 bedeutete Einnahmen-Ãberschuss-Rechnung,
- Ist-Versteuerung und Aufwandsmethode. eur = 0 bedeutete hingegen Bilanzierung, Soll-Versteuerung und
- Bestandsmethode.
-
-
-
- Die Konfiguration "eur" unter [system] in der Konfigurationsdatei config/lx_office.conf wird nun nicht mehr benötigt und
- kann entfernt werden. Dies muss manuell geschehen.
-
+
+ Konfigurationsparameter
+
+ Es gibt drei Parameter, die die Gewinnermittlungsart,
+ Versteuerungsart und die Warenbuchungsmethode regeln:
+
+
+
+ profit_determination
+
+
+ Dieser Parameter legt die Berechnungsmethode für die
+ Gewinnermittlung fest. Er enthält entweder
+ balance für
+ Betriebsvermögensvergleich/Bilanzierung oder
+ income für die
+ Einnahmen-Ãberschuss-Rechnung.
+
+
+
+
+ accounting_method
+
+
+ Dieser Parameter steuert die Buchungs- und
+ Berechnungsmethoden für die Versteuerungsart. Er enthält
+ entweder accrual für die Soll-Versteuerung
+ oder cash für die Ist-Versteuerung.
+
+
+
+
+ inventory_system
+
+
+ Dieser Parameter legt die Warenbuchungsmethode fest. Er
+ enthält entweder perpetual für die
+ Bestandsmethode oder periodic für die
+ Aufwandsmethode.
+
+
+
+
+ Zum Vergleich der Funktionalität bis und nach 2.6.3:
+ eur = 1 bedeutete Einnahmen-Ãberschuss-Rechnung,
+ Ist-Versteuerung und Aufwandsmethode. eur = 0
+ bedeutete hingegen Bilanzierung, Soll-Versteuerung und
+ Bestandsmethode.
+
+ Die Konfiguration "eur" unter
+ [system] in der Konfigurationsdatei
+ config/lx_office.conf wird nun nicht mehr
+ benötigt und kann entfernt werden. Dies muss manuell geschehen.
- Festlegen der Parameter
-
-
- Beim Anlegen eines neuen Mandanten bzw. einer neuen Datenbank in der Admininstration können diese Optionen nun unabhängig
- voneinander eingestellt werden.
-
-
-
- Beim Upgrade bestehender Mandanten wird eur ausgelesen und die Variablen werden so gesetzt, daà sich an der Funktionalität nichts
- ändert.
-
-
-
- Die aktuelle Konfiguration wird unter Nummernkreise und Standardkonten unter dem neuen Punkt "Einstellungen" angezeigt (read-only).
- Eine spätere Ãnderung ist für einen bestehenden Mandanten nicht mehr möglich. Dies war auch vorher nicht möglich, bzw. vorhandene
- Daten wurden so belassen und haben damit die Ergebnisse verfälscht.
-
+ Festlegen der Parameter
+
+ Beim Anlegen eines neuen Mandanten bzw. einer neuen Datenbank in
+ der Admininstration können diese Optionen nun unabhängig voneinander
+ eingestellt werden.
+
+ Beim Upgrade bestehender Mandanten wird eur ausgelesen und die
+ Variablen werden so gesetzt, daà sich an der Funktionalität nichts
+ ändert.
+
+ Die aktuelle Konfiguration wird unter Nummernkreise und
+ Standardkonten unter dem neuen Punkt "Einstellungen" angezeigt
+ (read-only). Eine spätere Ãnderung ist für einen bestehenden Mandanten
+ nicht mehr möglich. Dies war auch vorher nicht möglich, bzw.
+ vorhandene Daten wurden so belassen und haben damit die Ergebnisse
+ verfälscht.
- Bemerkungen zu Bestandsmethode
-
-
- Die Bestandsmethode ist eigentlich eine sehr elegante Methode, funktioniert in Lx-Office aber nur unter bestimmten Bedingungen:
- Voraussetzung ist, daà auch immer alle Einkaufsrechnungen gepflegt werden, und man beim Jahreswechsel nicht mit einer leeren
- Datenbank anfängt, da bei jedem Verkauf anhand der gesamten Rechnungshistorie der Einkaufswert der Ware nach dem FIFO-Prinzip aus
- den Einkaufsrechnungen berechnet wird.
-
-
-
- Die Bestandsmethode kann vom Prinzip her also nur funktioneren, wenn man mit den Buchungen bei Null anfängt, und man kann auch nicht
- im laufenden Betrieb von der Aufwandsmethode zur Bestandsmethode wechseln.
-
+ Bemerkungen zu Bestandsmethode
+
+ Die Bestandsmethode ist eigentlich eine sehr elegante Methode,
+ funktioniert in Lx-Office aber nur unter bestimmten Bedingungen:
+ Voraussetzung ist, daà auch immer alle Einkaufsrechnungen gepflegt
+ werden, und man beim Jahreswechsel nicht mit einer leeren Datenbank
+ anfängt, da bei jedem Verkauf anhand der gesamten Rechnungshistorie
+ der Einkaufswert der Ware nach dem FIFO-Prinzip aus den
+ Einkaufsrechnungen berechnet wird.
+
+ Die Bestandsmethode kann vom Prinzip her also nur funktioneren,
+ wenn man mit den Buchungen bei Null anfängt, und man kann auch nicht
+ im laufenden Betrieb von der Aufwandsmethode zur Bestandsmethode
+ wechseln.
- Bekannte Probleme
+ Bekannte Probleme
-
- Bei bestimmten Berichten kann man derzeit noch inviduell einstellen, ob man nach Ist- oder Sollversteuerung auswertet, und es werden
- im Code Variablen wie $accrual oder $cash gesetzt. Diese Codestellen wurden noch nicht angepasst, sondern nur die, wo bisher
- die Konfigurationsvariable $::lx_office_conf{system}->{eur} ausgewertet wurde.
-
+ Bei bestimmten Berichten kann man derzeit noch inviduell
+ einstellen, ob man nach Ist- oder Sollversteuerung auswertet, und es
+ werden im Code Variablen wie $accrual oder $cash gesetzt. Diese
+ Codestellen wurden noch nicht angepasst, sondern nur die, wo bisher
+ die Konfigurationsvariable
+ $::lx_office_conf{system}->{eur} ausgewertet
+ wurde.
-
- Es fehlen Hilfetext beim Neuanlegen eines Mandanten, was die Optionen bewirken, z.B. mit zwei Standardfällen.
-
+ Es fehlen Hilfetext beim Neuanlegen eines Mandanten, was die
+ Optionen bewirken, z.B. mit zwei Standardfällen.
+
+
+
+
+ SKR04 19% Umstellung für innergemeinschaftlichen Erwerb
+
+
+ Einführung
+
+ Die Umsatzsteuerumstellung auf 19% für SKR04 für die
+ Steuerschlüssel "EU ohne USt-ID Nummer" ist erst 2010 erfolgt.
+ Lx-Office beinhaltet ein Upgradeskript, das das Konto 3804 automatisch
+ erstellt und die Steuereinstellungen korrekt einstellt. Hat der
+ Benutzer aber schon selber das Konto 3804 angelegt, oder gab es schon
+ Buchungen im Zeitraum nach dem 01.01.2007 auf das Konto 3803, wird das
+ Upgradeskript vorsichtshalber nicht ausgeführt, da der Benutzer sich
+ vielleicht schon selbst geholfen hat und mit seinen Ãnderungen
+ zufrieden ist. Die korrekten Einstellungen kann man aber auch per Hand
+ ausführen. Nachfolgend werden die entsprechenden Schritte anhand von
+ Screenshots dargestellt.
+
+ Für den Fall, daà Buchungen mit der Steuerschlüssel "EU ohne
+ USt.-IdNr." nach dem 01.01.2007 erfolgt sind, ist davon auszugehen,
+ dass diese mit dem alten Umsatzsteuersatz von 16% gebucht worden sind,
+ und diese Buchungen sollten entsprechend kontrolliert werden.
+
+
+
+ Konto 3804 manuell anlegen
+
+ Die folgenden Schritte sind notwendig, um das Konto manuell
+ anzulegen und zu konfigurieren. Zuerst wird in
+ System ->
+ Kontenübersicht -> Konto
+ erfassen das Konto angelegt.
+
+
+ Konto 3804 erfassen
+
+
+
+
+
+
+
+
+
+ Als Zweites muss Steuergruppe 13 für Konto 3803 angepasst werden. Dazu unter System ->
+ Steuern -> Bearbeiten den Eintrag mit Steuerschlüssel 13 auswählen und ihn
+ wie im folgenden Screenshot angezeigt anpassen.
+
+
+
+ Steuerschlüssel 13 für 3803 (16%) anpassen
+
+
+
+
+
+
+
+
+
+ Als Drittes wird ein neuer Eintrag mit Steuerschlüssel 13 für Konto 3804 (19%) angelegt. Dazu unter System ->
+ Steuern -> Erfassen auswählen und die Werte aus dem Screenshot übernehmen.
+
+
+
+ Steuerschlüssel 13 für 3804 (19%) anlegen
+
+
+
+
+
+
+
+
+
+ Als Nächstes sind alle Konten anzupassen, die als Steuerautomatikkonto die 3803 haben, sodass sie ab dem 1.1.2007 auch
+ Steuerautomatik auf 3804 bekommen. Dies betrifft in der Standardkonfiguration die Konten 4315 und 4726. Als Beispiel für 4315
+ müssen Sie dazu unter System -> Kontenübersicht -> Konten
+ anzeigen das Konto 4315 anklicken und die Einstellungen wie im Screenshot gezeigt vornehmen.
+
+
+
+ Konto 4315 anpassen
+
+
+
+
+
+
+
+
+
+ Als Letztes sollte die Steuerliste unter System -> Steuern ->
+ Bearbeiten kontrolliert werden. Zum Vergleich der Screenshot.
+
+
+
+ Steuerliste vergleichen
+
+
+
+
+
+
+
@@ -1465,152 +1667,158 @@ insserv lx-office-task-server
Features und Funktionen
-
- Wiederkehrende Rechnungen
+
+ Wiederkehrende Rechnungen
-
- Einführung
+
+ Einführung
-
- Wiederkehrende Rechnungen werden als normale Aufträge definiert und konfiguriert, mit allen dazugehörigen Kunden- und
- Artikelangaben. Die konfigurierten Aufträge werden später automatisch in Rechnungen umgewandelt, so als ob man den Workflow benutzen
- würde, und auch die Auftragsnummer wird übernommen, sodass alle wiederkehrenden Rechnungen, die aus einem Auftrag erstellt wurden,
- später leicht wiederzufinden sind.
-
+ Wiederkehrende Rechnungen werden als normale Aufträge definiert
+ und konfiguriert, mit allen dazugehörigen Kunden- und Artikelangaben.
+ Die konfigurierten Aufträge werden später automatisch in Rechnungen
+ umgewandelt, so als ob man den Workflow benutzen würde, und auch die
+ Auftragsnummer wird übernommen, sodass alle wiederkehrenden
+ Rechnungen, die aus einem Auftrag erstellt wurden, später leicht
+ wiederzufinden sind.
+
-
+
+ Konfiguration
-
- Konfiguration
+ Um einen Auftrag für wiederkehrende Rechnung zu konfigurieren,
+ findet sich beim Bearbeiten des Auftrags ein neuer Knopf
+ "Konfigurieren", der ein neues Fenster öffnet, in dem man die nötigen
+ Parameter einstellen kann. Hinter dem Knopf wird auÃerdem noch
+ angezeigt, ob der Auftrag als wiederkehrende Rechnung konfiguriert ist
+ oder nicht.
-
- Um einen Auftrag für wiederkehrende Rechnung zu konfigurieren, findet sich beim Bearbeiten des Auftrags ein neuer Knopf
- "Konfigurieren", der ein neues Fenster öffnet, in dem man die nötigen Parameter einstellen kann. Hinter dem Knopf wird auÃerdem noch
- angezeigt, ob der Auftrag als wiederkehrende Rechnung konfiguriert ist oder nicht.
-
+ Folgende Parameter kann man konfigurieren:
-
- Folgende Parameter kann man konfigurieren:
-
+
+
+ Status
-
-
- Status
-
-
- Bei aktiven Rechnungen wird automatisch eine Rechnung erstellt, wenn die Periodizität erreicht ist (z.B. Anfang eines neuen
- Monats).
-
-
-
- Ist ein Auftrag nicht aktiv, so werden für ihn auch keine wiederkehrenden Rechnungen erzeugt. Stellt man nach längerer
- nicht-aktiver Zeit einen Auftrag wieder auf aktiv, wird beim nächsten Periodenwechsel für alle Perioden, seit der letzten aktiven
- Periode, jeweils eine Rechnung erstellt. Möchte man dies verhindern, muss man vorher das Startdatum neu setzen.
-
-
-
- Für gekündigte Aufträge werden nie mehr Rechnungen erstellt. Man kann sich diese Aufträge aber gesondert in den Berichten anzeigen
- lassen.
-
-
-
+
+ Bei aktiven Rechnungen wird automatisch eine Rechnung
+ erstellt, wenn die Periodizität erreicht ist (z.B. Anfang eines
+ neuen Monats).
+
+ Ist ein Auftrag nicht aktiv, so werden für ihn auch keine
+ wiederkehrenden Rechnungen erzeugt. Stellt man nach längerer
+ nicht-aktiver Zeit einen Auftrag wieder auf aktiv, wird beim
+ nächsten Periodenwechsel für alle Perioden, seit der letzten
+ aktiven Periode, jeweils eine Rechnung erstellt. Möchte man dies
+ verhindern, muss man vorher das Startdatum neu setzen.
+
+ Für gekündigte Aufträge werden nie mehr Rechnungen
+ erstellt. Man kann sich diese Aufträge aber gesondert in den
+ Berichten anzeigen lassen.
+
+
-
- Periodizität
-
-
- Ob monatlich, quartalsweise oder jährlich auf neue Rechnungen überprüft werden soll. Für jede Periode seit dem Startdatum wird
- überprüft, ob für die Periode (beginnend immer mit dem ersten Tag der Periode) schon eine Rechnung erstellt wurde. Unter Umständen
- können bei einem Startdatum in der Vergangenheit gleich mehrere Rechnungen erstellt werden.
-
-
-
+
+ Periodizität
-
- Buchen auf
-
-
- Das Forderungskonto, in der Regel "Forderungen aus Lieferungen und Leistungen". Das Gegenkonto ergibt sich aus den Buchungsgruppen
- der betreffenden Waren.
-
-
-
+
+ Ob monatlich, quartalsweise oder jährlich auf neue
+ Rechnungen überprüft werden soll. Für jede Periode seit dem
+ Startdatum wird überprüft, ob für die Periode (beginnend immer
+ mit dem ersten Tag der Periode) schon eine Rechnung erstellt
+ wurde. Unter Umständen können bei einem Startdatum in der
+ Vergangenheit gleich mehrere Rechnungen erstellt werden.
+
+
-
- Startdatum
-
-
- ab welchem Datum auf Rechnungserstellung geprüft werden soll
-
-
-
+
+ Buchen auf
-
- Enddatum
-
-
- ab wann keine Rechnungen mehr erstellt werden sollen
-
-
-
+
+ Das Forderungskonto, in der Regel "Forderungen aus
+ Lieferungen und Leistungen". Das Gegenkonto ergibt sich aus den
+ Buchungsgruppen der betreffenden Waren.
+
+
-
- Automatische Verlängerung um x Monate
-
-
- Sollen die wiederkehrenden Rechnungen bei Erreichen des eingetragenen Enddatums weiterhin erstellt werden, so kann man hier die
- Anzahl der Monate eingeben, um die das Enddatum automatisch nach hinten geschoben wird.
-
-
-
+
+ Startdatum
-
- Drucken
-
-
- Sind Drucker konfiguriert, so kann man sich die erstellten Rechnungen auch gleich ausdrucken lassen.
-
-
-
-
-
-
- Nach Erstellung der Rechnungen kann eine E-Mail mit Informationen zu den erstellten Rechnungen verschickt werden. Konfiguriert wird
- dies in der Konfigurationsdatei
- config/lx_office.conf im Abschnitt [periodic_invoices].
-
-
-
-
- Auflisten
-
-
- Unter Verkauf->Berichte->Aufträge finden sich zwei neue Checkboxen, "Wiederkehrende Rechnungen aktiv" und
- "Wiederkehrende Rechnungen inaktiv", mit denen man sich einen Ãberglick über die wiederkehrenden Rechnungen verschaffen
- kann.
-
-
-
-
- Erzeugung der eigentlichen Rechnungen
-
-
- Die zeitliche und periodische Ãberprüfung, ob eine wiederkehrende Rechnung automatisch erstellt werden soll, geschieht durch den
- Taskserver, einen externen Dienst, der automatisch beim Start des Servers gestartet
- werden sollte.
-
-
-
-
- Erste Rechnung für aktuellen Monat erstellen
-
-
- Will man im laufenden Monat eine monatlich wiederkehrende Rechnung inkl. des laufenden Monats starten, stellt man das Startdatum auf
- den Monatsanfang und wartet ein paar Minuten, bis der Taskserver den neu konfigurieren Auftrag erkennt und daraus eine Rechnung
- generiert hat. Alternativ setzt man das Startdatum auf den Monatsersten des Folgemonats und erstellt die erste Rechnung direkt
- manuell über den Workflow.
-
-
+
+ ab welchem Datum auf Rechnungserstellung geprüft werden
+ soll
+
+
+
+
+ Enddatum
+
+
+ ab wann keine Rechnungen mehr erstellt werden
+ sollen
+
+
+
+
+ Automatische Verlängerung um x Monate
+
+
+ Sollen die wiederkehrenden Rechnungen bei Erreichen des
+ eingetragenen Enddatums weiterhin erstellt werden, so kann man
+ hier die Anzahl der Monate eingeben, um die das Enddatum
+ automatisch nach hinten geschoben wird.
+
+
+
+
+ Drucken
+
+
+ Sind Drucker konfiguriert, so kann man sich die erstellten
+ Rechnungen auch gleich ausdrucken lassen.
+
+
+
+
+ Nach Erstellung der Rechnungen kann eine E-Mail mit
+ Informationen zu den erstellten Rechnungen verschickt werden.
+ Konfiguriert wird dies in der Konfigurationsdatei
+ config/lx_office.conf im Abschnitt
+ [periodic_invoices].
+
+
+
+ Auflisten
+
+ Unter Verkauf->Berichte->Aufträge finden sich zwei neue
+ Checkboxen, "Wiederkehrende Rechnungen aktiv" und "Wiederkehrende
+ Rechnungen inaktiv", mit denen man sich einen Ãberglick über die
+ wiederkehrenden Rechnungen verschaffen kann.
+
+
+
+ Erzeugung der eigentlichen Rechnungen
+
+ Die zeitliche und periodische Ãberprüfung, ob eine
+ wiederkehrende Rechnung automatisch erstellt werden soll, geschieht
+ durch den Taskserver, einen
+ externen Dienst, der automatisch beim Start des Servers gestartet
+ werden sollte.
+
+
+
+ Erste Rechnung für aktuellen Monat erstellen
+
+ Will man im laufenden Monat eine monatlich wiederkehrende
+ Rechnung inkl. des laufenden Monats starten, stellt man das Startdatum
+ auf den Monatsanfang und wartet ein paar Minuten, bis der Taskserver
+ den neu konfigurieren Auftrag erkennt und daraus eine Rechnung
+ generiert hat. Alternativ setzt man das Startdatum auf den
+ Monatsersten des Folgemonats und erstellt die erste Rechnung direkt
+ manuell über den Workflow.
+
@@ -1625,7 +1833,7 @@ insserv lx-office-task-server
<%variablenname%> verwendet wird. Für
LaTeX- und HTML-Vorlagen kann man die Form dieser Tags auch verändern
(siehe ).
+ linkend="dokumentenvorlagen-und-variablen.tag-style" />).Früher wurde hier nur über LaTeX gesprochen. Inzwischen
unterstützt Lx-Office aber auch OpenDocument-Vorlagen. Sofern es nicht
@@ -1901,7 +2109,7 @@ insserv lx-office-task-server
Die kurzen Varianten dieser Vorlagentitel müssen dann entweder
Standardwerte anzeigen, oder die angeforderten Werte selbst auswerten,
siehe dazu .
+ linkend="dokumentenvorlagen-und-variablen.allgemeine-variablen.meta" />.
@@ -4207,17 +4415,19 @@ Beschreibung: <%description%>
strict werden alle Variablen die nicht explizit
mit Package, my oder
our angegeben werden als Tippfehler angemarkert,
- 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.
+ 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.Kanonische globale VariablenUm 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.
+ 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:
@@ -4259,8 +4469,9 @@ Beschreibung: <%description%>
- Damit diese nicht erneut als Müllhalde missbraucht werden, im Folgenden
- eine kurze Erläuterung der bestimmten vorgegebenen Eigenschaften (Konventionen):
+ Damit diese nicht erneut als Müllhalde missbraucht werden, im
+ Folgenden eine kurze Erläuterung der bestimmten vorgegebenen
+ Eigenschaften (Konventionen):$::form
@@ -4295,51 +4506,55 @@ Beschreibung: <%description%>
Ledger als Gottobjekt für alles misbraucht. 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 IS->retrieve_customer() in
- Sicherheit bringen.
+ gewachsen sind), sollte man vor einem Aufruf (!) von zum Beispiel
+ IS->retrieve_customer() in Sicherheit
+ bringen.
-
- Z.B. das vom Benutzer eingestellte Zahlenformat, bevor man Berechnung in einem
- bestimmten Format durchführt (SL/Form.pm Zeile 3552, Stand version 2.7beta), um
- dies hinterher wieder auf den richtigen Wert zu setzen:
-
+ Z.B. das vom Benutzer eingestellte Zahlenformat, bevor man
+ Berechnung in einem bestimmten Format durchführt (SL/Form.pm Zeile
+ 3552, Stand version 2.7beta), um dies hinterher wieder auf den
+ richtigen Wert zu setzen: my $saved_numberformat = $::myconfig{numberformat};
$::myconfig{numberformat} = $numberformat;
# (...) div Berechnungen
$::myconfig{numberformat} = $saved_numberformat;
-
- Das Objekt der Klasse Form hat leider im Moment noch viele zentrale Funktionen die vom internen Zustand abhängen, deshalb bitte
- nie einfach zerstören oder überschreiben (zumindestens nicht kurz vor einem Release oder in Absprache über bspw. die devel-Liste
- ;-). Es geht ziemlich sicher etwas kaputt.
-
-
-
- $::form ist gleichzeitig der Standard Scope in den Template::Toolkit Templates
- auÃerhalb der Controller: der Ausdruck [% var %] greift auf $::form->{var} zu. Unter
- Controllern ist der Standard Scope anders, da lautet der Zugriff [% FORM.var %]. In Druckvorlagen sind
- normale Variablen ebenfall im $::form Scope, d.h. <%var%> zeigt auf
- $::form->{var}. Nochmal von der anderen Seite erläutert, innerhalb von (Web-)Templates sieht man häufiger
- solche Konstrukte:
-
+ Das Objekt der Klasse Form hat leider im Moment noch viele
+ zentrale Funktionen die vom internen Zustand abhängen, deshalb bitte
+ nie einfach zerstören oder überschreiben (zumindestens nicht kurz
+ vor einem Release oder in Absprache über bspw. die devel-Liste ;-).
+ Es geht ziemlich sicher etwas kaputt.
+
+ $::form ist gleichzeitig der Standard Scope
+ in den Template::Toolkit Templates
+ auÃerhalb der Controller: der Ausdruck [% var
+ %] greift auf $::form->{var} zu.
+ Unter Controllern ist der Standard Scope anders, da lautet der
+ Zugriff [% FORM.var %]. In Druckvorlagen sind
+ normale Variablen ebenfall im $::form Scope, d.h.
+ <%var%> zeigt auf
+ $::form->{var}. Nochmal von der anderen Seite
+ erläutert, innerhalb von (Web-)Templates sieht man häufiger solche
+ Konstrukte:[%- IF business %]
# (... Zeig die Auswahlliste Kunden-/Lieferantentyp an)
[%- END %]
-
- Entweder wird hier dann $::form->{business} ausgewertet oder aber der Funktion $form->parse_html_template
- wird explizit noch ein zusätzlicher Hash übergeben, der dann auch in den (Web-)Templates zu Verfügung steht, bspw. so:
-
+ Entweder wird hier dann $::form->{business} ausgewertet
+ oder aber der Funktion
+ $form->parse_html_template wird explizit
+ noch ein zusätzlicher Hash übergeben, der dann auch in den
+ (Web-)Templates zu Verfügung steht, bspw. so:$form->parse_html_template("is/form_header", \%TMPL_VAR);
-
- Innerhalb von Schleifen wird $::form->{TEMPLATE_ARRAYS}{var}[$index] bevorzugt, wenn vorhanden. Ein
- Beispiel findet sich in SL/DO.pm, welches über alle Positionen eines Lieferscheins in Schleife läuft:
-
+ Innerhalb von Schleifen wird
+ $::form->{TEMPLATE_ARRAYS}{var}[$index]
+ bevorzugt, wenn vorhanden. Ein Beispiel findet sich in SL/DO.pm,
+ welches über alle Positionen eines Lieferscheins in Schleife
+ läuft:for $i (1 .. $form->{rowcount}) {
# ...
@@ -4387,12 +4602,14 @@ Beschreibung: <%description%>
-
- %::myconfig ist im Moment der Ersatz für ein Userobjekt. Die meisten Funktionen, die etwas anhand des
- aktuellen Users entscheiden müssen, befragen %::myconfig. Innerhalb der Anwendungen sind dies überwiegend die
- Daten, die sich unter Programm -> Einstellungen befinden, bzw. die Informationen
- über den Benutzer die über die Administrator-Schnittstelle (admin.pl) eingegeben wurden.
-
+ %::myconfig ist im Moment der Ersatz für
+ ein Userobjekt. Die meisten Funktionen, die etwas anhand des
+ aktuellen Users entscheiden müssen, befragen
+ %::myconfig. Innerhalb der Anwendungen sind dies
+ überwiegend die Daten, die sich unter Programm
+ -> Einstellungen befinden, bzw. die
+ Informationen über den Benutzer die über die
+ Administrator-Schnittstelle (admin.pl) eingegeben wurden.
@@ -4440,17 +4657,16 @@ Beschreibung: <%description%>
-
- $::lxdebug stellt Debuggingfunktionen bereit, wie "enter_sub" und
- "leave_sub", mit denen in den alten Modulen ein brauchbares Tracing gebaut ist,
- "log_time", mit der man die Wallclockzeit seit Requeststart loggen kann, sowie
- "message" und "dump" mit denen man flott Informationen ins Log
- (tmp/lx-office-debug.log) packen kann.
-
+ $::lxdebug stellt Debuggingfunktionen
+ bereit, wie "enter_sub" und
+ "leave_sub", mit denen in den alten Modulen ein
+ brauchbares Tracing gebaut ist, "log_time", mit
+ der man die Wallclockzeit seit Requeststart loggen kann, sowie
+ "message" und "dump" mit
+ denen man flott Informationen ins Log (tmp/lx-office-debug.log)
+ packen kann.
-
- Beispielsweise so:
-
+ Beispielsweise so:$main::lxdebug->message(0, 'Meine Konfig:' . Dumper (%::myconfig));
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});
@@ -4504,11 +4720,12 @@ $main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{
Globale Konfiguration. Configdateien werden zum Start gelesen
- und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass das
- Programm die Konfiguration ändern kann oder sollte.
+ und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass
+ das Programm die Konfiguration ändern kann oder sollte.
- Beispielsweise ist über den Konfigurationseintrag [debug]
- die Debug- und Trace-Log-Datei wie folgt konfiguriert und verfügbar:
+ Beispielsweise ist über den Konfigurationseintrag [debug] die
+ Debug- und Trace-Log-Datei wie folgt konfiguriert und
+ verfügbar:[debug]
file = /tmp/lx-office-debug.log
@@ -4539,8 +4756,7 @@ file = /tmp/lx-office-debug.log
Funktioniert wie $::lx_office_conf,
speichert aber Daten die von der Instanz abhängig sind. Eine Instanz
- ist hier eine Mandantendatenbank.
- Beispielsweise überprüft
+ ist hier eine Mandantendatenbank. Beispielsweise überprüft
$::instance_conf->get_inventory_system eq 'perpetual'
ob die berüchtigte Bestandsmethode zur Anwendung kommt.
@@ -4598,16 +4814,19 @@ file = /tmp/lx-office-debug.log
- Kommt es vom User, und soll unverändert wieder an den User? Dann $::form, steht da eh schon
+ Kommt es vom User, und soll unverändert wieder an den
+ User? Dann $::form, steht da eh schon
- Sind es Daten aus der Datenbank, die nur bis zum Ende des Requests gebraucht werden? Dann
+ Sind es Daten aus der Datenbank, die nur bis zum Ende des
+ Requests gebraucht werden? Dann
$::request
- Muss ich von anderen Teilen des Programms lesend drauf zugreifen? Dann $::request, aber Zugriff über
+ Muss ich von anderen Teilen des Programms lesend drauf
+ zugreifen? Dann $::request, aber Zugriff über
Wrappermethode
@@ -4779,216 +4998,231 @@ file = /tmp/lx-office-debug.log
- SQL-Upgradedateien
+ SQL-Upgradedateien
-
- Einführung
+
+ Einführung
-
- Der alte Mechanismus für SQL-Upgradescripte, der auf einer Versionsnummer beruht und dann in sql/Pg-upgrade nach einem Script für
- diese Versionsnummer sucht, schränkt sehr ein, z.B. was die parallele Entwicklung im stable- und unstable-Baum betrifft.
-
+ Der alte Mechanismus für SQL-Upgradescripte, der auf einer
+ Versionsnummer beruht und dann in sql/Pg-upgrade nach einem Script für
+ diese Versionsnummer sucht, schränkt sehr ein, z.B. was die parallele
+ Entwicklung im stable- und unstable-Baum betrifft.
+
+ Dieser Mechanismus wurde für Lx-Office 2.4.1 deutlich erweitert.
+ Es werden weiterhin alle Scripte aus sql/Pg-upgrade ausgeführt.
+ Zusätzlich gibt es aber ein zweites Verzeichnis, sql/Pg-upgrade2. In
+ diesem Verzeichnis muss pro Datenbankupgrade eine Datei existieren,
+ die neben den eigentlich auszuführenden SQL- oder Perl-Befehlen einige
+ Kontrollinformationen enthält.
+
+ Neu sind die Kontrollinformationen, die Abhängigkeiten und
+ Prioritäten definieren können werden, sodass Datenbankscripte zwar in
+ einer sicheren Reihenfolge ausgeführt werden (z.B. darf ein "ALTER
+ TABLE" erst ausgeführt werden, wenn die Tabelle mit "CREATE TABLE"
+ angelegt wurde), diese Reihenfolge aber so flexibel ist, dass man
+ keine Versionsnummern mehr braucht.
+
+ Lx-Office merkt sich dabei, welches der Upgradescripte in
+ sql/Pg-upgrade2 bereits durchgeführt wurde und führt diese nicht
+ erneut aus. Dazu dient die Tabelle "schema_info", die bei der
+ Anmeldung automatisch angelegt wird.
+
-
- Dieser Mechanismus wurde für Lx-Office 2.4.1 deutlich erweitert. Es werden weiterhin alle Scripte aus sql/Pg-upgrade
- ausgeführt. Zusätzlich gibt es aber ein zweites Verzeichnis, sql/Pg-upgrade2. In diesem Verzeichnis muss pro Datenbankupgrade eine
- Datei existieren, die neben den eigentlich auszuführenden SQL- oder Perl-Befehlen einige Kontrollinformationen enthält.
-
+
+ Format der Kontrollinformationen
-
- Neu sind die Kontrollinformationen, die Abhängigkeiten und Prioritäten definieren können werden, sodass Datenbankscripte zwar in
- einer sicheren Reihenfolge ausgeführt werden (z.B. darf ein "ALTER TABLE" erst ausgeführt werden, wenn die Tabelle mit "CREATE TABLE"
- angelegt wurde), diese Reihenfolge aber so flexibel ist, dass man keine Versionsnummern mehr braucht.
-
+ Die Kontrollinformationen sollten sich am Anfang der jeweiligen
+ Upgradedatei befinden. Jede Zeile, die Kontrollinformationen enthält,
+ hat dabei das folgende Format:
-
- Lx-Office merkt sich dabei, welches der Upgradescripte in sql/Pg-upgrade2 bereits durchgeführt wurde und führt diese nicht erneut
- aus. Dazu dient die Tabelle "schema_info", die bei der Anmeldung automatisch angelegt wird.
-
-
+ Für SQL-Upgradedateien:
-
- Format der Kontrollinformationen
+ -- @key: value
-
- Die Kontrollinformationen sollten sich am Anfang der jeweiligen Upgradedatei befinden. Jede Zeile, die Kontrollinformationen enthält,
- hat dabei das folgende Format:
-
+ Für Perl-Upgradedateien:
-
- Für SQL-Upgradedateien:
-
+ # @key: value
- -- @key: value
+ Leerzeichen vor "value" werden
+ entfernt.
-
- Für Perl-Upgradedateien:
-
+ Die folgenden Schlüsselworte werden verarbeitet:
- # @key: value
+
+
+ tag
-
- Leerzeichen vor "value" werden entfernt.
-
+
+ Wird zwingend benötigt. Dies ist der "Name" des Upgrades.
+ Dieser "tag" kann von anderen Kontrolldateien in ihren
+ Abhängigkeiten verwendet werden (Schlüsselwort
+ "depends"). Der "tag" ist auch der Name, der
+ in der Datenbank eingetragen wird.
+
+ Normalerweise sollte die Kontrolldatei genau so heiÃen wie
+ der "tag", nur mit der Endung ".sql" bzw. "pl".
+
+ Ein Tag darf nur aus alphanumerischen Zeichen sowie den
+ Zeichen _ - ( ) bestehen. Insbesondere sind Leerzeichen nicht
+ erlaubt und sollten stattdessen mit Unterstrichen ersetzt
+ werden.
+
+
-
- Die folgenden Schlüsselworte werden verarbeitet:
-
+
+ charset
-
-
- tag
-
-
- Wird zwingend benötigt. Dies ist der "Name" des Upgrades. Dieser "tag" kann von anderen Kontrolldateien in ihren Abhängigkeiten
- verwendet werden (Schlüsselwort "depends"). Der "tag" ist auch der Name, der in der Datenbank eingetragen wird.
-
-
-
- Normalerweise sollte die Kontrolldatei genau so heiÃen wie der "tag", nur mit der Endung ".sql" bzw. "pl".
-
-
-
- Ein Tag darf nur aus alphanumerischen Zeichen sowie den Zeichen _ - ( ) bestehen. Insbesondere sind Leerzeichen nicht erlaubt und
- sollten stattdessen mit Unterstrichen ersetzt werden.
-
-
-
+
+ Empfohlen. Gibt den Zeichensatz an, in dem das Script
+ geschrieben wurde, z.B. "UTF-8". Aus
+ Kompatibilitätsgründen mit alten Upgrade-Scripten wird bei
+ Abwesenheit des Tags der Zeichensatz
+ "ISO-8859-15" angenommen.
+
+
-
- charset
-
-
- Empfohlen. Gibt den Zeichensatz an, in dem das Script geschrieben wurde, z.B. "UTF-8". Aus
- Kompatibilitätsgründen mit alten Upgrade-Scripten wird bei Abwesenheit des Tags der Zeichensatz "ISO-8859-15"
- angenommen.
-
-
-
+
+ description
-
- 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 sein sollte, sollte die Beschreibung auf Deutsch erfolgen.
-
-
-
+
+ Benötigt. Eine Beschreibung, was in diesem Update
+ passiert. Diese wird dem Benutzer beim eigentlichen
+ Datenbankupdate angezeigt. Während der Tag in englisch gehalten
+ sein sollte, sollte die Beschreibung auf Deutsch
+ erfolgen.
+
+
-
- depends
-
-
- Optional. Eine mit Leerzeichen getrennte Liste von "tags", von denen dieses Upgradescript abhängt. Lx-Office stellt sicher, dass
- die in dieser Liste aufgeführten Scripte bereits durchgeführt wurden, bevor dieses Script ausgeführt wird.
-
-
-
- Abhängigkeiten werden rekursiv betrachtet. Wenn also ein Script "b" existiert, das von Ãnderungen in "a" abhängt, und eine neue
- Kontrolldatei für "c" erstellt wird, die von Ãnderungen in "a" und "b" abhängt, so genügt es, in "c" nur den Tag "b" als
- Abhängigkeit zu definieren.
-
-
-
- Es ist nicht erlaubt, sich selbst referenzierende Abhängigkeiten zu definieren (z.B. "a" -> "b",
- "b" -> "c" und "c" -> "a").
-
-
-
+
+ depends
-
- priority
-
-
- Optional. Ein Zahlenwert, der die Reihenfolge bestimmt, in der Scripte ausgeführt werden, die die gleichen Abhängigkeitstiefen
- besitzen. Fehlt dieser Parameter, so wird der Wert 1000 benutzt.
-
-
-
- Dies ist reine Kosmetik. Für echte Reihenfolgen muss "depends" benutzt werden. Lx-Office sortiert die auszuführenden Scripte
- zuerst nach der Abhängigkeitstiefe (wenn "z" von "y" abhängt und "y" von "x", so hat "z" eine Abhängigkeitstiefe von 2, "y" von 1
- und "x" von 0. "x" würde hier zuerst ausgeführt, dann "y", dann "z"), dann nach der Priorität und bei gleicher Priorität
- alphabetisch nach dem "tag".
-
-
-
-
- ignore
-
-
- Optional. Falls der Wert auf 1 (true) steht, wird das Skript bei der Anmeldung ignoriert und entsprechend nicht ausgeführt.
-
-
-
-
-
+
+ Optional. Eine mit Leerzeichen getrennte Liste von "tags",
+ von denen dieses Upgradescript abhängt. Lx-Office stellt sicher,
+ dass die in dieser Liste aufgeführten Scripte bereits
+ durchgeführt wurden, bevor dieses Script ausgeführt wird.
+
+ Abhängigkeiten werden rekursiv betrachtet. Wenn also ein
+ Script "b" existiert, das von Ãnderungen in "a" abhängt, und
+ eine neue Kontrolldatei für "c" erstellt wird, die von
+ Ãnderungen in "a" und "b" abhängt, so genügt es, in "c" nur den
+ Tag "b" als Abhängigkeit zu definieren.
+
+ Es ist nicht erlaubt, sich selbst referenzierende
+ Abhängigkeiten zu definieren (z.B. "a" -> "b", "b" -> "c"
+ und "c" -> "a").
+
+
-
- Hilfsscript dbupgrade2_tool.pl
+
+ priority
-
- Um die Arbeit mit den Abhängigkeiten etwas zu erleichtern, existiert ein Hilfsscript namens
- "scripts/dbupgrade2_tool.pl". Es muss aus dem Lx-Office-ERP-Basisverzeichnis heraus aufgerufen werden. Dieses
- Tool liest alle Datenbankupgradescripte aus dem Verzeichnis sql/Pg-upgrade2 aus. Es benutzt dafür die gleichen
- Methoden wie Lx-Office selber, sodass alle Fehlersituationen von der Kommandozeile überprüft werden können.
-
+
+ Optional. Ein Zahlenwert, der die Reihenfolge bestimmt, in
+ der Scripte ausgeführt werden, die die gleichen
+ Abhängigkeitstiefen besitzen. Fehlt dieser Parameter, so wird
+ der Wert 1000 benutzt.
+
+ Dies ist reine Kosmetik. Für echte Reihenfolgen muss
+ "depends" benutzt werden. Lx-Office sortiert die auszuführenden
+ Scripte zuerst nach der Abhängigkeitstiefe (wenn "z" von "y"
+ abhängt und "y" von "x", so hat "z" eine Abhängigkeitstiefe von
+ 2, "y" von 1 und "x" von 0. "x" würde hier zuerst ausgeführt,
+ dann "y", dann "z"), dann nach der Priorität und bei gleicher
+ Priorität alphabetisch nach dem "tag".
+
+
-
- Wird dem Script kein weiterer Parameter übergeben, so wird nur eine Ãberprüfung der Felder und Abhängigkeiten vorgenommen. Man kann
- sich aber auch Informationen auf verschiedene Art ausgeben lassen:
-
+
+ ignore
-
-
- Listenform: "./scripts/dbupgrade2_tool.pl --list"
+
+ Optional. Falls der Wert auf 1 (true) steht, wird das
+ Skript bei der Anmeldung ignoriert und entsprechend nicht
+ ausgeführt.
+
+
+
+
-
- Gibt eine Liste aller Scripte aus. Die Liste ist in der Reihenfolge sortiert, in der Lx-Office die Scripte ausführen würde. Es
- werden neben der Listenposition der Tag, die Abhängigkeitstiefe und die Priorität ausgegeben.
-
-
+
+ Hilfsscript dbupgrade2_tool.pl
-
- Baumform: "./scripts/dbupgrade2_tool.pl --tree"
+ Um die Arbeit mit den Abhängigkeiten etwas zu erleichtern,
+ existiert ein Hilfsscript namens
+ "scripts/dbupgrade2_tool.pl". Es muss aus dem
+ Lx-Office-ERP-Basisverzeichnis heraus aufgerufen werden. Dieses Tool
+ liest alle Datenbankupgradescripte aus dem Verzeichnis
+ sql/Pg-upgrade2 aus. Es benutzt dafür die
+ gleichen Methoden wie Lx-Office selber, sodass alle Fehlersituationen
+ von der Kommandozeile überprüft werden können.
-
- Listet alle Tags in Baumform basierend auf den Abhängigkeiten auf. Die "Wurzelknoten" sind dabei die Scripte, von denen keine
- anderen abhängen. Die Unterknoten sind Scripte, die beim übergeordneten Script als Abhängigkeit eingetragen sind.
-
-
+ Wird dem Script kein weiterer Parameter übergeben, so wird nur
+ eine Ãberprüfung der Felder und Abhängigkeiten vorgenommen. Man kann
+ sich aber auch Informationen auf verschiedene Art ausgeben
+ lassen:
-
- Umgekehrte Baumform: "./scripts/dbupgrade2_tool.pl --rtree"
+
+
+ Listenform: "./scripts/dbupgrade2_tool.pl
+ --list"
-
- Listet alle Tags in Baumform basierend auf den Abhängigkeiten auf. Die "Wurzelknoten" sind dabei die Scripte mit der geringsten
- Abhängigkeitstiefe. Die Unterknoten sind Scripte, die das übergeordnete Script als Abhängigkeit eingetragen haben.
-
-
+ Gibt eine Liste aller Scripte aus. Die Liste ist in der
+ Reihenfolge sortiert, in der Lx-Office die Scripte ausführen
+ würde. Es werden neben der Listenposition der Tag, die
+ Abhängigkeitstiefe und die Priorität ausgegeben.
+
-
- Baumform mit Postscriptausgabe: "./scripts/dbupgrade2_tool.pl --graphviz"
+
+ Baumform: "./scripts/dbupgrade2_tool.pl
+ --tree"
+
+ Listet alle Tags in Baumform basierend auf den
+ Abhängigkeiten auf. Die "Wurzelknoten" sind dabei die Scripte, von
+ denen keine anderen abhängen. Die Unterknoten sind Scripte, die
+ beim übergeordneten Script als Abhängigkeit eingetragen
+ sind.
+
-
- Benötigt das Tool "graphviz", um mit seiner Hilfe die umgekehrte Baumform in eine Postscriptdatei namens
- "db_dependencies.ps" auszugeben. Dies ist vermutlich die übersichtlichste Form, weil hierbei jeder Knoten nur
- einmal ausgegeben wird. Bei den Textmodusbaumformen hingegen können Knoten und all ihre Abhängigkeiten mehrfach ausgegeben werden.
-
-
+
+ Umgekehrte Baumform: "./scripts/dbupgrade2_tool.pl
+ --rtree"
-
-
- Scripte, von denen kein anderes Script abhängt: "./scripts/dbupgrade2_tool.pl --nodeps"
-
+ Listet alle Tags in Baumform basierend auf den
+ Abhängigkeiten auf. Die "Wurzelknoten" sind dabei die Scripte mit
+ der geringsten Abhängigkeitstiefe. Die Unterknoten sind Scripte,
+ die das übergeordnete Script als Abhängigkeit eingetragen
+ haben.
+
-
- Listet die Tags aller Scripte auf, von denen keine anderen Scripte abhängen.
-
-
-
-
+
+ Baumform mit Postscriptausgabe:
+ "./scripts/dbupgrade2_tool.pl
+ --graphviz"
+
+ Benötigt das Tool "graphviz", um mit
+ seiner Hilfe die umgekehrte
+ Baumform in eine Postscriptdatei namens
+ "db_dependencies.ps" auszugeben. Dies ist
+ vermutlich die übersichtlichste Form, weil hierbei jeder Knoten
+ nur einmal ausgegeben wird. Bei den Textmodusbaumformen hingegen
+ können Knoten und all ihre Abhängigkeiten mehrfach ausgegeben
+ werden.
+
+
+
+ Scripte, von denen kein anderes Script abhängt:
+ "./scripts/dbupgrade2_tool.pl --nodeps"
+
+ Listet die Tags aller Scripte auf, von denen keine anderen
+ Scripte abhängen.
+
+
+
@@ -5201,36 +5435,31 @@ filenames
-
+ Stil-Richtlinien
-
- Die folgenden Regeln haben das Ziel, den Code möglichst gut les- und wartbar zu machen. Dazu gehört zum Einen, dass der Code
- einheitlich eingerückt ist, aber auch, dass Mehrdeutigkeit so weit es geht vermieden wird (Stichworte "Klammern" oder "Hash-Keys").
-
+ Die folgenden Regeln haben das Ziel, den Code möglichst gut les-
+ und wartbar zu machen. Dazu gehört zum Einen, dass der Code einheitlich
+ eingerückt ist, aber auch, dass Mehrdeutigkeit so weit es geht vermieden
+ wird (Stichworte "Klammern" oder "Hash-Keys").
-
- Diese Regeln sind keine Schikane sondern erleichtern allen das Leben!
-
+ Diese Regeln sind keine Schikane sondern erleichtern allen das
+ Leben!
-
- Jeder, der einen Patch schickt, sollte seinen Code vorher überprüfen. Einige der Regeln lassen sich automatisch überprüfen, andere
- nicht.
-
+ Jeder, der einen Patch schickt, sollte seinen Code vorher
+ überprüfen. Einige der Regeln lassen sich automatisch überprüfen, andere
+ nicht.
-
-
- Es werden keine echten Tabs sondern Leerzeichen verwendet.
-
-
+
+ Es werden keine echten Tabs sondern Leerzeichen
+ verwendet.
+
-
-
- Die Einrückung beträgt zwei Leerzeichen. Beispiel:
-
+
+ Die Einrückung beträgt zwei Leerzeichen. Beispiel:
- foreach my $row (@data) {
+ foreach my $row (@data) {
if ($flag) {
# do something with $row
}
@@ -5244,36 +5473,37 @@ filenames
$report->add($row);
}
-
+
-
- Ãffnende geschweifte Klammern befinden sich auf der gleichen Zeile wie der letzte Befehl. Beispiele:
+
+ Ãffnende geschweifte Klammern befinden sich auf der gleichen
+ Zeile wie der letzte Befehl. Beispiele:
- sub debug {
+ sub debug {
...
}
- oder
+ oder
- if ($form->{item_rows} > 0) {
+ if ($form->{item_rows} > 0) {
...
}
-
+
-
-
- SchlieÃende geschweifte Klammern sind so weit eingerückt wie der Befehl / die öffnende schlieÃende Klammer, die den Block gestartet
- hat, und nicht auf der Ebene des Inhalts. Die gleichen Beispiele wie bei 3. gelten.
-
-
+
+ SchlieÃende geschweifte Klammern sind so weit eingerückt wie
+ der Befehl / die öffnende schlieÃende Klammer, die den Block
+ gestartet hat, und nicht auf der Ebene des Inhalts. Die gleichen
+ Beispiele wie bei 3. gelten.
+
-
-
- Die Wörter "else", "elsif", "while" befinden sich auf der gleichen
- Zeile wie schlieÃende geschweifte Klammern. Beispiele:
-
+
+ Die Wörter "else",
+ "elsif", "while" befinden
+ sich auf der gleichen Zeile wie schlieÃende geschweifte Klammern.
+ Beispiele:
- if ($form->{sum} > 1000) {
+ if ($form->{sum} > 1000) {
...
} elsif ($form->{sum} > 0) {
...
@@ -5284,89 +5514,83 @@ filenames
do {
...
} until ($a > 0);
-
+
-
-
- Parameter von Funktionsaufrufen müssen mit runden Klammern versehen werden. Davon nicht betroffen sind interne Perl-Funktionen,
- und grep-ähnliche Operatoren. Beispiel:
-
+
+ Parameter von Funktionsaufrufen müssen mit runden Klammern
+ versehen werden. Davon nicht betroffen sind interne Perl-Funktionen,
+ und grep-ähnliche Operatoren. Beispiel:
- $main::lxdebug->message("Could not find file.");
+ $main::lxdebug->message("Could not find file.");
%options = map { $_ => 1 } grep { !/^#/ } @config_file;
-
+
-
-
- Verschiedene Klammern, Ihre Ausdrücke und Leerzeichen:
-
+
+ Verschiedene Klammern, Ihre Ausdrücke und Leerzeichen:
-
- Generell gilt: Hashkeys und Arrayindices sollten nicht durch Leerzeichen abgesetzt werden. Logische Klammerungen ebensowenig,
- Blöcke schon. Beispiel:
-
+ Generell gilt: Hashkeys und Arrayindices sollten nicht durch
+ Leerzeichen abgesetzt werden. Logische Klammerungen ebensowenig,
+ Blöcke schon. Beispiel:
- if (($form->{debug} == 1) && ($form->{sum} - 100 < 0)) {
+ if (($form->{debug} == 1) && ($form->{sum} - 100 < 0)) {
...
}
$array[$i + 1] = 4;
-$form->{sum} += $form->{"row_$i"};
+$form->{sum} += $form->{"row_$i"};
$form->{ $form->{index} } += 1;
-map { $form->{sum} += $form->{"row_$_"} } 1..$rowcount;
-
+map { $form->{sum} += $form->{"row_$_"} } 1..$rowcount;
+
-
-
- Mehrzeilige Befehle
-
+
+ Mehrzeilige Befehle
-
-
-
- Werden die Parameter eines Funktionsaufrufes auf mehrere Zeilen aufgeteilt, so sollten diese bis zu der Spalte eingerückt
- werden, in der die ersten Funktionsparameter in der ersten Zeile stehen. Beispiel:
-
+
+
+ Werden die Parameter eines Funktionsaufrufes auf mehrere
+ Zeilen aufgeteilt, so sollten diese bis zu der Spalte eingerückt
+ werden, in der die ersten Funktionsparameter in der ersten Zeile
+ stehen. Beispiel:
- $sth = $dbh->prepare("SELECT * FROM some_table WHERE col = ?",
+ $sth = $dbh->prepare("SELECT * FROM some_table WHERE col = ?",
$form->{some_col_value});
-
+
-
-
- Ein Spezialfall ist der ternäre Oprator "?:", der am besten in einer übersichtlichen Tabellenstruktur organisiert
- wird. Beispiel:
-
+
+ Ein Spezialfall ist der ternäre Oprator "?:", der am
+ besten in einer übersichtlichen Tabellenstruktur organisiert
+ wird. Beispiel:
- my $rowcount = $form->{"row_$i"} ? $i
+ my $rowcount = $form->{"row_$i"} ? $i
: $form->{oldcount} ? $form->{oldcount} + 1
: $form->{rowcount} - $form->{rowbase};
-
-
-
+
+
+
-
-
- Kommentare
-
+
+ Kommentare
-
-
- Kommentare, die alleine in einer Zeile stehen, sollten soweit wie der Code eingerückt sein.
-
+
+
+ Kommentare, die alleine in einer Zeile stehen, sollten
+ soweit wie der Code eingerückt sein.
+
-
- Seitliche hängende Kommentare sollten einheitlich formatiert werden.
-
+
+ Seitliche hängende Kommentare sollten einheitlich
+ formatiert werden.
+
-
-
- Sämtliche Kommentare und Sonstiges im Quellcode ist bitte auf Englisch zu verfassen. So wie ich keine Lust habe, französischen
- Quelltext zu lesen, sollte auch der Lx-Office Quelltext für nicht-Deutschsprachige lesbar sein. Beispiel:
-
+
+ Sämtliche Kommentare und Sonstiges im Quellcode ist bitte
+ auf Englisch zu verfassen. So wie ich keine Lust habe,
+ französischen Quelltext zu lesen, sollte auch der Lx-Office
+ Quelltext für nicht-Deutschsprachige lesbar sein.
+ Beispiel:
- my $found = 0;
+ my $found = 0;
while (1) {
last if $found;
@@ -5378,181 +5602,178 @@ $i = 0 # initialize $i
$n = $i; # save $i
$i *= $const; # do something crazy
$i = $n; # recover $i
-
-
-
+
+
+
-
-
- Hashkeys sollten nur in Anführungszeichen stehen, wenn die Interpolation gewünscht ist. Beispiel:
-
+
+ Hashkeys sollten nur in Anführungszeichen stehen, wenn die
+ Interpolation gewünscht ist. Beispiel:
- $form->{sum} = 0;
-$form->{"row_$i"} = $form->{"row_$i"} - 5;
+ $form->{sum} = 0;
+$form->{"row_$i"} = $form->{"row_$i"} - 5;
$some_hash{42} = 54;
-
-
-
-
- Die maximale Zeilenlänge ist nicht beschränkt. Zeilenlängen unterhalb von 79 Zeichen helfen unter bestimmten Bedingungen, aber
- wenn die Lesbarkeit unter kurzen Zeilen leidet (wie zum Biespiel in grossen Tabellen), dann ist Lesbarkeit vorzuziehen.
-
-
-
- Als Beispiel sei die Funktion print_options aus bin/mozilla/io.pl angeführt.
-
-
-
-
-
- Trailing Whitespace, d.h. Leerzeichen am Ende von Zeilen sind unerwünscht. Sie führen zu unnötigen Whitespaceänderungen, die
- diffs verfälschen.
-
-
-
- Emacs und vim haben beide recht einfache Methoden zur Entfernung von trailing whitespace. Emacs kennt das Kommande
- nuke-trailing-whitespace, vim macht das gleiche manuell über :%s/\s\+$//e Mit :au
- BufWritePre * :%s/\s\+$//e wird das an Speichern gebunden.
-
-
+
-
-
- Es wird kein perltidy verwendet.
-
+
+ Die maximale Zeilenlänge ist nicht beschränkt. Zeilenlängen
+ unterhalb von 79 Zeichen helfen unter bestimmten Bedingungen, aber
+ wenn die Lesbarkeit unter kurzen Zeilen leidet (wie zum Biespiel in
+ grossen Tabellen), dann ist Lesbarkeit vorzuziehen.
+
+ Als Beispiel sei die Funktion
+ print_options aus
+ bin/mozilla/io.pl angeführt.
+
-
- In der Vergangenheit wurde versucht, perltidy zu verwenden, um einen einheitlichen Stil zu erlangen. Es hat
- sich aber gezeigt, dass perltidys sehr eigenwilliges Verhalten, was Zeilenumbrüche angeht, oftmals gut
- formatierten Code zerstört. Für den Interessierten sind hier die perltidy-Optionen, die grob den
- beschriebenen Richtlinien entsprechen:
-
+
+ Trailing Whitespace, d.h. Leerzeichen am Ende von Zeilen sind
+ unerwünscht. Sie führen zu unnötigen Whitespaceänderungen, die diffs
+ verfälschen.
+
+ Emacs und vim haben beide recht einfache Methoden zur
+ Entfernung von trailing whitespace. Emacs kennt das Kommande
+ nuke-trailing-whitespace, vim macht das gleiche
+ manuell über :%s/\s\+$//e Mit :au
+ BufWritePre * :%s/\s\+$//e wird das an Speichern
+ gebunden.
+
- -syn -i=2 -nt -pt=2 -sbt=2 -ci=2 -ibc -hsc -noll -nsts -nsfs -asc -dsm
+
+ Es wird kein perltidy verwendet.
+
+ In der Vergangenheit wurde versucht,
+ perltidy zu verwenden, um einen einheitlichen
+ Stil zu erlangen. Es hat sich aber gezeigt, dass
+ perltidys sehr eigenwilliges Verhalten, was
+ Zeilenumbrüche angeht, oftmals gut formatierten Code zerstört. Für
+ den Interessierten sind hier die
+ perltidy-Optionen, die grob den beschriebenen
+ Richtlinien entsprechen:
+
+ -syn -i=2 -nt -pt=2 -sbt=2 -ci=2 -ibc -hsc -noll -nsts -nsfs -asc -dsm
-aws -bbc -bbs -bbb -mbl=1 -nsob -ce -nbl -nsbl -cti=0 -bbt=0 -bar -l=79
-lp -vt=1 -vtc=1
-
-
-
-
- STDERR ist tabu. Unkonditionale Debugmeldungen auch.
-
-
-
- Lx-Office bietet mit dem Modul LXDebug einen brauchbaren Trace-/Debug-Mechanismus. Es gibt also keinen
- Grund, nach STDERR zu schreiben.
-
+
-
- Die LXDebug-Methode "message" nimmt als ersten Paramter auÃerdem eine Flagmaske, für
- die die Meldung angezeigt wird, wobei "0" immer angezeigt wird. Solche Meldungen sollten nicht eingecheckt werden und werden in
- den meisten Fällen auch vom Repository zurückgewiesen.
-
-
+
+ STDERR ist tabu. Unkonditionale
+ Debugmeldungen auch.
+
+ Lx-Office bietet mit dem Modul LXDebug
+ einen brauchbaren Trace-/Debug-Mechanismus. Es gibt also keinen
+ Grund, nach STDERR zu schreiben.
+
+ Die LXDebug-Methode
+ "message" nimmt als ersten Paramter auÃerdem
+ eine Flagmaske, für die die Meldung angezeigt wird, wobei "0" immer
+ angezeigt wird. Solche Meldungen sollten nicht eingecheckt werden
+ und werden in den meisten Fällen auch vom Repository
+ zurückgewiesen.
+
-
-
- Alle neuen Module müssen use strict verwenden.
-
+
+ Alle neuen Module müssen use strict verwenden.
-
- $form, $auth, $locale, $lxdebug und
- %myconfig werden derzeit aus dem main package importiert (siehe . Alle anderen
- Konstrukte sollten lexikalisch lokal gehalten werden.
-
-
+ $form, $auth,
+ $locale, $lxdebug und
+ %myconfig werden derzeit aus dem main package
+ importiert (siehe . Alle anderen
+ Konstrukte sollten lexikalisch lokal gehalten werden.
+
- Dokumentation erstellen
+ Dokumentation erstellen
-
- Einführung
+
+ Einführung
-
- Diese Dokumentation ist in DocBook XML geschrieben. Zum Bearbeiten reicht grundsätzlich ein
- Text-Editor. Mehr Komfort bekommt man, wenn man einen dedizierten XML-fähigen Editor nutzt, der spezielle Unterstützung für
- DocBook mitbringt. Wir empfehlen dafür den XMLmind XML
- Editor, der bei nicht kommerzieller Nutzung kostenlos ist.
-
-
+ Diese Dokumentation ist in DocBook
+ XML geschrieben. Zum Bearbeiten reicht grundsätzlich ein Text-Editor.
+ Mehr Komfort bekommt man, wenn man einen dedizierten XML-fähigen
+ Editor nutzt, der spezielle Unterstützung für
+ DocBook mitbringt. Wir empfehlen dafür den
+ XMLmind XML
+ Editor, der bei nicht kommerzieller Nutzung kostenlos
+ ist.
+
-
- Benötigte Software
+
+ Benötigte Software
-
- Bei DocBook ist Prinzip, dass ausschlieÃlich die XML-Quelldatei bearbeitet wird. Aus dieser werden dann
- mit entsprechenden Stylesheets andere Formate wie PDF oder HTML erzeugt. Bei Lx-Office übernimmt diese Aufgabe das Shell-Script
- scripts/build_doc.sh.
-
+ Bei DocBook ist Prinzip, dass
+ ausschlieÃlich die XML-Quelldatei bearbeitet wird. Aus dieser werden
+ dann mit entsprechenden Stylesheets andere Formate wie PDF oder HTML
+ erzeugt. Bei Lx-Office übernimmt diese Aufgabe das Shell-Script
+ scripts/build_doc.sh.
-
- Das Script benötigt zur Konvertierung verschiedene Softwarekomponenten, die im normalen Lx-Office-Betrieb nicht benötigt werden:
-
+ Das Script benötigt zur Konvertierung verschiedene
+ Softwarekomponenten, die im normalen Lx-Office-Betrieb nicht benötigt
+ werden:
-
-
-
- Java in einer halbwegs aktuellen Version
-
-
+
+
+ Java
+ in einer halbwegs aktuellen Version
+
-
-
- Das Java-Build-System Apache Ant
-
-
+
+ Das Java-Build-System Apache Ant
+
-
-
- Das Dokumentations-System Dobudish für DocBook 4.5, eine Zusammenstellung diverser Stylesheets und
- Grafiken zur Konvertierung von DocBook XML in andere Formate. Das Paket, das benötigt wird, ist zum
- Zeitpunkt der Dokumentationserstellung dobudish-nojre-1.1.4.zip, aus auf code.google.com bereitsteht.
-
-
-
+
+ Das Dokumentations-System Dobudish für
+ DocBook 4.5, eine Zusammenstellung
+ diverser Stylesheets und Grafiken zur Konvertierung von
+ DocBook XML in andere Formate. Das
+ Paket, das benötigt wird, ist zum Zeitpunkt der
+ Dokumentationserstellung
+ dobudish-nojre-1.1.4.zip, aus auf code.google.com
+ bereitsteht.
+
+
-
- Apache Ant sowie ein dazu passendes Java Runtime Environment sind auf allen gängigen Plattformen verfügbar. Beispiel für
- Debian/Ubuntu:
-
+ Apache Ant sowie ein dazu passendes Java Runtime Environment
+ sind auf allen gängigen Plattformen verfügbar. Beispiel für
+ Debian/Ubuntu:
- apt-get install ant openjdk-7-jre
+ apt-get install ant openjdk-7-jre
-
- Nach dem Download von Dobudish muss Dobudish im Unterverzeichnis doc/build entpackt werden. Beispiel unter der
- Annahme, das Dobudish in $HOME/Downloads heruntergeladen wurde:
-
+ Nach dem Download von Dobudish muss Dobudish im Unterverzeichnis
+ doc/build entpackt werden. Beispiel unter der
+ Annahme, das Dobudish in
+ $HOME/Downloads heruntergeladen wurde:
- cd doc/build
+ cd doc/build
unzip $HOME/Downloads/dobudish-nojre-1.1.4.zip
-
+
-
- PDFs und HTML-Seiten erstellen
+
+ PDFs und HTML-Seiten erstellen
-
- Die eigentliche Konvertierung erfolgt nach Installation der benötigten Software mit einem einfachen Aufruf direkt aus dem
- Lx-Office-Installationsverzeichnis heraus:
-
+ Die eigentliche Konvertierung erfolgt nach Installation der
+ benötigten Software mit einem einfachen Aufruf direkt aus dem
+ Lx-Office-Installationsverzeichnis heraus:
- ./scripts/build_doc.sh
-
+ ./scripts/build_doc.sh
+
-
- Einchecken in das Git-Repository
+
+ Einchecken in das Git-Repository
-
- Sowohl die XML-Datei als auch die erzeugten PDF- und HTML-Dateien sind Bestandteil des Git-Repositories. Daraus folgt, dass nach
- Ãnderungen am XML die PDF- und HTML-Dokumente ebenfalls gebaut und alles zusammen in einem Commit eingecheckt werden sollten.
-
+ Sowohl die XML-Datei als auch die erzeugten PDF- und
+ HTML-Dateien sind Bestandteil des Git-Repositories. Daraus folgt, dass
+ nach Ãnderungen am XML die PDF- und HTML-Dokumente ebenfalls gebaut
+ und alles zusammen in einem Commit eingecheckt werden sollten.
-
- Die "dobudish"-Verzeichnisse bzw. symbolischen Links gehören hingegen nicht in das Repository.
-
-
+ Die "dobudish"-Verzeichnisse bzw.
+ symbolischen Links gehören hingegen nicht in das Repository.
+