Revision 6066c769
Von Moritz Bunkus vor fast 12 Jahren hinzugefügt
doc/dokumentation.xml | ||
---|---|---|
80 | 80 |
<para>Debian</para> |
81 | 81 |
<itemizedlist> |
82 | 82 |
<listitem> |
83 |
<para>6.0 Squeeze (hier muss allerdings das Modul FCGI in der Version >= 0.72 compiled werden)</para>
|
|
83 |
<para>6.0 "Squeeze" (hier muss allerdings das Modul FCGI in der Version >= 0.72 compiled werden)</para>
|
|
84 | 84 |
</listitem> |
85 | 85 |
<listitem> |
86 |
<para>7.0 Wheezy</para>
|
|
86 |
<para>7.0 "Wheezy"</para>
|
|
87 | 87 |
</listitem> |
88 | 88 |
</itemizedlist> |
89 | 89 |
</listitem> |
90 | 90 |
|
91 | 91 |
<listitem> |
92 |
<para>Ubuntu 10.04 LTS Lucid Lynx bis 12.10 Oneiric Ocelot</para>
|
|
92 |
<para>Ubuntu 10.04 LTS "Lucid Lynx", 12.04 LTS "Precise Pangolin" und 12.10 "Oneiric Ocelot"`</para>
|
|
93 | 93 |
</listitem> |
94 | 94 |
|
95 | 95 |
<listitem> |
96 |
<para>openSUSE 11.2 und 11.3</para>
|
|
96 |
<para>openSUSE 12.1 und 12.2</para>
|
|
97 | 97 |
</listitem> |
98 | 98 |
|
99 | 99 |
<listitem> |
... | ... | |
101 | 101 |
</listitem> |
102 | 102 |
|
103 | 103 |
<listitem> |
104 |
<para>Fedora 13 bis 16</para>
|
|
104 |
<para>Fedora 16 und 17</para>
|
|
105 | 105 |
</listitem> |
106 | 106 |
</itemizedlist> |
107 | 107 |
</sect2> |
108 | 108 |
|
109 | 109 |
<sect2 id="Pakete" xreflabel="Pakete"> |
110 |
<title>Pakete</title>
|
|
110 |
<title>Benötigte Perl-Pakete installieren</title>
|
|
111 | 111 |
|
112 | 112 |
<para>Zum Betrieb von kivitendo werden zwingend ein Webserver (meist |
113 | 113 |
Apache) und ein Datenbankserver (PostgreSQL, mindestens v8.2) |
114 | 114 |
benötigt.</para> |
115 | 115 |
|
116 |
<para>Zusätzlich benötigt kivitendo die folgenden Perl-Pakete, die |
|
117 |
nicht Bestandteil einer Standard-Perl-Installation sind:</para> |
|
116 |
<para>Zusätzlich benötigt kivitendo einige Perl-Pakete, die nicht Bestandteil einer Standard-Perl-Installation sind. Um zu |
|
117 |
überprüfen, ob die erforderlichen Pakete installiert und aktuell genug sind, wird ein Script mitgeliefert, das wie folgt aufgerufen |
|
118 |
wird:</para> |
|
119 |
|
|
120 |
<programlisting>./scripts/installation_check.pl</programlisting> |
|
121 |
|
|
122 |
<para>Die vollständige Liste der benötigten Perl-Module lautet:</para> |
|
118 | 123 |
|
119 | 124 |
<itemizedlist> |
120 | 125 |
<listitem><para><literal>parent</literal> (nur bei Perl vor 5.10.1)</para></listitem> |
... | ... | |
133 | 138 |
|
134 | 139 |
<listitem><para><literal>Email::MIME</literal></para></listitem> |
135 | 140 |
|
141 |
<listitem><para><literal>FCGI</literal> (nicht Versionen 0.68 bis 0.71 inklusive; siehe <xref linkend="Apache-Konfiguration.FCGI.WebserverUndPlugin"/>)</para></listitem> |
|
142 |
|
|
136 | 143 |
<listitem><para><literal>JSON</literal></para></listitem> |
137 | 144 |
|
138 | 145 |
<listitem><para><literal>List::MoreUtils</literal></para></listitem> |
... | ... | |
190 | 197 |
empfohlen diese Module zusammen mit den anderen als Bibliotheken zu |
191 | 198 |
installieren.</para> |
192 | 199 |
|
193 |
<para>Die zu installierenden Pakete können in den verschiedenen |
|
194 |
Distributionen unterschiedlich heißen.</para> |
|
195 |
|
|
196 |
<para>Für Debian oder Ubuntu benötigen Sie diese Pakete:</para> |
|
200 |
<sect3> |
|
201 |
<title>Debian und Ubuntu</title> |
|
202 |
|
|
203 |
<para>Alle benötigten Perl-Pakete stehen für Debian und Ubuntu als Debian-Pakete zur Verfügung. Sie können mit folgendem Befehl |
|
204 |
installiert werden:</para> |
|
205 |
|
|
206 |
<programlisting>apt-get install apache2 libarchive-zip-perl libclone-perl \ |
|
207 |
libconfig-std-perl libdatetime-perl libdbd-pg-perl libdbi-perl \ |
|
208 |
libemail-address-perl libemail-mime-perl libfcgi-perl libjson-perl \ |
|
209 |
liblist-moreutils-perl libnet-smtp-ssl-perl libnet-sslglue-perl \ |
|
210 |
libparams-validate-perl libpdf-api2-perl librose-db-object-perl \ |
|
211 |
librose-db-perl librose-object-perl libsort-naturally-perl \ |
|
212 |
libstring-shellquote-perl libtemplate-perl libtext-csv-xs-perl \ |
|
213 |
libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \ |
|
214 |
postgresql</programlisting> |
|
215 |
</sect3> |
|
197 | 216 |
|
198 |
<programlisting>apt-get install apache2 postgresql libarchive-zip-perl \ |
|
199 |
libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl \ |
|
200 |
libemail-address-perl libemail-mime-perl liblist-moreutils-perl libpdf-api2-perl \ |
|
201 |
librose-object-perl librose-db-perl librose-db-object-perl \ |
|
202 |
libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl \ |
|
203 |
libxml-writer-perl libyaml-perl libconfig-std-perl \ |
|
204 |
libparams-validate-perl libjson-perl libclass-accessor-perl \ |
|
205 |
libnet-sslglue-perl libnet-smtp-ssl-perl</programlisting> |
|
217 |
<sect3> |
|
218 |
<title>Fedora Core</title> |
|
206 | 219 |
|
207 |
<para>Für Fedora Core benötigen Sie diese Pakete:</para>
|
|
220 |
<para>Für Fedora Core stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installeirt werden:</para>
|
|
208 | 221 |
|
209 |
<programlisting>yum install httpd postgresql-server perl-parent perl-DateTime \ |
|
210 |
perl-DBI perl-DBD-Pg perl-Email-Address perl-Email-MIME perl-List-MoreUtils \ |
|
211 |
perl-PDF-API2 perl-Rose-Object perl-Rose-DB perl-Rose-DB-Object \ |
|
222 |
<programlisting>yum install httpd perl-Archive-Zip perl-Clone perl-DBD-Pg \ |
|
223 |
perl-DBI perl-DateTime perl-Email-Address perl-Email-MIME perl-FCGI \ |
|
224 |
perl-JSON perl-List-MoreUtils perl-Net-SMTP-SSL perl-Net-SSLGlue \ |
|
225 |
perl-PDF-API2 perl-Params-Validate perl-Rose-DB perl-Rose-DB-Object \ |
|
226 |
perl-Rose-Object perl-Sort-Naturally perl-String-ShellQuote \ |
|
212 | 227 |
perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \ |
213 |
perl-XML-Writer perl-YAML perl-Net-SSLGlue perl-Net-SMTP-SSL</programlisting>
|
|
228 |
perl-XML-Writer perl-YAML perl-parent postgresql-server</programlisting>
|
|
214 | 229 |
|
215 |
<para>Für OpenSuSE benötigen Sie diese Pakete:</para>
|
|
230 |
<para>Zusätzlich müssen einige Pakete aus dem CPAN installiert werden. Dazu können Sie die folgenden Befehle nutzen:</para>
|
|
216 | 231 |
|
217 |
<programlisting>zypper install apache2 postgresql-server perl-Archive-Zip \ |
|
218 |
perl-DateTime perl-DBI perl-DBD-Pg perl-Email-MIME perl-MailTools perl-List-MoreUtils \ |
|
219 |
perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \ |
|
220 |
perl-URI perl-XML-Writer perl-YAML perl-Net-SSLGlue perl-Net-SMTP-SSL</programlisting> |
|
232 |
<programlisting>yum install perl-CPAN |
|
233 |
cpan Config::Std</programlisting> |
|
221 | 234 |
|
222 |
<para>kivitendo enthält ein Script, mit dem überprüft werden kann, ob |
|
223 |
alle benötigten Perl-Module installiert sind. Der Aufruf lautet wie |
|
224 |
folgt:</para> |
|
235 |
</sect3> |
|
225 | 236 |
|
226 |
<programlisting>./scripts/installation_check.pl</programlisting> |
|
237 |
<sect3> |
|
238 |
<title>openSUSE</title> |
|
239 |
|
|
240 |
<para>Für openSUSE stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl |
|
241 |
installiert werden:</para> |
|
242 |
|
|
243 |
<programlisting>zypper install apache2 perl-Archive-Zip perl-Clone \ |
|
244 |
perl-Config-Std perl-DBD-Pg perl-DBI perl-DateTime perl-Email-Address \ |
|
245 |
perl-Email-MIME perl-FastCGI perl-JSON perl-List-MoreUtils \ |
|
246 |
perl-Net-SMTP-SSL perl-Net-SSLGlue perl-PDF-API2 perl-Params-Validate \ |
|
247 |
perl-Sort-Naturally perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \ |
|
248 |
perl-URI perl-XML-Writer perl-YAML postgresql-server</programlisting> |
|
249 |
|
|
250 |
<para>Zusätzlich müssen einige Pakete aus dem CPAN installiert werden. Dazu können Sie die folgenden Befehle nutzen:</para> |
|
251 |
|
|
252 |
<programlisting>yum install perl-CPAN |
|
253 |
cpan Rose::Db::Object</programlisting> |
|
254 |
|
|
255 |
</sect3> |
|
227 | 256 |
</sect2> |
228 | 257 |
</sect1> |
229 | 258 |
|
... | ... | |
231 | 260 |
xreflabel="Manuelle Installation des Programmpaketes"> |
232 | 261 |
<title>Manuelle Installation des Programmpaketes</title> |
233 | 262 |
|
234 |
<para>Die kivitendo ERP Installationsdatei (kivitendo-erp-2.6.3.tgz) wird |
|
235 |
im Dokumentenverzeichnis des Webservers (z.B. |
|
236 |
<filename>/var/www/html/</filename>, |
|
237 |
<filename>/srv/www/htdocs</filename> oder |
|
238 |
<filename>/var/www/</filename>) entpackt:</para> |
|
263 |
<para>Die kivitendo ERP Installationsdatei (<filename>kivitendo-erp-2.6.3.tgz</filename>) wird im Dokumentenverzeichnis des Webservers |
|
264 |
(z.B. <filename>/var/www/html/</filename>, <filename>/srv/www/htdocs</filename> oder <filename>/var/www/</filename>) entpackt:</para> |
|
239 | 265 |
|
240 | 266 |
<programlisting>cd /var/www |
241 | 267 |
tar xvzf kivitendo-erp-2.6.3.tgz</programlisting> |
... | ... | |
251 | 277 |
<para>Die Verzeichnisse <filename>users</filename>, <filename>spool</filename> und <filename>webdav</filename> müssen für den Benutzer |
252 | 278 |
beschreibbar sein, unter dem der Webserver läuft. Die restlichen Dateien müssen für diesen Benutzer lesbar sein. Die Benutzer- und |
253 | 279 |
Gruppennamen sind bei verschiedenen Distributionen unterschiedlich (z.B. bei Debian/Ubuntu <constant>www-data</constant>, bei Fedora |
254 |
core <constant>apache</constant> oder bei OpenSuSE <constant>wwwrun</constant>).</para>
|
|
280 |
core <constant>apache</constant> oder bei OpenSUSE <constant>wwwrun</constant>).</para>
|
|
255 | 281 |
|
256 | 282 |
<para>Der folgende Befehl ändert den Besitzer für die oben genannten |
257 | 283 |
Verzeichnisse auf einem Debian/Ubuntu-System:</para> |
... | ... | |
768 | 794 |
anstelle eines symbolischen Links verwendet werden können.</para> |
769 | 795 |
|
770 | 796 |
<sect3> |
771 |
<title>SystemV-basierende Systeme (z.B. Debian, ältere OpenSuSE, ältere Fedora Core)</title>
|
|
797 |
<title>SystemV-basierende Systeme (z.B. Debian, ältere OpenSUSE, ältere Fedora Core)</title>
|
|
772 | 798 |
|
773 | 799 |
<para>Kopieren Sie die Datei |
774 | 800 |
<filename>scripts/boot/system-v/kivitendo-server</filename> |
... | ... | |
787 | 813 |
</listitem> |
788 | 814 |
|
789 | 815 |
<listitem> |
790 |
<para>Ältere OpenSuSE und ältere Fedora Core:</para>
|
|
816 |
<para>Ältere OpenSUSE und ältere Fedora Core:</para>
|
|
791 | 817 |
|
792 | 818 |
<programlisting>chkconfig --add kivitendo-task-server</programlisting> |
793 | 819 |
</listitem> |
... | ... | |
815 | 841 |
</sect3> |
816 | 842 |
|
817 | 843 |
<sect3> |
818 |
<title>systemd-basierende Systeme (z.B. neure OpenSuSE, neuere Fedora Core)</title>
|
|
844 |
<title>systemd-basierende Systeme (z.B. neure OpenSUSE, neuere Fedora Core)</title>
|
|
819 | 845 |
|
820 | 846 |
<para>Verlinken Sie die Datei <filename>scripts/boot/systemd/kivitendo-task-server.service</filename> nach |
821 | 847 |
<filename>/etc/systemd/system/</filename>. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile |
... | ... | |
1357 | 1383 |
|
1358 | 1384 |
<itemizedlist> |
1359 | 1385 |
<listitem><para>TLS-Verschlüsselung: Modul <literal>Net::SSLGlue</literal> (Debian-Paketname |
1360 |
<literal>libnet-sslglue-perl</literal>, Fedora Core: <literal>perl-Net-SSLGlue</literal>, openSuSE:
|
|
1386 |
<literal>libnet-sslglue-perl</literal>, Fedora Core: <literal>perl-Net-SSLGlue</literal>, openSUSE:
|
|
1361 | 1387 |
<literal>perl-Net-SSLGlue</literal></para></listitem> |
1362 | 1388 |
|
1363 | 1389 |
<listitem><para>SSL-Verschlüsselung: Modul <literal>Net::SMTP::SSL</literal> (Debian-Paketname |
1364 |
<literal>libnet-smtp-ssl-perl</literal>, Fedora Core: <literal>perl-Net-SMTP-SSL</literal>, openSuSE:
|
|
1390 |
<literal>libnet-smtp-ssl-perl</literal>, Fedora Core: <literal>perl-Net-SMTP-SSL</literal>, openSUSE:
|
|
1365 | 1391 |
<literal>perl-Net-SMTP-SSL</literal></para></listitem> |
1366 | 1392 |
</itemizedlist> |
1367 | 1393 |
</sect2> |
... | ... | |
5822 | 5848 |
|
5823 | 5849 |
<itemizedlist> |
5824 | 5850 |
<listitem><para><literal>Test::Deep</literal> (Debian-Paketname: <literal>libtest-deep-perl</literal>; Fedora Core: |
5825 |
<literal>perl-Test-Deep</literal>; openSuSE: <literal>perl-Test-Deep</literal>)</para></listitem>
|
|
5851 |
<literal>perl-Test-Deep</literal>; openSUSE: <literal>perl-Test-Deep</literal>)</para></listitem>
|
|
5826 | 5852 |
<listitem><para><literal>Test::Harness</literal> 3.0.0 oder höher. Dieses Modul ist ab Perl 5.10.1 Bestandteil der |
5827 | 5853 |
Perl-Distribution und kann für frühere Versionen aus dem <ulink url="http://www.cpan.org">CPAN</ulink> bezogen |
5828 | 5854 |
werden.</para></listitem> |
doc/html/ch02s02.html | ||
---|---|---|
6 | 6 |
bei der Auswahl der Pakete aber darauf Rücksicht genommen, dass es |
7 | 7 |
ohne große Probleme auf den derzeit aktuellen verbreiteten |
8 | 8 |
Distributionen läuft.</p><p>Mitte 2012 sind das folgende Systeme, von denen bekannt ist, |
9 |
dass kivitendo auf ihnen läuft:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Debian</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>6.0 Squeeze (hier muss allerdings das Modul FCGI in der Version >= 0.72 compiled werden)</p></li><li class="listitem"><p>7.0 Wheezy</p></li></ul></div></li><li class="listitem"><p>Ubuntu 10.04 LTS Lucid Lynx bis 12.10 Oneiric Ocelot</p></li><li class="listitem"><p>openSUSE 11.2 und 11.3</p></li><li class="listitem"><p>SuSE Linux Enterprice Server 11</p></li><li class="listitem"><p>Fedora 13 bis 16</p></li></ul></div></div><div class="sect2" title="2.2.2. Pakete"><div class="titlepage"><div><div><h3 class="title"><a name="Pakete"></a>2.2.2. Pakete</h3></div></div></div><p>Zum Betrieb von kivitendo werden zwingend ein Webserver (meist
|
|
9 |
dass kivitendo auf ihnen läuft:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Debian</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>6.0 "Squeeze" (hier muss allerdings das Modul FCGI in der Version >= 0.72 compiled werden)</p></li><li class="listitem"><p>7.0 "Wheezy"</p></li></ul></div></li><li class="listitem"><p>Ubuntu 10.04 LTS "Lucid Lynx", 12.04 LTS "Precise Pangolin" und 12.10 "Oneiric Ocelot"`</p></li><li class="listitem"><p>openSUSE 12.1 und 12.2</p></li><li class="listitem"><p>SuSE Linux Enterprice Server 11</p></li><li class="listitem"><p>Fedora 16 und 17</p></li></ul></div></div><div class="sect2" title="2.2.2. Benötigte Perl-Pakete installieren"><div class="titlepage"><div><div><h3 class="title"><a name="Pakete"></a>2.2.2. Benötigte Perl-Pakete installieren</h3></div></div></div><p>Zum Betrieb von kivitendo werden zwingend ein Webserver (meist
|
|
10 | 10 |
Apache) und ein Datenbankserver (PostgreSQL, mindestens v8.2) |
11 |
benötigt.</p><p>Zusätzlich benötigt kivitendo die folgenden Perl-Pakete, die |
|
12 |
nicht Bestandteil einer Standard-Perl-Installation sind:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> |
|
11 |
benötigt.</p><p>Zusätzlich benötigt kivitendo einige Perl-Pakete, die nicht Bestandteil einer Standard-Perl-Installation sind. Um zu |
|
12 |
überprüfen, ob die erforderlichen Pakete installiert und aktuell genug sind, wird ein Script mitgeliefert, das wie folgt aufgerufen |
|
13 |
wird:</p><pre class="programlisting">./scripts/installation_check.pl</pre><p>Die vollständige Liste der benötigten Perl-Module lautet:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> |
|
13 | 14 |
<code class="literal">parent</code> (nur bei Perl vor 5.10.1)</p></li><li class="listitem"><p> |
14 | 15 |
<code class="literal">Archive::Zip</code> |
15 | 16 |
</p></li><li class="listitem"><p> |
... | ... | |
25 | 26 |
</p></li><li class="listitem"><p> |
26 | 27 |
<code class="literal">Email::MIME</code> |
27 | 28 |
</p></li><li class="listitem"><p> |
29 |
<code class="literal">FCGI</code> (nicht Versionen 0.68 bis 0.71 inklusive; siehe <a class="xref" href="ch02s06.html#Apache-Konfiguration.FCGI.WebserverUndPlugin" title="2.6.2.3. Getestete Kombinationen aus Webservern und Plugin">Abschnitt 2.6.2.3, „Getestete Kombinationen aus Webservern und Plugin“</a>)</p></li><li class="listitem"><p> |
|
28 | 30 |
<code class="literal">JSON</code> |
29 | 31 |
</p></li><li class="listitem"><p> |
30 | 32 |
<code class="literal">List::MoreUtils</code> |
... | ... | |
67 | 69 |
sind auch in 2.6.1 weiterhin mit ausgeliefert, wurden in einer |
68 | 70 |
zukünftigen Version aber aus dem Paket entfernt werden. Es wird |
69 | 71 |
empfohlen diese Module zusammen mit den anderen als Bibliotheken zu |
70 |
installieren.</p><p>Die zu installierenden Pakete können in den verschiedenen |
|
71 |
Distributionen unterschiedlich heißen.</p><p>Für Debian oder Ubuntu benötigen Sie diese Pakete:</p><pre class="programlisting">apt-get install apache2 postgresql libarchive-zip-perl \ |
|
72 |
libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl \ |
|
73 |
libemail-address-perl libemail-mime-perl liblist-moreutils-perl libpdf-api2-perl \ |
|
74 |
librose-object-perl librose-db-perl librose-db-object-perl \ |
|
75 |
libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl \ |
|
76 |
libxml-writer-perl libyaml-perl libconfig-std-perl \ |
|
77 |
libparams-validate-perl libjson-perl libclass-accessor-perl \ |
|
78 |
libnet-sslglue-perl libnet-smtp-ssl-perl</pre><p>Für Fedora Core benötigen Sie diese Pakete:</p><pre class="programlisting">yum install httpd postgresql-server perl-parent perl-DateTime \ |
|
79 |
perl-DBI perl-DBD-Pg perl-Email-Address perl-Email-MIME perl-List-MoreUtils \ |
|
80 |
perl-PDF-API2 perl-Rose-Object perl-Rose-DB perl-Rose-DB-Object \ |
|
72 |
installieren.</p><div class="sect3" title="2.2.2.1. Debian und Ubuntu"><div class="titlepage"><div><div><h4 class="title"><a name="d0e326"></a>2.2.2.1. Debian und Ubuntu</h4></div></div></div><p>Alle benötigten Perl-Pakete stehen für Debian und Ubuntu als Debian-Pakete zur Verfügung. Sie können mit folgendem Befehl |
|
73 |
installiert werden:</p><pre class="programlisting">apt-get install apache2 libarchive-zip-perl libclone-perl \ |
|
74 |
libconfig-std-perl libdatetime-perl libdbd-pg-perl libdbi-perl \ |
|
75 |
libemail-address-perl libemail-mime-perl libfcgi-perl libjson-perl \ |
|
76 |
liblist-moreutils-perl libnet-smtp-ssl-perl libnet-sslglue-perl \ |
|
77 |
libparams-validate-perl libpdf-api2-perl librose-db-object-perl \ |
|
78 |
librose-db-perl librose-object-perl libsort-naturally-perl \ |
|
79 |
libstring-shellquote-perl libtemplate-perl libtext-csv-xs-perl \ |
|
80 |
libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \ |
|
81 |
postgresql</pre></div><div class="sect3" title="2.2.2.2. Fedora Core"><div class="titlepage"><div><div><h4 class="title"><a name="d0e333"></a>2.2.2.2. Fedora Core</h4></div></div></div><p>Für Fedora Core stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installeirt werden:</p><pre class="programlisting">yum install httpd perl-Archive-Zip perl-Clone perl-DBD-Pg \ |
|
82 |
perl-DBI perl-DateTime perl-Email-Address perl-Email-MIME perl-FCGI \ |
|
83 |
perl-JSON perl-List-MoreUtils perl-Net-SMTP-SSL perl-Net-SSLGlue \ |
|
84 |
perl-PDF-API2 perl-Params-Validate perl-Rose-DB perl-Rose-DB-Object \ |
|
85 |
perl-Rose-Object perl-Sort-Naturally perl-String-ShellQuote \ |
|
81 | 86 |
perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \ |
82 |
perl-XML-Writer perl-YAML perl-Net-SSLGlue perl-Net-SMTP-SSL</pre><p>Für OpenSuSE benötigen Sie diese Pakete:</p><pre class="programlisting">zypper install apache2 postgresql-server perl-Archive-Zip \ |
|
83 |
perl-DateTime perl-DBI perl-DBD-Pg perl-Email-MIME perl-MailTools perl-List-MoreUtils \ |
|
84 |
perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \ |
|
85 |
perl-URI perl-XML-Writer perl-YAML perl-Net-SSLGlue perl-Net-SMTP-SSL</pre><p>kivitendo enthält ein Script, mit dem überprüft werden kann, ob |
|
86 |
alle benötigten Perl-Module installiert sind. Der Aufruf lautet wie |
|
87 |
folgt:</p><pre class="programlisting">./scripts/installation_check.pl</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Zurück</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">Kapitel 2. Installation und Grundkonfiguration </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 2.3. Manuelle Installation des Programmpaketes</td></tr></table></div></body></html> |
|
87 |
perl-XML-Writer perl-YAML perl-parent postgresql-server</pre><p>Zusätzlich müssen einige Pakete aus dem CPAN installiert werden. Dazu können Sie die folgenden Befehle nutzen:</p><pre class="programlisting">yum install perl-CPAN |
|
88 |
cpan Config::Std</pre></div><div class="sect3" title="2.2.2.3. openSUSE"><div class="titlepage"><div><div><h4 class="title"><a name="d0e344"></a>2.2.2.3. openSUSE</h4></div></div></div><p>Für openSUSE stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl |
|
89 |
installiert werden:</p><pre class="programlisting">zypper install apache2 perl-Archive-Zip perl-Clone \ |
|
90 |
perl-Config-Std perl-DBD-Pg perl-DBI perl-DateTime perl-Email-Address \ |
|
91 |
perl-Email-MIME perl-FastCGI perl-JSON perl-List-MoreUtils \ |
|
92 |
perl-Net-SMTP-SSL perl-Net-SSLGlue perl-PDF-API2 perl-Params-Validate \ |
|
93 |
perl-Sort-Naturally perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \ |
|
94 |
perl-URI perl-XML-Writer perl-YAML postgresql-server</pre><p>Zusätzlich müssen einige Pakete aus dem CPAN installiert werden. Dazu können Sie die folgenden Befehle nutzen:</p><pre class="programlisting">yum install perl-CPAN |
|
95 |
cpan Rose::Db::Object</pre></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Zurück</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">Kapitel 2. Installation und Grundkonfiguration </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 2.3. Manuelle Installation des Programmpaketes</td></tr></table></div></body></html> |
doc/html/ch02s03.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>2.3. Manuelle Installation des Programmpaketes</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s02.html" title="2.2. Benötigte Software und Pakete"><link rel="next" href="ch02s04.html" title="2.4. kivitendo-Konfigurationsdatei"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.3. Manuelle Installation des Programmpaketes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s02.html">Zurück</a> </td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right"> <a accesskey="n" href="ch02s04.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.3. Manuelle Installation des Programmpaketes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Manuelle-Installation-des-Programmpaketes"></a>2.3. Manuelle Installation des Programmpaketes</h2></div></div></div><p>Die kivitendo ERP Installationsdatei (kivitendo-erp-2.6.3.tgz) wird |
|
4 |
im Dokumentenverzeichnis des Webservers (z.B. |
|
5 |
<code class="filename">/var/www/html/</code>, |
|
6 |
<code class="filename">/srv/www/htdocs</code> oder |
|
7 |
<code class="filename">/var/www/</code>) entpackt:</p><pre class="programlisting">cd /var/www |
|
3 |
<title>2.3. Manuelle Installation des Programmpaketes</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s02.html" title="2.2. Benötigte Software und Pakete"><link rel="next" href="ch02s04.html" title="2.4. kivitendo-Konfigurationsdatei"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.3. Manuelle Installation des Programmpaketes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s02.html">Zurück</a> </td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right"> <a accesskey="n" href="ch02s04.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.3. Manuelle Installation des Programmpaketes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Manuelle-Installation-des-Programmpaketes"></a>2.3. Manuelle Installation des Programmpaketes</h2></div></div></div><p>Die kivitendo ERP Installationsdatei (<code class="filename">kivitendo-erp-2.6.3.tgz</code>) wird im Dokumentenverzeichnis des Webservers |
|
4 |
(z.B. <code class="filename">/var/www/html/</code>, <code class="filename">/srv/www/htdocs</code> oder <code class="filename">/var/www/</code>) entpackt:</p><pre class="programlisting">cd /var/www |
|
8 | 5 |
tar xvzf kivitendo-erp-2.6.3.tgz</pre><p>Wechseln Sie in das entpackte Verzeichnis:</p><pre class="programlisting">cd kivitendo-erp</pre><p>Alternativ können Sie auch einen Alias in der |
9 | 6 |
Webserverkonfiguration benutzen, um auf das tatsächliche |
10 | 7 |
Installationsverzeichnis zu verweisen.</p><p>Die Verzeichnisse <code class="filename">users</code>, <code class="filename">spool</code> und <code class="filename">webdav</code> müssen für den Benutzer |
11 | 8 |
beschreibbar sein, unter dem der Webserver läuft. Die restlichen Dateien müssen für diesen Benutzer lesbar sein. Die Benutzer- und |
12 | 9 |
Gruppennamen sind bei verschiedenen Distributionen unterschiedlich (z.B. bei Debian/Ubuntu <code class="constant">www-data</code>, bei Fedora |
13 |
core <code class="constant">apache</code> oder bei OpenSuSE <code class="constant">wwwrun</code>).</p><p>Der folgende Befehl ändert den Besitzer für die oben genannten
|
|
10 |
core <code class="constant">apache</code> oder bei OpenSUSE <code class="constant">wwwrun</code>).</p><p>Der folgende Befehl ändert den Besitzer für die oben genannten
|
|
14 | 11 |
Verzeichnisse auf einem Debian/Ubuntu-System:</p><pre class="programlisting">chown -R www-data users spool webdav</pre><p>Weiterhin muss der Webserver-Benutzer in den Verzeichnissen <code class="filename">templates</code> und <code class="filename">users</code> |
15 | 12 |
Unterverzeichnisse für jeden neuen Benutzer anlegen dürfen, der in kivitendo angelegt wird:</p><pre class="programlisting">chown www-data templates users</pre></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s02.html">Zurück</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s04.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.2. Benötigte Software und Pakete </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 2.4. kivitendo-Konfigurationsdatei</td></tr></table></div></body></html> |
doc/html/ch02s06.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>2.6. Webserver-Konfiguration</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s05.html" title="2.5. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s07.html" title="2.7. Der Task-Server"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.6. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s05.html">Zurück</a> </td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right"> <a accesskey="n" href="ch02s07.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.6. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.6. Webserver-Konfiguration</h2></div></div></div><div class="sect2" title="2.6.1. Grundkonfiguration mittels CGI"><div class="titlepage"><div><div><h3 class="title"><a name="d0e652"></a>2.6.1. Grundkonfiguration mittels CGI</h3></div></div></div><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>Für einen deutlichen Performanceschub sorgt die Ausführung
|
|
3 |
<title>2.6. Webserver-Konfiguration</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s05.html" title="2.5. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s07.html" title="2.7. Der Task-Server"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.6. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s05.html">Zurück</a> </td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right"> <a accesskey="n" href="ch02s07.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.6. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.6. Webserver-Konfiguration</h2></div></div></div><div class="sect2" title="2.6.1. Grundkonfiguration mittels CGI"><div class="titlepage"><div><div><h3 class="title"><a name="d0e678"></a>2.6.1. Grundkonfiguration mittels CGI</h3></div></div></div><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>Für einen deutlichen Performanceschub sorgt die Ausführung
|
|
4 | 4 |
mittels FastCGI/FCGI. Die Einrichtung wird ausführlich im Abschnitt |
5 | 5 |
<a class="xref" href="ch02s06.html#Apache-Konfiguration.FCGI" title="2.6.2. Konfiguration für FastCGI/FCGI">Konfiguration für FastCGI/FCGI</a> beschrieben.</p></td></tr></table></div><p>Der Zugriff auf das Programmverzeichnis muss in der Apache |
6 | 6 |
Webserverkonfigurationsdatei <code class="literal">httpd.conf</code> eingestellt |
doc/html/ch02s07.html | ||
---|---|---|
29 | 29 |
Links aus einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess |
30 | 30 |
einzubinden. Da das bei neueren Linux-Distributionen aber nicht |
31 | 31 |
zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die |
32 |
anstelle eines symbolischen Links verwendet werden können.</p><div class="sect3" title="2.7.2.1. SystemV-basierende Systeme (z.B. Debian, ältere OpenSuSE, ältere Fedora Core)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e839"></a>2.7.2.1. SystemV-basierende Systeme (z.B. Debian, ältere OpenSuSE, ältere Fedora Core)</h4></div></div></div><p>Kopieren Sie die Datei
|
|
32 |
anstelle eines symbolischen Links verwendet werden können.</p><div class="sect3" title="2.7.2.1. SystemV-basierende Systeme (z.B. Debian, ältere OpenSUSE, ältere Fedora Core)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e865"></a>2.7.2.1. SystemV-basierende Systeme (z.B. Debian, ältere OpenSUSE, ältere Fedora Core)</h4></div></div></div><p>Kopieren Sie die Datei
|
|
33 | 33 |
<code class="filename">scripts/boot/system-v/kivitendo-server</code> |
34 | 34 |
nach <code class="filename">/etc/init.d/kivitendo-server</code>. Passen |
35 | 35 |
Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile |
36 | 36 |
<code class="literal">DAEMON=....</code>). Binden Sie das Script in den |
37 | 37 |
Boot-Prozess ein. Dies ist distributionsabhängig:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Debian-basierende Systeme:</p><pre class="programlisting">update-rc.d kivitendo-task-server defaults |
38 | 38 |
# Nur bei Debian Squeeze und neuer: |
39 |
insserv kivitendo-task-server</pre></li><li class="listitem"><p>Ältere OpenSuSE und ältere Fedora Core:</p><pre class="programlisting">chkconfig --add kivitendo-task-server</pre></li></ul></div><p>Danach kann der Task-Server mit dem folgenden Befehl gestartet
|
|
40 |
werden:</p><pre class="programlisting">/etc/init.d/kivitendo-task-server start</pre></div><div class="sect3" title="2.7.2.2. Upstart-basierende Systeme (z.B. Ubuntu)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e868"></a>2.7.2.2. Upstart-basierende Systeme (z.B. Ubuntu)</h4></div></div></div><p>Kopieren Sie die Datei
|
|
39 |
insserv kivitendo-task-server</pre></li><li class="listitem"><p>Ältere OpenSUSE und ältere Fedora Core:</p><pre class="programlisting">chkconfig --add kivitendo-task-server</pre></li></ul></div><p>Danach kann der Task-Server mit dem folgenden Befehl gestartet
|
|
40 |
werden:</p><pre class="programlisting">/etc/init.d/kivitendo-task-server start</pre></div><div class="sect3" title="2.7.2.2. Upstart-basierende Systeme (z.B. Ubuntu)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e894"></a>2.7.2.2. Upstart-basierende Systeme (z.B. Ubuntu)</h4></div></div></div><p>Kopieren Sie die Datei
|
|
41 | 41 |
<code class="filename">scripts/boot/upstart/kivitendo-task-server.conf</code> |
42 | 42 |
nach <code class="filename">/etc/init/kivitendo-task-server.conf</code>. |
43 | 43 |
Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile |
44 | 44 |
<code class="literal">exec ....</code>).</p><p>Danach kann der Task-Server mit dem folgenden Befehl gestartet |
45 |
werden:</p><pre class="programlisting">service kivitendo-task-server start</pre></div><div class="sect3" title="2.7.2.3. systemd-basierende Systeme (z.B. neure OpenSuSE, neuere Fedora Core)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e886"></a>2.7.2.3. systemd-basierende Systeme (z.B. neure OpenSuSE, neuere Fedora Core)</h4></div></div></div><p>Verlinken Sie die Datei <code class="filename">scripts/boot/systemd/kivitendo-task-server.service</code> nach
|
|
45 |
werden:</p><pre class="programlisting">service kivitendo-task-server start</pre></div><div class="sect3" title="2.7.2.3. systemd-basierende Systeme (z.B. neure OpenSUSE, neuere Fedora Core)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e912"></a>2.7.2.3. systemd-basierende Systeme (z.B. neure OpenSUSE, neuere Fedora Core)</h4></div></div></div><p>Verlinken Sie die Datei <code class="filename">scripts/boot/systemd/kivitendo-task-server.service</code> nach
|
|
46 | 46 |
<code class="filename">/etc/systemd/system/</code>. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile |
47 | 47 |
<code class="literal">ExecStart=....</code> und <code class="literal">ExecStop=...</code>). Binden Sie das Script in den Boot-Prozess ein. |
48 | 48 |
</p><p>Alle hierzu benötigten Befehle sehen so aus:</p><pre class="programlisting">cd /var/www/kivitendo-erp/scripts/boot/systemd |
doc/html/ch02s10.html | ||
---|---|---|
28 | 28 |
</span></dt><dd><p>Falls der E-Mail-Server eine Authentifizierung verlangt, so können mit diesen zwei Parametern der Benutzername |
29 | 29 |
und das Passwort angegeben werden. Wird Authentifizierung verwendet, so sollte aus Sicherheitsgründen auch eine Form von |
30 | 30 |
Verschlüsselung aktiviert werden.</p></dd></dl></div><p>Wird Verschlüsselung über TLS oder SSL aktiviert, so werden zusätzliche Perl-Module benötigt. Diese sind:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>TLS-Verschlüsselung: Modul <code class="literal">Net::SSLGlue</code> (Debian-Paketname |
31 |
<code class="literal">libnet-sslglue-perl</code>, Fedora Core: <code class="literal">perl-Net-SSLGlue</code>, openSuSE:
|
|
31 |
<code class="literal">libnet-sslglue-perl</code>, Fedora Core: <code class="literal">perl-Net-SSLGlue</code>, openSUSE:
|
|
32 | 32 |
<code class="literal">perl-Net-SSLGlue</code> |
33 | 33 |
</p></li><li class="listitem"><p>SSL-Verschlüsselung: Modul <code class="literal">Net::SMTP::SSL</code> (Debian-Paketname |
34 |
<code class="literal">libnet-smtp-ssl-perl</code>, Fedora Core: <code class="literal">perl-Net-SMTP-SSL</code>, openSuSE:
|
|
34 |
<code class="literal">libnet-smtp-ssl-perl</code>, Fedora Core: <code class="literal">perl-Net-SMTP-SSL</code>, openSUSE:
|
|
35 | 35 |
<code class="literal">perl-Net-SMTP-SSL</code> |
36 | 36 |
</p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s09.html">Zurück</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s11.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.9. Benutzer- und Gruppenverwaltung </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 2.11. Drucken mit kivitendo</td></tr></table></div></body></html> |
doc/html/ch03s02.html | ||
---|---|---|
556 | 556 |
<code class="varname">invdate</code> |
557 | 557 |
</span></dt><dd><p>Rechnungsdatum</p></dd><dt><span class="term"> |
558 | 558 |
<code class="varname">invnumber</code> |
559 |
</span></dt><dd><p>Rechnungsnummer</p></dd></dl></div></div></div><div class="sect2" title="3.2.10. Variablen in anderen Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.andere-vorlagen"></a>3.2.10. Variablen in anderen Vorlagen</h3></div></div></div><div class="sect3" title="3.2.10.1. Einführung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e4444"></a>3.2.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
|
|
559 |
</span></dt><dd><p>Rechnungsnummer</p></dd></dl></div></div></div><div class="sect2" title="3.2.10. Variablen in anderen Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.andere-vorlagen"></a>3.2.10. Variablen in anderen Vorlagen</h3></div></div></div><div class="sect3" title="3.2.10.1. Einführung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e4470"></a>3.2.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
|
|
560 | 560 |
Rechnung. Allerdings heißen die Variablen, die mit |
561 | 561 |
<code class="varname">inv</code> beginnen, jetzt anders. Bei den Angeboten |
562 | 562 |
fangen sie mit <code class="varname">quo</code> für "quotation" an: |
doc/html/ch04.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>Kapitel 4. Entwicklerdokumentation</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s03.html" title="3.3. Excel-Vorlagen"><link rel="next" href="ch04s02.html" title="4.2. Entwicklung unter FastCGI"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Kapitel 4. Entwicklerdokumentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s03.html">Zurück</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 4. Entwicklerdokumentation"><div class="titlepage"><div><div><h2 class="title"><a name="d0e5051"></a>Kapitel 4. Entwicklerdokumentation</h2></div></div></div><div class="sect1" title="4.1. Globale Variablen"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="devel.globals"></a>4.1. Globale Variablen</h2></div></div></div><div class="sect2" title="4.1.1. Wie sehen globale Variablen in Perl aus?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5057"></a>4.1.1. Wie sehen globale Variablen in Perl aus?</h3></div></div></div><p>Globale Variablen liegen in einem speziellen namespace namens
|
|
3 |
<title>Kapitel 4. Entwicklerdokumentation</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s03.html" title="3.3. Excel-Vorlagen"><link rel="next" href="ch04s02.html" title="4.2. Entwicklung unter FastCGI"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Kapitel 4. Entwicklerdokumentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s03.html">Zurück</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 4. Entwicklerdokumentation"><div class="titlepage"><div><div><h2 class="title"><a name="d0e5077"></a>Kapitel 4. Entwicklerdokumentation</h2></div></div></div><div class="sect1" title="4.1. Globale Variablen"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="devel.globals"></a>4.1. Globale Variablen</h2></div></div></div><div class="sect2" title="4.1.1. Wie sehen globale Variablen in Perl aus?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5083"></a>4.1.1. Wie sehen globale Variablen in Perl aus?</h3></div></div></div><p>Globale Variablen liegen in einem speziellen namespace namens
|
|
4 | 4 |
"main", der von überall erreichbar ist. Darüber hinaus sind bareword |
5 | 5 |
globs global und die meisten speziellen Variablen sind... |
6 | 6 |
speziell.</p><p>Daraus ergeben sich folgende Formen:</p><div class="variablelist"><dl><dt><span class="term"> |
... | ... | |
25 | 25 |
<code class="varname">$PACKAGE::form</code>.</p></dd><dt><span class="term"> |
26 | 26 |
<code class="literal">local $form</code> |
27 | 27 |
</span></dt><dd><p>Alle Änderungen an <code class="varname">$form</code> werden am Ende |
28 |
des scopes zurückgesetzt</p></dd></dl></div></div><div class="sect2" title="4.1.2. Warum sind globale Variablen ein Problem?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5158"></a>4.1.2. Warum sind globale Variablen ein Problem?</h3></div></div></div><p>Das erste Problem ist <span class="productname">FCGI</span>™.</p><p>
|
|
28 |
des scopes zurückgesetzt</p></dd></dl></div></div><div class="sect2" title="4.1.2. Warum sind globale Variablen ein Problem?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5184"></a>4.1.2. Warum sind globale Variablen ein Problem?</h3></div></div></div><p>Das erste Problem ist <span class="productname">FCGI</span>™.</p><p>
|
|
29 | 29 |
<span class="productname">SQL-Ledger</span>™ hat fast alles im globalen |
30 | 30 |
namespace abgelegt, und erwartet, dass es da auch wiederzufinden ist. |
31 | 31 |
Unter <span class="productname">FCGI</span>™ müssen diese Sachen aber wieder |
... | ... | |
39 | 39 |
dies hat, seit der Einführung, u.a. schon so manche langwierige |
40 | 40 |
Bug-Suche verkürzt. Da globale Variablen aber implizit mit Package |
41 | 41 |
angegeben werden, werden die nicht geprüft, und somit kann sich |
42 |
schnell ein Tippfehler einschleichen.</p></div><div class="sect2" title="4.1.3. Kanonische globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5191"></a>4.1.3. Kanonische globale Variablen</h3></div></div></div><p>Um dieses Problem im Griff zu halten gibt es einige wenige
|
|
42 |
schnell ein Tippfehler einschleichen.</p></div><div class="sect2" title="4.1.3. Kanonische globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5217"></a>4.1.3. Kanonische globale Variablen</h3></div></div></div><p>Um dieses Problem im Griff zu halten gibt es einige wenige
|
|
43 | 43 |
globale Variablen, die kanonisch sind, d.h. sie haben bestimmte |
44 | 44 |
vorgegebenen Eigenschaften, und alles andere sollte anderweitig |
45 | 45 |
umhergereicht werden.</p><p>Diese Variablen sind im Moment die folgenden neun:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> |
... | ... | |
62 | 62 |
<code class="varname">$::request</code> |
63 | 63 |
</p></li></ul></div><p>Damit diese nicht erneut als Müllhalde missbraucht werden, im |
64 | 64 |
Folgenden eine kurze Erläuterung der bestimmten vorgegebenen |
65 |
Eigenschaften (Konventionen):</p><div class="sect3" title="4.1.3.1. $::form"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5255"></a>4.1.3.1. $::form</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Ist ein Objekt der Klasse
|
|
65 |
Eigenschaften (Konventionen):</p><div class="sect3" title="4.1.3.1. $::form"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5281"></a>4.1.3.1. $::form</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Ist ein Objekt der Klasse
|
|
66 | 66 |
"<code class="classname">Form</code>"</p></li><li class="listitem"><p>Wird nach jedem Request gelöscht</p></li><li class="listitem"><p>Muss auch in Tests und Konsolenscripts vorhanden |
67 | 67 |
sein.</p></li><li class="listitem"><p>Enthält am Anfang eines Requests die Requestparameter vom |
68 | 68 |
User</p></li><li class="listitem"><p>Kann zwar intern über Requestgrenzen ein Datenbankhandle |
... | ... | |
110 | 110 |
push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; |
111 | 111 |
push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; |
112 | 112 |
# ... |
113 |
}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5339"></a>4.1.3.2. %::myconfig</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Das einzige Hash unter den globalen Variablen</p></li><li class="listitem"><p>Wird spätestens benötigt wenn auf die Datenbank
|
|
113 |
}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5365"></a>4.1.3.2. %::myconfig</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Das einzige Hash unter den globalen Variablen</p></li><li class="listitem"><p>Wird spätestens benötigt wenn auf die Datenbank
|
|
114 | 114 |
zugegriffen wird</p></li><li class="listitem"><p>Wird bei jedem Request neu erstellt.</p></li><li class="listitem"><p>Enthält die Userdaten des aktuellen Logins</p></li><li class="listitem"><p>Sollte nicht ohne Filterung irgendwo gedumpt werden oder |
115 | 115 |
extern serialisiert werden, weil da auch der Datenbankzugriff |
116 | 116 |
für diesen user drinsteht.</p></li><li class="listitem"><p>Enthält unter anderem Listenbegrenzung vclimit, |
... | ... | |
122 | 122 |
überwiegend die Daten, die sich unter <span class="guimenu">Programm</span> |
123 | 123 |
-> <span class="guimenuitem">Einstellungen</span> befinden, bzw. die |
124 | 124 |
Informationen über den Benutzer die über die |
125 |
Administrator-Schnittstelle (admin.pl) eingegeben wurden.</p></div><div class="sect3" title="4.1.3.3. $::locale"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5378"></a>4.1.3.3. $::locale</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "Locale"</p></li><li class="listitem"><p>Wird pro Request erstellt</p></li><li class="listitem"><p>Muss auch für Tests und Scripte immer verfügbar
|
|
125 |
Administrator-Schnittstelle (admin.pl) eingegeben wurden.</p></div><div class="sect3" title="4.1.3.3. $::locale"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5404"></a>4.1.3.3. $::locale</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "Locale"</p></li><li class="listitem"><p>Wird pro Request erstellt</p></li><li class="listitem"><p>Muss auch für Tests und Scripte immer verfügbar
|
|
126 | 126 |
sein.</p></li><li class="listitem"><p>Cached intern über Requestgrenzen hinweg benutzte |
127 | 127 |
Locales</p></li></ul></div><p>Lokalisierung für den aktuellen User. Alle Übersetzungen, |
128 |
Zahlen- und Datumsformatierungen laufen über dieses Objekt.</p></div><div class="sect3" title="4.1.3.4. $::lxdebug"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5396"></a>4.1.3.4. $::lxdebug</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "LXDebug"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Muss immer verfügbar sein, in nahezu allen
|
|
128 |
Zahlen- und Datumsformatierungen laufen über dieses Objekt.</p></div><div class="sect3" title="4.1.3.4. $::lxdebug"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5422"></a>4.1.3.4. $::lxdebug</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "LXDebug"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Muss immer verfügbar sein, in nahezu allen
|
|
129 | 129 |
Funktionen</p></li></ul></div><p> |
130 | 130 |
<code class="varname">$::lxdebug</code> stellt Debuggingfunktionen |
131 | 131 |
bereit, wie "<code class="function">enter_sub</code>" und |
... | ... | |
135 | 135 |
"<code class="function">message</code>" und "<code class="function">dump</code>" mit |
136 | 136 |
denen man flott Informationen ins Log (tmp/kivitendo-debug.log) |
137 | 137 |
packen kann.</p><p>Beispielsweise so:</p><pre class="programlisting">$main::lxdebug->message(0, 'Meine Konfig:' . Dumper (%::myconfig)); |
138 |
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5433"></a>4.1.3.5. $::auth</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "SL::Auth"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Hat eine permanente DB Verbindung zur Authdatenbank</p></li><li class="listitem"><p>Wird nach jedem Request resettet.</p></li></ul></div><p>
|
|
138 |
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5459"></a>4.1.3.5. $::auth</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "SL::Auth"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Hat eine permanente DB Verbindung zur Authdatenbank</p></li><li class="listitem"><p>Wird nach jedem Request resettet.</p></li></ul></div><p>
|
|
139 | 139 |
<code class="varname">$::auth</code> stellt Funktionen bereit um die |
140 | 140 |
Rechte des aktuellen Users abzufragen. Obwohl diese Informationen |
141 | 141 |
vom aktuellen User abhängen wird das Objekt aus |
142 | 142 |
Geschwindigkeitsgründen nur einmal angelegt und dann nach jedem |
143 |
Request kurz resettet.</p></div><div class="sect3" title="4.1.3.6. $::lx_office_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5454"></a>4.1.3.6. $::lx_office_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
143 |
Request kurz resettet.</p></div><div class="sect3" title="4.1.3.6. $::lx_office_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5480"></a>4.1.3.6. $::lx_office_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
144 | 144 |
"<code class="classname">SL::LxOfficeConf</code>"</p></li><li class="listitem"><p>Global gecached</p></li><li class="listitem"><p>Repräsentation der |
145 | 145 |
<code class="filename">config/kivitendo.conf[.default]</code>-Dateien</p></li></ul></div><p>Globale Konfiguration. Configdateien werden zum Start gelesen |
146 | 146 |
und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass |
... | ... | |
150 | 150 |
file = /tmp/kivitendo-debug.log</pre><p>ist der Key <code class="varname">file</code> im Programm als |
151 | 151 |
<code class="varname">$::lx_office_conf->{debug}{file}</code> |
152 | 152 |
erreichbar.</p><div class="warning" title="Warnung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warnung]" src="system/docbook-xsl/images/warning.png"></td><th align="left">Warnung</th></tr><tr><td align="left" valign="top"><p>Zugriff auf die Konfiguration erfolgt im Moment über |
153 |
Hashkeys, sind also nicht gegen Tippfehler abgesichert.</p></td></tr></table></div></div><div class="sect3" title="4.1.3.7. $::instance_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5490"></a>4.1.3.7. $::instance_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
153 |
Hashkeys, sind also nicht gegen Tippfehler abgesichert.</p></td></tr></table></div></div><div class="sect3" title="4.1.3.7. $::instance_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5516"></a>4.1.3.7. $::instance_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
154 | 154 |
"<code class="classname">SL::InstanceConfiguration</code>"</p></li><li class="listitem"><p>wird pro Request neu erstellt</p></li></ul></div><p>Funktioniert wie <code class="varname">$::lx_office_conf</code>, |
155 | 155 |
speichert aber Daten die von der Instanz abhängig sind. Eine Instanz |
156 | 156 |
ist hier eine Mandantendatenbank. Beispielsweise überprüft |
157 | 157 |
</p><pre class="programlisting">$::instance_conf->get_inventory_system eq 'perpetual'</pre><p> |
158 |
ob die berüchtigte Bestandsmethode zur Anwendung kommt.</p></div><div class="sect3" title="4.1.3.8. $::dispatcher"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5511"></a>4.1.3.8. $::dispatcher</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
158 |
ob die berüchtigte Bestandsmethode zur Anwendung kommt.</p></div><div class="sect3" title="4.1.3.8. $::dispatcher"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5537"></a>4.1.3.8. $::dispatcher</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
159 | 159 |
"<code class="varname">SL::Dispatcher</code>"</p></li><li class="listitem"><p>wird pro Serverprozess erstellt.</p></li><li class="listitem"><p>enthält Informationen über die technische Verbindung zum |
160 | 160 |
Server</p></li></ul></div><p>Der dritte Punkt ist auch der einzige Grund warum das Objekt |
161 | 161 |
global gespeichert wird. Wird vermutlich irgendwann in einem anderen |
162 |
Objekt untergebracht.</p></div><div class="sect3" title="4.1.3.9. $::request"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5529"></a>4.1.3.9. $::request</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Hashref (evtl später Objekt)</p></li><li class="listitem"><p>Wird pro Request neu initialisiert.</p></li><li class="listitem"><p>Keine Unterstruktur garantiert.</p></li></ul></div><p>
|
|
162 |
Objekt untergebracht.</p></div><div class="sect3" title="4.1.3.9. $::request"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5555"></a>4.1.3.9. $::request</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Hashref (evtl später Objekt)</p></li><li class="listitem"><p>Wird pro Request neu initialisiert.</p></li><li class="listitem"><p>Keine Unterstruktur garantiert.</p></li></ul></div><p>
|
|
163 | 163 |
<code class="varname">$::request</code> ist ein generischer Platz um |
164 | 164 |
Daten "für den aktuellen Request" abzulegen. Sollte nicht für action |
165 | 165 |
at a distance benutzt werden, sondern um lokales memoizing zu |
... | ... | |
172 | 172 |
<code class="varname">$::request</code> |
173 | 173 |
</p></li><li class="listitem"><p>Muss ich von anderen Teilen des Programms lesend drauf |
174 | 174 |
zugreifen? Dann <code class="varname">$::request</code>, aber Zugriff über |
175 |
Wrappermethode</p></li></ul></div></div></div><div class="sect2" title="4.1.4. Ehemalige globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5571"></a>4.1.4. Ehemalige globale Variablen</h3></div></div></div><p>Die folgenden Variablen waren einmal im Programm, und wurden
|
|
176 |
entfernt.</p><div class="sect3" title="4.1.4.1. $::cgi"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5576"></a>4.1.4.1. $::cgi</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil cookie Methoden nicht als
|
|
175 |
Wrappermethode</p></li></ul></div></div></div><div class="sect2" title="4.1.4. Ehemalige globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5597"></a>4.1.4. Ehemalige globale Variablen</h3></div></div></div><p>Die folgenden Variablen waren einmal im Programm, und wurden
|
|
176 |
entfernt.</p><div class="sect3" title="4.1.4.1. $::cgi"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5602"></a>4.1.4.1. $::cgi</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil cookie Methoden nicht als
|
|
177 | 177 |
Klassenfunktionen funktionieren</p></li><li class="listitem"><p>Aufruf als Klasse erzeugt Dummyobjekt was im |
178 | 178 |
Klassennamespace gehalten wird und über Requestgrenzen |
179 | 179 |
leaked</p></li><li class="listitem"><p>liegt jetzt unter |
180 | 180 |
<code class="varname">$::request->{cgi}</code> |
181 |
</p></li></ul></div></div><div class="sect3" title="4.1.4.2. $::all_units"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5592"></a>4.1.4.2. $::all_units</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil einige Funktionen in Schleifen zum Teil
|
|
181 |
</p></li></ul></div></div><div class="sect3" title="4.1.4.2. $::all_units"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5618"></a>4.1.4.2. $::all_units</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil einige Funktionen in Schleifen zum Teil
|
|
182 | 182 |
ein paar hundert mal pro Request eine Liste der Einheiten |
183 | 183 |
brauchen, und de als Parameter durch einen Riesenstack von |
184 | 184 |
Funktionen geschleift werden müssten.</p></li><li class="listitem"><p>Liegt jetzt unter |
185 | 185 |
<code class="varname">$::request->{cache}{all_units}</code> |
186 | 186 |
</p></li><li class="listitem"><p>Wird nur in |
187 | 187 |
<code class="function">AM->retrieve_all_units()</code> gesetzt oder |
188 |
gelesen.</p></li></ul></div></div><div class="sect3" title="4.1.4.3. %::called_subs"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5611"></a>4.1.4.3. %::called_subs</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>wurde benutzt um callsub deep recursions
|
|
188 |
gelesen.</p></li></ul></div></div><div class="sect3" title="4.1.4.3. %::called_subs"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5637"></a>4.1.4.3. %::called_subs</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>wurde benutzt um callsub deep recursions
|
|
189 | 189 |
abzufangen.</p></li><li class="listitem"><p>Wurde entfernt, weil callsub nur einen Bruchteil der |
190 | 190 |
möglichen Rekursioenen darstellt, und da nie welche |
191 | 191 |
auftreten.</p></li><li class="listitem"><p>komplette recursion protection wurde entfernt.</p></li></ul></div></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s03.html">Zurück</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">3.3. Excel-Vorlagen </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 4.2. Entwicklung unter FastCGI</td></tr></table></div></body></html> |
doc/html/ch04s05.html | ||
---|---|---|
3 | 3 |
<title>4.5. Die kivitendo-Test-Suite</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch04.html" title="Kapitel 4. Entwicklerdokumentation"><link rel="prev" href="ch04s04.html" title="4.4. Translations and languages"><link rel="next" href="ch04s06.html" title="4.6. Stil-Richtlinien"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.5. Die kivitendo-Test-Suite</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s04.html">Zurück</a> </td><th width="60%" align="center">Kapitel 4. Entwicklerdokumentation</th><td width="20%" align="right"> <a accesskey="n" href="ch04s06.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="4.5. Die kivitendo-Test-Suite"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="devel.testsuite"></a>4.5. Die kivitendo-Test-Suite</h2></div></div></div><div class="sect2" title="4.5.1. Einführung"><div class="titlepage"><div><div><h3 class="title"><a name="devel.testsuite.intro"></a>4.5.1. Einführung</h3></div></div></div><p>kivitendo enthält eine Suite für automatisierte Tests. Sie basiert auf dem Standard-Perl-Modul <code class="literal">Test::More</code>.</p><p>Die grundlegenden Fakten sind:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Alle Tests liegen im Unterverzeichnis <code class="filename">t/</code>.</p></li><li class="listitem"><p>Ein Script (bzw. ein Test) in <code class="filename">f/</code> enthält einen oder mehrere Testfälle.</p></li><li class="listitem"><p>Alle Dateinamen von Tests enden auf <code class="literal">.t</code>. Es sind selbstständig ausführbare Perl-Scripte.</p></li><li class="listitem"><p>Die Test-Suite besteht aus der Gesamtheit aller Tests, sprich aller Scripte in <code class="filename">f/</code>, deren |
4 | 4 |
Dateiname auf <code class="literal">.t</code> endet.</p></li></ul></div></div><div class="sect2" title="4.5.2. Voraussetzungen"><div class="titlepage"><div><div><h3 class="title"><a name="devel.testsuite.prerequisites"></a>4.5.2. Voraussetzungen</h3></div></div></div><p>Für die Ausführung werden neben den für kivitendo eh schon benötigten Module noch weitere Perl-Module benötigt. Diese sind:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> |
5 | 5 |
<code class="literal">Test::Deep</code> (Debian-Paketname: <code class="literal">libtest-deep-perl</code>; Fedora Core: |
6 |
<code class="literal">perl-Test-Deep</code>; openSuSE: <code class="literal">perl-Test-Deep</code>)</p></li><li class="listitem"><p>
|
|
6 |
<code class="literal">perl-Test-Deep</code>; openSUSE: <code class="literal">perl-Test-Deep</code>)</p></li><li class="listitem"><p>
|
|
7 | 7 |
<code class="literal">Test::Harness</code> 3.0.0 oder höher. Dieses Modul ist ab Perl 5.10.1 Bestandteil der |
8 | 8 |
Perl-Distribution und kann für frühere Versionen aus dem <a class="ulink" href="http://www.cpan.org" target="_top">CPAN</a> bezogen |
9 | 9 |
werden.</p></li></ul></div></div><div class="sect2" title="4.5.3. Existierende Tests ausführen"><div class="titlepage"><div><div><h3 class="title"><a name="devel.testsuite.execution"></a>4.5.3. |
doc/html/index.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>kivitendo: Installation, Konfiguration, Entwicklung</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="next" href="ch01.html" title="Kapitel 1. Aktuelle Hinweise"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">kivitendo: Installation, Konfiguration, Entwicklung</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Weiter</a></td></tr></table><hr></div><div lang="de" class="book" title="kivitendo: Installation, Konfiguration, Entwicklung"><div class="titlepage"><div><div><h1 class="title"><a name="kivitendo-documentation"></a>kivitendo: Installation, Konfiguration, Entwicklung</h1></div></div><hr></div><div class="toc"><p><b>Inhaltsverzeichnis</b></p><dl><dt><span class="chapter"><a href="ch01.html">1. Aktuelle Hinweise</a></span></dt><dt><span class="chapter"><a href="ch02.html">2. Installation und Grundkonfiguration</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#Installation-%C3%9Cbersicht">2.1. Übersicht</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">2.2. Benötigte Software und Pakete</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s02.html#Betriebssystem">2.2.1. Betriebssystem</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#Pakete">2.2.2. Pakete</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s03.html">2.3. Manuelle Installation des Programmpaketes</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">2.4. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#config.config-file.introduction">2.4.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.sections-parameters">2.4.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.prior-versions">2.4.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.5.1. Zeichensätze/die Verwendung von UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#%C3%84nderungen-an-Konfigurationsdateien">2.5.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.5.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Datenbankbenutzer-anlegen">2.5.4. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#d0e652">2.6.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Apache-Konfiguration.FCGI">2.6.2. Konfiguration für FastCGI/FCGI</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#Konfiguration-des-Task-Servers">2.7.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Einbinden-in-den-Boot-Prozess">2.7.2. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle">2.7.3. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle2">2.7.4. Task-Server mit mehreren Mandanten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Grundlagen-zur-Benutzerauthentifizierung">2.8.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Administratorpasswort">2.8.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Authentifizierungsdatenbank">2.8.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Passwort%C3%BCberpr%C3%BCfung">2.8.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Name-des-Session-Cookies">2.8.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Anlegen-der-Authentifizierungsdatenbank">2.8.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#Zusammenh%C3%A4nge">2.9.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Datenbanken-anlegen">2.9.2. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Gruppen-anlegen">2.9.3. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Benutzer-anlegen">2.9.4. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Gruppenmitgliedschaften-verwalten">2.9.5. Gruppenmitgliedschaften verwalten</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Migration-alter-Installationen">2.9.6. Migration alter Installationen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. E-Mail-Versand aus kivitendo heraus</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s10.html#config.sending-email.sendmail">2.10.1. Versand über lokalen E-Mail-Server</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#config.sending-email.smtp">2.10.2. Versand über einen SMTP-Server</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s11.html">2.11. Drucken mit kivitendo</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s11.html#Vorlagenverzeichnis-anlegen">2.11.1. Vorlagenverzeichnis anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#Vorlagen-Standard">2.11.2. Standard</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#f-tex">2.11.3. f-tex</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#Vorlagen-RB">2.11.4. RB</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#allgemeine-hinweise-zu-latex">2.11.5. Allgemeine Hinweise zu LaTeX Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s12.html">2.12. OpenDocument-Vorlagen</a></span></dt><dt><span class="sect1"><a href="ch02s13.html">2.13. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
|
|
3 |
<title>kivitendo: Installation, Konfiguration, Entwicklung</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="next" href="ch01.html" title="Kapitel 1. Aktuelle Hinweise"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">kivitendo: Installation, Konfiguration, Entwicklung</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Weiter</a></td></tr></table><hr></div><div lang="de" class="book" title="kivitendo: Installation, Konfiguration, Entwicklung"><div class="titlepage"><div><div><h1 class="title"><a name="kivitendo-documentation"></a>kivitendo: Installation, Konfiguration, Entwicklung</h1></div></div><hr></div><div class="toc"><p><b>Inhaltsverzeichnis</b></p><dl><dt><span class="chapter"><a href="ch01.html">1. Aktuelle Hinweise</a></span></dt><dt><span class="chapter"><a href="ch02.html">2. Installation und Grundkonfiguration</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#Installation-%C3%9Cbersicht">2.1. Übersicht</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">2.2. Benötigte Software und Pakete</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s02.html#Betriebssystem">2.2.1. Betriebssystem</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#Pakete">2.2.2. Benötigte Perl-Pakete installieren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s03.html">2.3. Manuelle Installation des Programmpaketes</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">2.4. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#config.config-file.introduction">2.4.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.sections-parameters">2.4.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.prior-versions">2.4.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.5.1. Zeichensätze/die Verwendung von UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#%C3%84nderungen-an-Konfigurationsdateien">2.5.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.5.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Datenbankbenutzer-anlegen">2.5.4. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#d0e678">2.6.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Apache-Konfiguration.FCGI">2.6.2. Konfiguration für FastCGI/FCGI</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#Konfiguration-des-Task-Servers">2.7.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Einbinden-in-den-Boot-Prozess">2.7.2. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle">2.7.3. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle2">2.7.4. Task-Server mit mehreren Mandanten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Grundlagen-zur-Benutzerauthentifizierung">2.8.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Administratorpasswort">2.8.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Authentifizierungsdatenbank">2.8.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Passwort%C3%BCberpr%C3%BCfung">2.8.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Name-des-Session-Cookies">2.8.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Anlegen-der-Authentifizierungsdatenbank">2.8.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#Zusammenh%C3%A4nge">2.9.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Datenbanken-anlegen">2.9.2. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Gruppen-anlegen">2.9.3. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Benutzer-anlegen">2.9.4. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Gruppenmitgliedschaften-verwalten">2.9.5. Gruppenmitgliedschaften verwalten</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Migration-alter-Installationen">2.9.6. Migration alter Installationen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. E-Mail-Versand aus kivitendo heraus</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s10.html#config.sending-email.sendmail">2.10.1. Versand über lokalen E-Mail-Server</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#config.sending-email.smtp">2.10.2. Versand über einen SMTP-Server</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s11.html">2.11. Drucken mit kivitendo</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s11.html#Vorlagenverzeichnis-anlegen">2.11.1. Vorlagenverzeichnis anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#Vorlagen-Standard">2.11.2. Standard</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#f-tex">2.11.3. f-tex</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#Vorlagen-RB">2.11.4. RB</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#allgemeine-hinweise-zu-latex">2.11.5. Allgemeine Hinweise zu LaTeX Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s12.html">2.12. OpenDocument-Vorlagen</a></span></dt><dt><span class="sect1"><a href="ch02s13.html">2.13. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
|
|
4 | 4 |
EUR</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s13.html#config.eur.introduction">2.13.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#config.eur.parameters">2.13.2. Konfigurationsparameter</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#config.eur.setting-parameters">2.13.3. Festlegen der Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#config.eur.inventory-system-perpetual">2.13.4. Bemerkungen zu Bestandsmethode</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#config.eur.knonw-issues">2.13.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s14.html">2.14. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s14.html#config.skr04-update-3804.introduction">2.14.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s14.html#config.skr04-update-3804.create-chart">2.14.2. Konto 3804 manuell anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s15.html">2.15. Einstellungen pro Mandant</a></span></dt><dt><span class="sect1"><a href="ch02s16.html">2.16. kivitendo ERP verwenden</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Features und Funktionen</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch03.html#features.periodic-invoices">3.1. Wiederkehrende Rechnungen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.introduction">3.1.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.configuration">3.1.2. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.reports">3.1.3. Auflisten</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.task-server">3.1.4. Erzeugung der eigentlichen Rechnungen</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.create-for-current-month">3.1.5. Erste Rechnung für aktuellen Monat erstellen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s02.html">3.2. Dokumentenvorlagen und verfügbare Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.einf%C3%BChrung">3.2.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.variablen-ausgeben">3.2.2. Variablen ausgeben</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.verwendung-in-druckbefehlen">3.2.3. Verwendung in Druckbefehlen</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.tag-style">3.2.4. Anfang und Ende der Tags verändern</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.zuordnung-dateinamen">3.2.5. Zuordnung von den Dateinamen zu den Funktionen</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.dateinamen-erweitert">3.2.6. Sprache, Drucker und E-Mail</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.allgemeine-variablen">3.2.7. Allgemeine Variablen, die in allen Vorlagen vorhanden |
5 | 5 |
sind</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.invoice">3.2.8. Variablen in Rechnungen</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.dunning">3.2.9. Variablen in Mahnungen und Rechnungen über Mahngebühren</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.andere-vorlagen">3.2.10. Variablen in anderen Vorlagen</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.bloecke">3.2.11. Blöcke, bedingte Anweisungen und Schleifen</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.markup">3.2.12. Markup-Code zur Textformatierung innerhalb von |
6 |
Formularen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s03.html">3.3. Excel-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s03.html#excel-templates.summary">3.3.1. Zusammenfassung</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.usage">3.3.2. Bedienung</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.syntax">3.3.3. Variablensyntax</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.limitations">3.3.4. Einschränkungen</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Entwicklerdokumentation</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#devel.globals">4.1. Globale Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04.html#d0e5057">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5158">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5191">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5571">4.1.4. Ehemalige globale Variablen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s02.html">4.2. Entwicklung unter FastCGI</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.general">4.2.1. Allgemeines</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.exiting">4.2.2. Programmende und Ausnahmen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.globals">4.2.3. Globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.performance">4.2.4. Performance und Statistiken</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.known-issues">4.2.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s03.html">4.3. SQL-Upgradedateien</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.introduction">4.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.format">4.3.2. Format der Kontrollinformationen</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.dbupgrade-tool">4.3.3. Hilfsscript dbupgrade2_tool.pl</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s04.html">4.4. Translations and languages</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s04.html#translations-languages.introduction">4.4.1. Introduction</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#translations-languages.file-structure">4.4.2. File structure</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s05.html">4.5. Die kivitendo-Test-Suite</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.intro">4.5.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.prerequisites">4.5.2. Voraussetzungen</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.execution">4.5.3.
|
|
6 |
Formularen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s03.html">3.3. Excel-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s03.html#excel-templates.summary">3.3.1. Zusammenfassung</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.usage">3.3.2. Bedienung</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.syntax">3.3.3. Variablensyntax</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.limitations">3.3.4. Einschränkungen</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Entwicklerdokumentation</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#devel.globals">4.1. Globale Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04.html#d0e5083">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5184">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5217">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5597">4.1.4. Ehemalige globale Variablen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s02.html">4.2. Entwicklung unter FastCGI</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.general">4.2.1. Allgemeines</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.exiting">4.2.2. Programmende und Ausnahmen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.globals">4.2.3. Globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.performance">4.2.4. Performance und Statistiken</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.known-issues">4.2.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s03.html">4.3. SQL-Upgradedateien</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.introduction">4.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.format">4.3.2. Format der Kontrollinformationen</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.dbupgrade-tool">4.3.3. Hilfsscript dbupgrade2_tool.pl</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s04.html">4.4. Translations and languages</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s04.html#translations-languages.introduction">4.4.1. Introduction</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#translations-languages.file-structure">4.4.2. File structure</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s05.html">4.5. Die kivitendo-Test-Suite</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.intro">4.5.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.prerequisites">4.5.2. Voraussetzungen</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.execution">4.5.3.
|
|
7 | 7 |
Existierende Tests ausführen |
8 | 8 |
</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.meaning_of_scripts">4.5.4. |
9 | 9 |
Bedeutung der verschiedenen Test-Scripte |
Auch abrufbar als: Unified diff
Aktualisierung Doku zu Perl-Paketen auf allen unterstützen Distros