X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fdokumentation.xml;h=1c5f93ca785b7ffd1eaa451ed2afb524965975f6;hb=f87f36c6232fb2c8ff1fa81f205948c1a097192b;hp=79f7d50c0ea185dc56ac91ef4e185ccdd4ecf889;hpb=6066c7698557d03576f92c1c6bada6e74157e232;p=kivitendo-erp.git diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index 79f7d50c0..1c5f93ca7 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -2,7 +2,7 @@ - kivitendo: Installation, Konfiguration, Entwicklung + kivitendo 3.0.0: Installation, Konfiguration, Entwicklung Aktuelle Hinweise @@ -140,6 +140,8 @@ FCGI (nicht Versionen 0.68 bis 0.71 inklusive; siehe ) + File::Copy::Recursive + JSON List::MoreUtils @@ -211,7 +213,7 @@ librose-db-perl librose-object-perl libsort-naturally-perl \ libstring-shellquote-perl libtemplate-perl libtext-csv-xs-perl \ libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \ - postgresql + libfile-copy-recursive-perl postgresql @@ -221,7 +223,7 @@ yum install httpd perl-Archive-Zip perl-Clone perl-DBD-Pg \ perl-DBI perl-DateTime perl-Email-Address perl-Email-MIME perl-FCGI \ - perl-JSON perl-List-MoreUtils perl-Net-SMTP-SSL perl-Net-SSLGlue \ + perl-File-Copy-Recursive perl-JSON perl-List-MoreUtils perl-Net-SMTP-SSL perl-Net-SSLGlue \ perl-PDF-API2 perl-Params-Validate perl-Rose-DB perl-Rose-DB-Object \ perl-Rose-Object perl-Sort-Naturally perl-String-ShellQuote \ perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \ @@ -242,7 +244,7 @@ cpan Config::Std zypper install apache2 perl-Archive-Zip perl-Clone \ perl-Config-Std perl-DBD-Pg perl-DBI perl-DateTime perl-Email-Address \ - perl-Email-MIME perl-FastCGI perl-JSON perl-List-MoreUtils \ + perl-Email-MIME perl-FastCGI perl-File-Copy-Recursive perl-JSON perl-List-MoreUtils \ perl-Net-SMTP-SSL perl-Net-SSLGlue perl-PDF-API2 perl-Params-Validate \ perl-Sort-Naturally perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \ perl-URI perl-XML-Writer perl-YAML postgresql-server @@ -260,11 +262,11 @@ cpan Rose::Db::Object xreflabel="Manuelle Installation des Programmpaketes"> Manuelle Installation des Programmpaketes - Die kivitendo ERP Installationsdatei (kivitendo-erp-2.6.3.tgz) wird im Dokumentenverzeichnis des Webservers + Die kivitendo ERP Installationsdatei (kivitendo-erp-3.0.0.tgz) wird im Dokumentenverzeichnis des Webservers (z.B. /var/www/html/, /srv/www/htdocs oder /var/www/) entpackt: cd /var/www -tar xvzf kivitendo-erp-2.6.3.tgz +tar xvzf kivitendo-erp-3.0.0.tgz Wechseln Sie in das entpackte Verzeichnis: @@ -389,12 +391,13 @@ dbcharset = UTF-8 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 kivitendo bei der - Datenbank anmeldet, die dem Benutzer zugewiesen ist. + kivitendo bringt eine eigene Komponente zur zeitgesteuerten Ausführung bestimmter Aufgaben mit, den Taskserver. Er wird u.a. für Features wie die wiederkehrenden Rechnungen benötigt, erledigt aber auch andere erforderliche Aufgaben + und muss daher in Betrieb genommen werden. Der Taskserver benötigt zwei Konfigurationseinstellungen, die unter + [task_server] anzugeben sind: ein Mandant (entweder der Mandantenname oder eine Datenbank-ID, Variable + client), aus dem die Datenbankkonfiguration entnommen wird, sowie ein Login (Variable login) + eines Benutzers, der für gewisse Dinge wie die Rechnungserstellung als Verkäufer eingetragen wird. Für Entwickler finden sich unter [debug] wichtige Funktionen, um die Fehlersuche zu erleichtern. @@ -538,7 +541,7 @@ exit wird: AddHandler cgi-script .pl -Alias /kivitendo-erp/ /var/www/kiviteno-erp/ +Alias /kivitendo-erp/ /var/www/kivitendo-erp/ <Directory /var/www/kivitendo-erp> Options ExecCGI Includes FollowSymlinks @@ -676,7 +679,7 @@ Alias /url/for/kivitendo-erp/ /path/to/kivitendo-erp/ Deny from All </DirectoryMatch> - Seit mod_fcgid-Version 2.6.3 gelten sehr kleine Grenzen für + Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für die maximale Größe eines Requests. Diese sollte wie folgt hochgesetzt werden: @@ -728,12 +731,9 @@ Alias /url/for/kivitendo-erp-fcgid/ /path/to/kivitendo-erp/ Der Task-Server - Der Task-Server ist ein Prozess, der im Hintergrund läuft, in - regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese zu - festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser Prozess - wird bisher nur für die Erzeugung der wiederkehrenden Rechnungen - benutzt, wird aber in Zukunft deutlich mehr Aufgaben übertragen - bekommen. + Der Task-Server ist ein Prozess, der im Hintergrund läuft, in regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und + diese zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser Prozess wird u.a. für die Erzeugung der wiederkehrenden + Rechnungen und weitere essenzielle Aufgaben benutzt. Verfügbare und notwendige Konfigurationsoptionen @@ -744,14 +744,25 @@ Alias /url/for/kivitendo-erp-fcgid/ /path/to/kivitendo-erp/ + + client + + + Name oder Datenbank-ID eines vorhandenen kivitendo-Mandanten, der benutzt wird, um die zu verwendende + Datenbankverbindung auszulesen. Der Mandant muss in der Administration angelegt werden. Diese Option muss angegeben + werden. + + Diese Option kam mit Release v3.x.0 hinzu und muss daher in Konfigurationen, die von älteren Versionen aktualisiert + wurden, ergänzt werden. + + + login - gültiger kivitendo-Benutzername, der benutzt wird, um die - zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss - in der Administration angelegt werden. Diese Option muss - angegeben werden. + gültiger kivitendo-Benutzername, der z.B. als Verkäufer beim Erzeugen wiederkehrender Rechnungen benötigt wird. Der + Benutzer muss in der Administration angelegt werden. Diese Option muss angegeben werden. @@ -902,13 +913,11 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ Task-Server mit mehreren Mandanten - Beim Task-Server wird der Login-Name des Benutzers, unter dem der - Task-Server laufen soll, in die Konfigurationsdatei geschrieben. Hat - man mehrere Mandanten muß man auch mehrere Konfigurationsdateien - anlegen. + Beim Task-Server werden der zu verwendende Mandant und Login-Name des Benutzers, unter dem der Task-Server laufen soll, in die + Konfigurationsdatei geschrieben. Hat man mehrere Mandanten, muss man auch mehrere Konfigurationsdateien anlegen. - Die Konfigurationsdatei ist eine Kopie der Datei kivitendo.conf, - wo in der Kategorie [task_server] der gewünschte "login" steht. + Die Konfigurationsdatei ist eine Kopie der Datei kivitendo.conf, wo in der Kategorie [task_server] die + gewünschten Werte für client und login eingetragen werden. Der alternative Task-Server wird dann mit folgendem Befehl gestartet: @@ -1141,19 +1150,18 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ der folgenden URL erreichbar sein sollte: http://localhost/kivitendo-erp/admin.pl + url="http://localhost/kivitendo-erp/controller.pl?action=Admin/login">http://localhost/kivitendo-erp/controller.pl?action=Admin/login - Benutzer- und Gruppenverwaltung + Mandanten-, Benutzer- und Gruppenverwaltung - Nach der Installation müssen Benutzer, Gruppen und Datenbanken - angelegt werden. Dieses geschieht im Administrationsmenü, das Sie unter - folgender URL finden: + Nach der Installation müssen Mandanten, Benutzer, Gruppen und Datenbanken angelegt werden. Dieses geschieht im + Administrationsmenü, das Sie unter folgender URL finden: http://localhost/kivitendo-erp/admin.pl + url="http://localhost/kivitendo-erp/controller.pl?action=Admin/login">http://localhost/kivitendo-erp/controller.pl?action=Admin/login Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei config/kivitendo.conf eingetragen haben. @@ -1161,6 +1169,23 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ Zusammenhänge + kivitendo verwaltet zwei Sets von Daten, die je nach Einrichtung in einer oder zwei Datenbanken gespeichert werden. + + Das erste Set besteht aus Anmeldeinformationen: welche Benutzer und Mandanten gibt es, welche Gruppen, welche BenutzerIn hat + Zugriff auf welche Mandanten, und welche Gruppe verfügt über welche Rechte. Diese Informationen werden in der + Authentifizierungsdatenbank gespeichert. Dies ist diejenige Datenbank, deren Verbindungsparameter in der Konfigurationsdatei + config/kivitendo.conf gespeichert werden. + + Das zweite Set besteht aus den eigentlichen Verkehrsdaten eines Mandanten: Stammdaten (Kunden, Lieferanten, Waren), Belege + (Angebote, Liferscheine, Rechnungen), Einstellungen. Diese werden in einer Mandantendatenbank gespeichert. Die + Verbindungsinformationen einer solchen Mandantendatenbank werden im Administrationsbereich konfiguriert, indem man einen Mandanten + anlegt und dort die Parameter einträgt. Dabei hat jeder Mandant eine eigene Datenbank. + + Aufgrund des Datenbankdesigns ist es für einfache Fälle möglich, die Authentifizierungsdatenbank und eine der + Mandantendatenbanken in ein und derselben Datenbank zu speichern. Arbeitet man hingegen mit mehr als einem Mandanten, wird + empfohlen, für die Authentifizierungsdatenbank eine eigene Datenbank zu verwenden, die nicht gleichzeitig für einen Mandanten + verwendet wird. + kivitendo verwendet eine Datenbank zum Speichern all seiner Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um mit kivitendo arbeiten zu können, muss eine Person einen @@ -1169,30 +1194,29 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ möglich und normal, dass mehreren Benutzern die selbe Datenbank zugewiesen wird, sodass sie alle mit den selben Daten arbeiten können. + - Die Basisdaten der Benutzer, die in der Administration - eingegeben werden können, werden in einer zweiten Datenbank - gespeichert, der bereits erwähnten Authentifizierungsdatenbank. Diese - ist also den Produktivdaten enthaltenden Datenbanken vorgeschaltet. - Pro kivitendo-Installation gibt es nur eine - Authentifizierungsdatenbank, aber beliebig viele Datenbanken mit - Firmendaten. - - kivitendo kann seinen Benutzern Zugriff auf bestimmte - Funktionsbereiche erlauben oder verbieten. Wird der Zugriff nicht - gestattet, so werden der entsprechenden Menüpunkte auch nicht - angezeigt. Diese Rechte werden ebenfalls in der - Authentifizierungsdatenbank gespeichert. - - Um Rechte verteilen zu können, verwendet kivitendo ein - Gruppen-Prinzip. Einer Gruppe kann der Zugriff auf bestimmte Bereiche - erlaubt werden. Ein Benutzer wiederum kann Mitglied in einer oder - mehrerer Gruppen sein. Der Benutzer hat Zugriff auf alle diejenigen - Funktionen, die mindestens einer Gruppe erlaubt sind, in der der - Benutzer Mitglied ist. - - Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und - Benutzer angelegt werden sollten, lautet: + + Mandanten, Benutzer und Gruppen + + kivitendos Administration kennt Mandanten, Benutzer und Gruppen, die sich frei zueinander zuordnen lassen. + + kivitendo kann mehrere Mandaten aus einer Installation heraus verwalten. Welcher Mandant benutzt wird, kann direkt beim Login + ausgewählt werden. Für jeden Mandanten wird ein eindeutiger Name vergeben, der beim Login angezeigt wird. Weiterhin benötigt der + Mandant Datenbankverbindungsparameter für seine Mandantendatenbank. Diese sollte über die Datenbankverwaltung geschehen. + + Ein Benutzer ist eine Person, die Zugriff auf kivitendo erhalten soll. Sie erhält einen Loginnamen sowie ein + Passwort. Weiterhin legt der Administrator fest, an welchen Mandanten sich ein Benutzer anmelden kann, was beim Login verifiziert + wird. + + Gruppen dienen dazu, Benutzern innerhalb eines Mandanten Zugriff auf bestimmte Funktionen zu geben. Einer Gruppe werden dafür + vom Administrator gewisse Rechte zugeordnet. Weiterhin legt der Administrator fest, für welche Mandanten eine Gruppe gilt, und + welche Benutzer Mitglieder in dieser Gruppe sind. Meldet sich ein Benutzer dann an einem Mandanten an, so erhält er alle Rechte von + allen denjenigen Gruppen, die zum Einen dem Mandanten zugeordnet sind und in denen der Benutzer zum Anderen Mitglied ist, + + Die Reihenfolge, in der Datenbanken, Mandanten, Gruppen und Benutzer angelegt werden, kann im Prinzip beliebig gewählt + werden. Die folgende Reihenfolge beinhaltet die wenigsten Arbeitsschritte: @@ -1204,11 +1228,11 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ - Benutzer anlegen + Benutzer anlegen und Gruppen als Mitglied zuordnen - Benutzer den Gruppen zuordnen + Mandanten anlegen und Gruppen sowie Benutzer zuweisen @@ -1239,72 +1263,45 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ Anlegen können Sie die verschiedenen Bereiche wählen, auf die Mitglieder dieser Gruppe Zugriff haben sollen. - Benutzergruppen sind unabhängig von Datenbanken, da sie in der - Authentifizierungsdatenbank gespeichert werden. Sie gelten für alle - Datenbanken, die in dieser Installation verwaltet werden. + Benutzergruppen werden zwar in der Authentifizierungsdatenbank gespeichert, gelten aber nicht automatisch für alle + Mandanten. Der Administrator legt vielmehr fest, für welche Mandanten eine Gruppe gültig ist. Dies kann entweder beim Bearbeiten der + Gruppe geschehen ("diese Gruppe ist gültig für Mandanten X, Y und Z"), oder aber wenn man einen Mandanten bearbeitet ("für diesen + Mandanten sind die Gruppen A, B und C gültig"). + + Wurden bereits Benutzer angelegt, so können hier die Mitglieder dieser Gruppe festgelegt werden ("in dieser Gruppe sind die + Benutzer X, Y und Z Mitglieder"). Dies kann auch nachträglich beim Bearbeiten eines Benutzers geschehen ("dieser Benutzer ist + Mitglied in den Gruppen A, B und C"). Benutzer anlegen - Beim Anlegen von Benutzern werden für viele Parameter - Standardeinstellungen vorgenommen, die den Gepflogenheiten des - deutschen Raumes entsprechen. + Beim Anlegen von Benutzern werden für viele Parameter Standardeinstellungen vorgenommen, die den Gepflogenheiten des deutschen + Raumes entsprechen. - Zwingend anzugeben sind der Loginname sowie die komplette - Datenbankkonfiguration. Wenn die Passwortauthentifizierung über die - Datenbank eingestellt ist, so kann hier auch das Benutzerpasswort - gesetzt bzw. geändert werden. Ist hingegen die LDAP-Authentifizierung - aktiv, so ist das Passwort-Feld deaktiviert. + Zwingend anzugeben ist der Loginname. Wenn die Passwortauthentifizierung über die Datenbank eingestellt ist, so kann hier auch + das Benutzerpasswort gesetzt bzw. geändert werden. Ist hingegen die LDAP-Authentifizierung aktiv, so ist das Passwort-Feld + deaktiviert. - In der Datenbankkonfiguration müssen die Zugriffsdaten einer der - eben angelegten Datenbanken eingetragen werden. + Hat man bereits Mandanten und Gruppen angelegt, so kann hier auch konfiguriert werden, auf welche Mandanten der Benutzer + Zugriff hat bzw. in welchen Gruppen er Mitglied ist. Beide Zuweisungen können sowohl beim Benutzer vorgenommen werden ("dieser + Benutzer hat Zugriff auf Mandanten X, Y, Z" bzw. "dieser Benutzer ist Mitglied in Gruppen X, Y und Z") als auch beim Mandanten ("auf + diesen Mandanten haben Benutzer A, B und C Zugriff") bzw. bei der Gruppe ("in dieser Gruppe sind Benutzer A, B und C + Mitglieder"). - - Gruppenmitgliedschaften verwalten - - Nach dem Anlegen von Benutzern und Gruppen müssen Benutzer den - Gruppen zugewiesen werden. Dazu gibt es zwei Möglichkeiten: + + Mandanten anlegen - - - In der Gruppenverwaltung wählt man eine Gruppe aus. Im - folgenden Dialog kann man dann einzeln die Benutzer der Gruppe - hinzufügen. - - - - In der Gruppenverwaltung wählt man das Tool zur Verwaltung - 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. - - - + Ein Mandant besteht aus Administrationssicht primär aus einem eindeutigen Namen. Weiterhin wird hier hinterlegt, welche + Datenbank als Mandantendatenbank benutzt wird. Hier müssen die Zugriffsdaten einer der eben angelegten Datenbanken eingetragen + werden. - - Migration alter Installationen - - Wenn kivitendo 2.6.3 über eine ältere Version installiert wird, - in der die Benutzerdaten noch im Dateisystem im Verzeichnis - users verwaltet wurden, so bietet kivitendo die - Möglichkeit, diese Benutzerdaten automatisch in die - Authentifizierungsdatenbank zu übernehmen. Dies geschieht, wenn man - sich nach dem Update der Installation das erste Mal im - Administrationsbereich anmeldet. Findet kivitendo die Datei - users/members, so wird der Migrationsprozess - gestartet. - - Der Migrationsprozess ist nahezu vollautomatisch. Alle - Benutzerdaten können übernommen werden. Nach den Benutzerdaten bietet - kivitendo noch die Möglichkeit an, dass automatisch eine - Benutzergruppe angelegt wird. Dieser Gruppe wird Zugriff auf alle - Funktionen von kivitendo gewährt. Alle migrierten Benutzern werden - Mitglied in dieser Gruppe. Damit wird das Verhalten von kivitendo bis - Version 2.4.3 inklusive wiederhergestellt, und die Benutzer können - sich sofort wieder anmelden und mit dem System arbeiten. + Hat man bereits Benutzer und Gruppen angelegt, so kann hier auch konfiguriert werden, welche Benutzer Zugriff auf den + Mandanten haben bzw. welche Gruppen für den Mandanten gültig sind. Beide Zuweisungen können sowohl beim Mandanten vorgenommen werden + ("auf diesen Mandanten haben Benutzer X, Y und Z Zugriff" bzw. "für diesen Mandanten sind die Gruppen X, Y und Z gültig") als auch + beim Benutzer ("dieser Benutzer hat Zugriff auf Mandanten A, B und C") bzw. bei der Gruppe ("diese Gruppe ist für Mandanten A, B und + C gültig"). @@ -1717,6 +1714,23 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ Python-UNO-Bindings benötigt, die Bestandteil von OpenOffice 2 sind. + + + Für die Verbindung zu OpenOffice wird normalerweise der Python-Interpreter /usr/bin/python benutzt. Sollte + dies nicht der richtige sein, so kann man mit zwei Konfigurationsvariablen entscheiden, welcher Python-Interpreter genutzt + wird. Mit der Option python_uno aus dem Abschnitt applications wird der Interpreter selber + festgelegt; sie steht standardmäßig auf dem eben erwähnten Wert /usr/bin/python. + + + + Zusätzlich ist es möglich, Pfade anzugeben, in denen Python neben seinen normalen Suchpfaden ebenfalls nach Modulen gesucht wird, + z.B. falls sich diese in einem gesonderten OpenOffice-Verzeichnis befinden. Diese zweite Variable heißt + python_uno_path und befindet sich im Abschnitt environment. Sie ist standardmäßig + leer. Werden hier mehrere Pfade angegeben, so müssen diese durch Doppelpunkte voneinander getrennt werden. Der Inhalt wird an den + Python-Interpreter über die Umgebungsvariable PYTHONPATH übergeben. + + + Ist $openofficeorg_daemon nicht gesetzt, so wird für jedes Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe eines Makros durchgeführt. Dieses Makro muss in der @@ -2024,7 +2038,7 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ Die Administrationsseite erreichen Sie unter: http://localhost/kivitendo-erp/admin.pl + url="http://localhost/kivitendo-erp/controller.pl?action=Admin/login">http://localhost/kivitendo-erp/controller.pl?action=Admin/login @@ -2153,6 +2167,82 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ [periodic_invoices]. + + Spezielle Variablen + + + Um die erzeugten Rechnungen individualisieren zu können, werden beim Umwandeln des Auftrags in eine Rechnung einige speziell + formatierte Variablen durch für die jeweils aktuelle Abrechnungsperiode gültigen Werte ersetzt. Damit ist es möglich, z.B. den + Abrechnungszeitraum explizit auszuweisen. Eine Variable hat dabei die Syntax <%variablenname%>. + + + + Diese Variablen werden in den folgenden Elementen des Auftrags ersetzt: + + + + Bemerkungen + Interne Bemerkungen + Vorgangsbezeichnung + In den Beschreibungs- und Langtextfeldern aller Positionen + + + Die zur Verfügung stehenden Variablen sind die Folgenden: + + + + <%current_quarter%>, <%previous_quarter%>, <%next_quarter%> + + + + Aktuelles, vorheriges und nächstes Quartal als Zahl zwischen 1 und 4. + + + + + + <%current_month%>, <%previous_month%>, <%next_month%> + + + + Aktueller, vorheriger und nächster Monat als Zahl zwischen 1 und 12. + + + + + + <%current_month_long%>, <%previous_month_long%>, <%next_month_long%> + + + + Aktueller, vorheriger und nächster Monat als Name (Januar, Februar etc.). + + + + + + <%current_year%>, <%previous_year%>, <%next_year%> + + + + Aktuelles, vorheriges und nächstes Jahr als vierstellige Jahreszahl (2013 etc.). + + + + + + <%period_start_date%>, <%period_end_date%> + + + + Formatiertes Datum des ersten und letzten Tages im Abrechnungszeitraum (z.B. bei quartalsweiser Abrechnung und im ersten + Quartal von 2013 wären dies der 01.01.2013 und 31.03.2013). + + + + + + Auflisten @@ -2671,6 +2761,22 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/ + + c_vendor_id + + + Lieferantennummer beim Kunden (nur Kunden) + + + + + v_customer_id + + + Kundennummer beim Lieferanten (nur Lieferanten) + + + cp_email @@ -4993,7 +5099,7 @@ Beschreibung: <%description%> überwiegend die Daten, die sich unter Programm -> Einstellungen befinden, bzw. die Informationen über den Benutzer die über die - Administrator-Schnittstelle (admin.pl) eingegeben wurden. + Administrator-Schnittstelle eingegeben wurden. @@ -5082,6 +5188,10 @@ $main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{ vom aktuellen User abhängen wird das Objekt aus Geschwindigkeitsgründen nur einmal angelegt und dann nach jedem Request kurz resettet. + + Dieses Objekt kapselt auch den gerade aktiven Mandanten. Dessen Einstellungen können über + $::auth->client abgefragt werden; Rückgabewert ist ein Hash mit den Werten aus der Tabelle + auth.clients. @@ -5459,11 +5569,10 @@ file = /tmp/kivitendo-debug.log 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. + 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 für SQL-Upgradedateien der Zeichensatz + "ISO-8859-15" angenommen. Perl-Upgradescripte hingegen müssen immer in UTF-8 encodiert sein und sollten + demnach auch ein "use utf8;" enthalten. @@ -5531,6 +5640,48 @@ file = /tmp/kivitendo-debug.log + + Format von in Perl geschriebenen Datenbankupgradescripten + + In Perl geschriebene Datenbankscripte werden nicht einfach so ausgeführt sondern müssen sich an gewisse Konventionen + halten. Dafür bekommen sie aber auch einige Komfortfunktionen bereitgestellt. + + Ein Upgradescript stellt dabei eine vollständige Objektklasse dar, die vom Elternobjekt + "SL::DBUpgrade2::Base" erben und eine Funktion namens "run" zur Verfügung stellen muss. Das + Script wird ausgeführt, indem eine Instanz dieser Klasse erzeugt und darauf die erwähnte "run" aufgerufen + wird. + + Zu beachten ist, dass sich der Paketname der Datei aus dem Wert für "@tag" ableitet. Dabei werden alle + Zeichen, die in Paketnamen ungültig wären (gerade Bindestriche), durch Unterstriche ersetzt. Insgesamt sieht der Paketname wie folgt + aus: "SL::DBUpgrade2::tag". + + Welche Komfortfunktionen zur Verfügung stehen, erfahren Sie in der Perl-Dokumentation zum oben genannten Modul; aufzurufen mit + "perldoc SL/DBUpgrade2/Base.pm". + + Ein Mindestgerüst eines gültigen Perl-Upgradescriptes sieht wie folgt aus: + + # @tag: beispiel-upgrade-file42 +# @description: Ein schönes Beispielscript +# @depends: release_3_0_0 +package SL::DBUpgrade2::beispiel_upgrade_file42; + +use strict; +use utf8; + +use parent qw(SL::DBUpgrade2::Base); + +sub run { + my ($self) = @_; + + # hier Aktionen ausführen + + return 1; +} + +1; + + + Hilfsscript dbupgrade2_tool.pl @@ -5849,6 +6000,10 @@ filenames Test::Deep (Debian-Paketname: libtest-deep-perl; Fedora Core: perl-Test-Deep; openSUSE: perl-Test-Deep) + Test::Exception (Debian-Paketname: libtest-exception-perl; Fedora Core: + perl-Test-Exception; openSUSE: perl-Test-Exception) + Test::Output (Debian-Paketname: libtest-output-perl; Fedora Core: + perl-Test-Output; openSUSE: perl-Test-Output) Test::Harness 3.0.0 oder höher. Dieses Modul ist ab Perl 5.10.1 Bestandteil der Perl-Distribution und kann für frühere Versionen aus dem CPAN bezogen werden.