X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fdokumentation.xml;h=4208d8471f46030e8b79d9c89131ffb36a5f0b16;hb=e380ecfd97aa1282832adacc34c0d5074c4e0791;hp=a2359876936512ce5ea6809c3292bbec4a0d86b6;hpb=55036afce77af5cdd81713edd0f027b6a3bd76d2;p=kivitendo-erp.git diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index a23598769..4208d8471 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -43,7 +43,7 @@ - Ubuntu 10.04 LTS Lucid Lynx bis 12.04 Precise Pangolin + Ubuntu 10.04 LTS Lucid Lynx bis 12.10 Oneiric Ocelot @@ -75,87 +75,58 @@ nicht Bestandteil einer Standard-Perl-Installation sind: - - parent - + parent - - Archive::Zip - + Archive::Zip - - Config::Std - + Config::Std - - DateTime - + DateTime - - DBI - + DBI - - DBD::Pg - + DBD::Pg - - Email::Address - + Email::Address - - JSON - + Email::MIME - - List::MoreUtils - + JSON - - Params::Validate - + List::MoreUtils - - PDF::API2 - + Net::SMTP::SSL (optional, bei E-Mail-Versand über SSL; siehe Abschnitt "") - - Rose::Object - + Net::SSLGlue (optional, bei E-Mail-Versand über TLS; siehe Abschnitt "") - - Rose::DB - + Params::Validate - - Rose::DB::Object - + PDF::API2 - - Template - + Rose::Object - - Text::CSV_XS - + Rose::DB - - Text::Iconv - + Rose::DB::Object - - URI - + Template - - XML::Writer - + Text::CSV_XS - - YAML - + Text::Iconv + + URI + + XML::Writer + + YAML + Seit v2.7.0 sind die folgenden Pakete hinzugekommen: Email::MIME, Net::SMTP::SSL, + Net::SSLGlue. + Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete hinzugekommen, URI und XML::Writer sind notwendig. Ohne startet kivitendo @@ -184,31 +155,27 @@ apt-get install apache2 postgresql libparent-perl libarchive-zip-perl \ libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl \ - libemail-address-perl liblist-moreutils-perl libpdf-api2-perl \ + libemail-address-perl libemail-mime-perl liblist-moreutils-perl libpdf-api2-perl \ 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 libclass-accessor-perl + libparams-validate-perl libjson-perl libclass-accessor-perl \ + libnet-sslglue-perl libnet-smtp-ssl-perl Für Fedora Core benötigen Sie diese Pakete: yum install httpd postgresql-server perl-parent perl-DateTime \ - perl-DBI perl-DBD-Pg perl-Email-Address perl-List-MoreUtils \ + perl-DBI perl-DBD-Pg perl-Email-Address perl-Email-MIME perl-List-MoreUtils \ perl-PDF-API2 perl-Rose-Object perl-Rose-DB perl-Rose-DB-Object \ perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \ - perl-XML-Writer perl-YAML + perl-XML-Writer perl-YAML perl-Net-SSLGlue perl-Net-SMTP-SSL Für OpenSuSE benötigen Sie diese Pakete: zypper install apache2 postgresql-server perl-Archive-Zip \ - perl-DateTime perl-DBI perl-DBD-Pg perl-MailTools perl-List-MoreUtils \ + perl-DateTime perl-DBI perl-DBD-Pg perl-Email-MIME perl-MailTools perl-List-MoreUtils \ perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \ - perl-URI perl-XML-Writer perl-YAML - - Bei openSuSE 11 ist parent bereits enthalten, - und braucht nicht nachinstalliert werden. Die - Rose::* Pakete sind derzeit nicht für SuSE gepackt, - und müssen anderweitig nachinstalliert werden. + perl-URI perl-XML-Writer perl-YAML perl-Net-SSLGlue perl-Net-SMTP-SSL kivitendo enthält ein Script, mit dem überprüft werden kann, ob alle benötigten Perl-Module installiert sind. Der Aufruf lautet wie @@ -303,57 +270,34 @@ tar xvzf kivitendo-erp-2.6.3.tgz entsprechend kommentiert sind: - - authentication - + authentication (siehe Abschnitt "" in diesem Kapitel) - - authentication/database - + authentication/database - - authentication/ldap - + authentication/ldap - - system - + system - - features - + features (siehe Kapitel "") - - paths - + paths - - applications - + applications - - environment - + environment - - print_templates - + mail_delivery (siehe Abschnitt ") - - task_server - + print_templates - - periodic_invoices - + task_server - - console - + periodic_invoices - - debug - + console + + debug Die üblicherweise wichtigsten Parameter, die am Anfang @@ -415,14 +359,17 @@ dbcharset = UTF-8 Zeichensätze/die Verwendung von UTF-8 - kivitendo kann komplett mit UTF-8 als Zeichensatz verwendet - werden. Dabei gibt es zwei Punkte zu beachten: PostgreSQL muss in - Version 8.2 oder neuer benutzt werden, und der - PostgreSQL-Datenbankcluster muss ebenfalls mit UTF-8 als Locale - angelegt worden sein. + Bei aktuellen Serverinstallationen braucht man hier meist nicht + eingreifen + + Dieses kann überprüft werden: ist das Encoding der Datenbank + “template1” “UTF8”, so braucht man nichts weiteres diesbezueglich + unternehmen. Zum Testen: + + su postgres +echo '\l' | psql +exit - Dieses ist kann überprüft werden: ist das Encoding der Datenbank - “template1” “UTF8”, so kann auch kivitendo 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 @@ -460,14 +407,9 @@ dbcharset = UTF-8 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 - Verbindungen immer zuzulassen: - - local all all trust -host all all 127.0.0.1 255.0.0.0 trust - - Besser ist es, für eine bestimmte Datenbank Zugriff nur per - Passwort zuzulassen. Beispielsweise: + werden. Hier gibt es mehrere Möglichkeiten. sinnvoll ist es nur die + nögiten Verbindungen immer zuzulassen, für eine lokal laufenden + Datenbank zum Beispiel: local all kivitendo password host all kivitendo 127.0.0.1 255.255.255.255 password @@ -478,10 +420,14 @@ host all kivitendo 127.0.0.1 255.255.255.255 password In der Datenbank template1 muss die Unterstützung für servergespeicherte Prozeduren eingerichet werden. - Melden Sie sich dafür als Benutzer “postgres” an der Datenbank an, und + Melden Sie sich dafür als Benutzer “postgres” an der Datenbank an: + su - postgres +psql template1 + führen Sie die folgenden Kommandos aus: - create language 'plpgsql'; + create language 'plpgsql'; +\q @@ -492,7 +438,9 @@ host all kivitendo 127.0.0.1 255.255.255.255 password anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen können: - su - postgres createuser -d -P kivitendo + su - postgres +createuser -d -P kivitendo +exit Wenn Sie später einen Datenbankzugriff konfigurieren, verändern Sie den evtl. voreingestellten Benutzer “postgres” auf “kivitendo” bzw. @@ -606,10 +554,9 @@ Alias /kivitendo-erp/ /var/www/kiviteno-erp/ verwendet. - FCGI 0.69 und höher ist extrem strict in der Behandlung von - Unicode, und verweigert bestimmte Eingaben von kivitendo. Falls es - Probleme mit Umlauten in Ihrere Installation gibt, muss auf die - Vorgängerversion FCGI 0.68 ausgewichen werden. + FCGI-Versionen ab 0.69 und bis zu 0.71 inklusive sind extrem strict in der Behandlung von Unicode, und verweigern + bestimmte Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrere Installation gibt, muss zwingend Version 0.68 oder + aber Version 0.72 und neuer eingesetzt werden. Mit CPAN lässt sie sich die Vorgängerversion wie folgt installieren: @@ -1270,6 +1217,91 @@ insserv kivitendo-task-server + + E-Mail-Versand aus kivitendo heraus + + kivitendo kann direkt aus dem Programm heraus E-Mails versenden, z.B. um ein Angebot direkt an einen Kunden zu + verschicken. Damit dies funktioniert, muss eingestellt werden, über welchen Server die E-Mails verschickt werden sollen. kivitendo + unterstützt dabei zwei Mechanismen: Versand über einen lokalen E-Mail-Server (z.B. mit Postfix oder + Exim, was auch die standardmäßig aktive Methode ist) sowie Versand über einen SMTP-Server (z.B. der des + eigenen Internet-Providers). + + Welche Methode und welcher Server verwendet werden, wird über die Konfigurationsdatei config/kivitendo.conf + festgelegt. Dort befinden sich alle Einstellungen zu diesem Thema im Abschnitt '[mail_delivery]'. + + + Versand über lokalen E-Mail-Server + + Diese Methode bietet sich an, wenn auf dem Server, auf dem kivitendo läuft, bereits ein funktionsfähiger E-Mail-Server wie + z.B. Postfix, Exim oder Sendmail läuft. + + Um diese Methode auszuwählen, muss der Konfigurationsparameter 'method = sendmail' gesetzt sein. Dies ist + gleichzeitig der Standardwert, falls er nicht verändert wird. + + Um zu kontrollieren, wie das Programm zum Einliefern gestartet wird, dient der Parameter 'sendmail = + ...'. Der Standardwert verweist auf das Programm /usr/bin/sendmail, das bei allen oben genannten + E-Mail-Serverprodukten für diesen Zweck funktionieren sollte. + + Die Konfiguration des E-Mail-Servers selber würde den Rahmen dieses sprengen. Hierfür sei auf die Dokumentation des + E-Mail-Servers verwiesen. + + + + Versand über einen SMTP-Server + + Diese Methode bietet sich an, wenn kein lokaler E-Mail-Server vorhanden oder zwar einer vorhanden, dieser aber nicht + konfiguriert ist. + + Um diese Methode auszuwählen, muss der Konfigurationsparameter 'method = smtp' gesetzt sein. Die folgenden + Parameter dienen dabei der weiteren Konfiguration: + + + + hostname + + Name oder IP-Adresse des SMTP-Servers. Standardwert: 'localhost' + + + + port + + Portnummer. Der Standardwert hängt von der verwendeten Verschlüsselungsmethode ab. Gilt 'security = + none' oder 'security = tls', so ist 25 die Standardportnummer. Für 'security = + ssl' ist 465 die Portnummer. Muss normalerweise nicht geändert werden. + + + + security + + Wahl der zu verwendenden Verschlüsselung der Verbindung mit dem Server. Standardwert ist + 'none', wodurch keine Verschlüsselung verwendet wird. Mit 'tls' wird TLS-Verschlüsselung + eingeschaltet, und mit 'ssl' wird Verschlüsselung via SSL eingeschaltet. Achtung: Für + 'tls' und 'ssl' werden zusätzliche Perl-Module benötigt (siehe unten). + + + + login und password + + Falls der E-Mail-Server eine Authentifizierung verlangt, so können mit diesen zwei Parametern der Benutzername + und das Passwort angegeben werden. Wird Authentifizierung verwendet, so sollte aus Sicherheitsgründen auch eine Form von + Verschlüsselung aktiviert werden. + + + + Wird Verschlüsselung über TLS oder SSL aktiviert, so werden zusätzliche Perl-Module benötigt. Diese sind: + + + TLS-Verschlüsselung: Modul Net::SSLGlue (Debian-Paketname + libnet-sslglue-perl, Fedora Core: perl-Net-SSLGlue, openSuSE: + perl-Net-SSLGlue + + SSL-Verschlüsselung: Modul Net::SMTP::SSL (Debian-Paketname + libnet-smtp-ssl-perl, Fedora Core: perl-Net-SMTP-SSL, openSuSE: + perl-Net-SMTP-SSL + + + + Drucken mit kivitendo @@ -1401,11 +1433,9 @@ insserv kivitendo-task-server xreflabel="Einführung in die Konfiguration zur EUR"> Einführung - kivitendo besaß bis inklusive Version 2.6.3 einen - Konfigurationsparameter namens eur, der sich in der - Konfigurationsdatei config/lx_office.conf - befand. Somit galt er für alle Mandanten, die in dieser Installation - benutzt wurden. + kivitendo besaß bis inklusive Version 2.6.3 einen Konfigurationsparameter namens eur, der sich in der + Konfigurationsdatei config/kivitendo.conf (damals noch config/lx_office.conf) + befand. 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 @@ -1482,11 +1512,15 @@ insserv kivitendo-task-server ä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. + Standardkonten unter dem neuen Punkt "Einstellungen" (read-only) + angezeigt. Unter System + -> Mandantenkonfiguration können + die Einstellungen auch geändert werden. Dabei ist zu beachten, + dass eine Änderung vorhandene Daten so belässt und damit + evtl. die Ergebnisse verfälscht. Dies gilt vor Allem für die + Warenbuchungsmethode (siehe auch + + Bemerkungen zu Bestandsmethode). @@ -1630,6 +1664,33 @@ insserv kivitendo-task-server + + Einstellungen pro Mandant + + Einige Einstellungen können von einem Benutzer mit dem + Recht "Administration + (Für die Verwaltung der aktuellen Instanz aus einem Userlogin heraus)" + gemacht werden. Diese Einstellungen sind dann für die aktuellen + Mandanten-Datenbank gültig. Die Einstellungen sind + unter System + -> Mandantenkonfiguration erreichbar. + + Bitte beachten Sie die Hinweise zu den einzelnen + Einstellungen. Einige Einstellungen sollten nicht ohne Weiteres + im laufenden Betrieb geändert werden (siehe + auch Bemerkungen zu + Bestandsmethode). + + Die Einstellungen show_bestbefore + und payments_changeable aus dem + Abschnitt features und die Einstellungen im + Abschnitt datev_check (sofern schon vorhanden) + der kivitendo-Konfigurationsdatei + werden bei einem Datenbankupdate einer älteren Version automatisch + übernommen. Diese Einträge können danach aus der Konfigurationsdatei + entfernt werden. + + kivitendo ERP verwenden @@ -2209,6 +2270,14 @@ insserv kivitendo-task-server dem Kürzel das im Dateinamen verwendetet wird. + + + template_meta.tmpfile + + + Datei-Prefix für temporäre Dateien. + + @@ -5417,6 +5486,148 @@ filenames + + Die kivitendo-Test-Suite + + + Einführung + + kivitendo enthält eine Suite für automatisierte Tests. Sie basiert auf dem Standard-Perl-Modul Test::More. + + Die grundlegenden Fakten sind: + + + Alle Tests liegen im Unterverzeichnis t/. + + Ein Script (bzw. ein Test) in f/ enthält einen oder mehrere Testfälle. + + Alle Dateinamen von Tests enden auf .t. Es sind selbstständig ausführbare Perl-Scripte. + + Die Test-Suite besteht aus der Gesamtheit aller Tests, sprich aller Scripte in f/, deren + Dateiname auf .t endet. + + + + + Voraussetzungen + + Für die Ausführung werden neben den für kivitendo eh schon benötigten Module noch weitere Perl-Module benötigt. Diese sind: + + + Test::Deep (Debian-Paketname: libtest-deep-perl; Fedora Core: + perl-Test-Deep; openSuSE: perl-Test-Deep) + + + + + + Existierende Tests ausführen + + + Es gibt mehrere Möglichkeiten zum Ausführen der Tests: entweder, man lässt alle Tests auf einmal ausführen, oder man führt + gezielt einzelne Scripte aus. Für beide Fälle gibt es das Helferscript t/test.sh. + + Will man die komplette Test-Suite ausführen, so muss man einfach nur t/test.sh ohne weitere Parameter aus + dem kivitendo-Basisverzeichnis heraus ausführen. + + Um einzelne Test-Scripte auszuführen, übergibt man deren Namen an t/test.sh. Beispielsweise: + + t/test.sh t/form/format_amount.t t/background_job/known_jobs.t + + + + + + Bedeutung der verschiedenen Test-Scripte + + + Die Test-Suite umfasst Tests sowohl für Funktionen als auch für Programmierstil. Einige besonders zu erwähnende, weil auch + während der Entwicklung nützliche Tests sind: + + + t/001compile.t -- compiliert alle Quelldateien und bricht bei Fehlern sofort ab + t/002goodperl.t -- überprüft alle Perl-Dateien auf Anwesenheit von 'use strict'-Anweisungen + t/003safesys.t -- überprüft Aufrufe von system() und exec() auf Gültigkeit + t/005no_tabs.t -- überprüft, ob Dateien Tab-Zeichen enthalten + t/006spelling.t -- sucht nach häufigen Rechtschreibfehlern + t/011pod.t -- überprüft die Syntax von Dokumentation im POD-Format auf Gültigkeit + + + Weitere Test-Scripte überprüfen primär die Funktionsweise einzelner Funktionen und Module. + + + + + Neue Test-Scripte erstellen + + + Es wird sehr gern gesehen, wenn neue Funktionalität auch gleich mit einem Test-Script abgesichert wird. Auch bestehende + Funktion darf und soll ausdrücklich nachträglich mit Test-Scripten abgesichert werden. + + + + Ideen für neue Test-Scripte, die keine konkreten Funktionen testen + + + Ideen, die abgesehen von Funktions noch nicht umgesetzt wurden: + + + Überprüfung auf fehlende symbolische Links + Suche nach Nicht-ASCII-Zeichen in Perl-Code-Dateien (mit gewissen Einschränkungen wie das Erlauben von deutschen Umlauten) + Test auf DOS-Zeilenenden (\r\n anstelle von nur \n) + Überprüfung auf Leerzeichen am Ende von Zeilen + Test, ob alle zu übersetzenden Strings in locale/de/all vorhanden sind + Test, ob alle Webseiten-Templates in templates/webpages mit vom Perl-Modul Template compiliert werden können + + + + + + Konvention für Verzeichnis- und Dateinamen + + + Es gibt momentan eine wenige Richtlinien, wie Test-Scripte zu benennen sind. Bitte die folgenden Punkte als Richtlinie betrachten und ihnen soweit es geht folgen: + + + Die Dateiendung muss .t lauten. + + Namen sind englisch, komplett klein geschrieben und einzelne Wörter mit Unterstrichten getrennt (beispielsweise + bad_function_params.t). + + Unterverzeichnisse sollten grob nach dem Themenbereich benannt sind, mit dem sich die Scripte darin befassen + (beispielsweise background_jobs für Tests rund um Hintergrund-Jobs). + + Test-Scripte sollten einen überschaubaren Bereich von Funktionalität testen, der logisch zusammenhängend ist + (z.B. nur Tests für eine einzelne Funktion in einem Modul). Lieber mehrere Test-Scripte schreiben. + + + + + + Minimales Skelett für eigene Scripte + + + Der folgenden Programmcode enthält das kleinstmögliche Testscript und kann als Ausgangspunkt für eigene Tests verwendet werden: + + use Test::More tests => 0; + +use lib 't'; + +use Support::TestSetup; + +Support::TestSetup::login(); + + Wird eine vollständig initialisierte kivitendo-Umgebung benötigt (Stichwort: alle globalen Variablen wie + $::auth, $::form oder $::lxdebug), so muss in der Konfigurationsdatei + config/kivitendo.conf im Abschnitt testing.login ein gültiger Login-Name eingetragen + sein. Dieser wird für die Datenbankverbindung benötigt. + + Wir keine vollständig initialisierte Umgebung benötigt, so kann die letzte Zeile Support::TestSetup::login(); + weggelassen werden, was die Ausführungszeit des Scripts leicht verringert. + + + + Stil-Richtlinien