Revision 90baed86
Von Moritz Bunkus vor fast 13 Jahren hinzugefügt
doc/dokumentation.xml | ||
---|---|---|
45 | 45 |
ohne große Probleme auf den derzeit aktuellen verbreiteten |
46 | 46 |
Distributionen läuft.</para> |
47 | 47 |
|
48 |
<para>Anfang 2011 sind das folgende Systeme:</para>
|
|
48 |
<para>Anfang 2012 sind das folgende Systeme, von denen bekannt ist, dass Lx-Office auf ihnen läuft:</para>
|
|
49 | 49 |
|
50 | 50 |
<itemizedlist> |
51 | 51 |
<listitem> |
52 |
<para>Ubuntu 8.04 LTS Hardy Heron</para> |
|
52 |
<para>Ubuntu 8.04 LTS Hardy Heron, 10.04 LTS Lucid Lynx bis 11.10 Oneiric Ocelot</para>
|
|
53 | 53 |
</listitem> |
54 | 54 |
|
55 | 55 |
<listitem> |
56 |
<para>Ubuntu 9.10 Karmic Koala</para>
|
|
56 |
<para>Debian 5.0 Lenny und 6.0 Squeeze</para>
|
|
57 | 57 |
</listitem> |
58 | 58 |
|
59 | 59 |
<listitem> |
60 |
<para>Ubuntu 10.04 Lucid Lynx</para> |
|
61 |
</listitem> |
|
62 |
|
|
63 |
<listitem> |
|
64 |
<para>Ubuntu 10.10 Maverick Meerkat</para> |
|
65 |
</listitem> |
|
66 |
|
|
67 |
<listitem> |
|
68 |
<para>Debian 5.0 Lenny</para> |
|
69 |
</listitem> |
|
70 |
|
|
71 |
<listitem> |
|
72 |
<para>Debian 6.0 Squeeze</para> |
|
73 |
</listitem> |
|
74 |
|
|
75 |
<listitem> |
|
76 |
<para>openSUSE 11.2</para> |
|
77 |
</listitem> |
|
78 |
|
|
79 |
<listitem> |
|
80 |
<para>openSUSE 11.3</para> |
|
60 |
<para>openSUSE 11.2 und 11.3</para> |
|
81 | 61 |
</listitem> |
82 | 62 |
|
83 | 63 |
<listitem> |
... | ... | |
85 | 65 |
</listitem> |
86 | 66 |
|
87 | 67 |
<listitem> |
88 |
<para>Fedora 13</para> |
|
89 |
</listitem> |
|
90 |
|
|
91 |
<listitem> |
|
92 |
<para>Fedora 14</para> |
|
68 |
<para>Fedora 13 bis 15</para> |
|
93 | 69 |
</listitem> |
94 | 70 |
</itemizedlist> |
95 | 71 |
|
96 |
<para>Für die debianoiden Betriebssysteme existiert ein .deb, das |
|
97 |
deutlich einfacher zu installieren ist.</para> |
|
98 |
|
|
99 | 72 |
<para>Ubuntu 8.04 LTS hat zusätzlich die Schwierigkeit, dass die |
100 | 73 |
Module im Archiv recht alt sind, und das viele der benötigten Module |
101 | 74 |
nicht einfach zu installieren sind. Dafür sollte es kurz nach dem |
... | ... | |
113 | 86 |
<para>Zur Installation das Paket in das entpackte Lx-Office |
114 | 87 |
Verzeichnis entpacken:</para> |
115 | 88 |
|
116 |
<para><literal>tar xzf lx-erp-perl-libs-compat-v2.tar.gz |
|
117 |
/path/to/lx-office/</literal></para> |
|
89 |
<programlisting>tar xzf lx-erp-perl-libs-compat-v2.tar.gz /path/to/lx-office/</programlisting> |
|
118 | 90 |
|
119 | 91 |
<para>Zusätzlich müssen dann noch die folgenden Pakete installiert |
120 | 92 |
weerden</para> |
121 | 93 |
|
122 |
<para><literal>libbit-vector-perl libsub-exporter-perl libclone-perl |
|
123 |
libclass-factory-util-perl</literal></para> |
|
94 |
<programlisting>apt-get install libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl</programlisting> |
|
124 | 95 |
|
125 | 96 |
<para>Danach sollte der Installationscheck (siehe <xref |
126 | 97 |
linkend="Pakete"/>) die enthaltenen Pakete erkennen.</para> |
... | ... | |
244 | 215 |
|
245 | 216 |
<para>Für Debian oder Ubuntu benötigen Sie diese Pakete:</para> |
246 | 217 |
|
247 |
<para><literal>apache2 postgresql libparent-perl libarchive-zip-perl
|
|
248 |
libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl
|
|
249 |
libemail-address-perl liblist-moreutils-perl libpdf-api2-perl
|
|
250 |
librose-object-perl librose-db-perl librose-db-object-perl
|
|
251 |
libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl
|
|
252 |
libxml-writer-perl libyaml-perl libconfig-std-perl
|
|
253 |
libparams-validate-perl libjson-perl</literal></para>
|
|
218 |
<programlisting>apt-get install apache2 postgresql libparent-perl libarchive-zip-perl \
|
|
219 |
libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl \
|
|
220 |
libemail-address-perl liblist-moreutils-perl libpdf-api2-perl \
|
|
221 |
librose-object-perl librose-db-perl librose-db-object-perl \
|
|
222 |
libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl \
|
|
223 |
libxml-writer-perl libyaml-perl libconfig-std-perl \
|
|
224 |
libparams-validate-perl libjson-perl</programlisting>
|
|
254 | 225 |
|
255 | 226 |
<para>Für Fedora Core benötigen Sie diese Pakete:</para> |
256 | 227 |
|
257 |
<para><literal>httpd postgresql-server perl-parent perl-DateTime
|
|
258 |
perl-DBI perl-DBD-Pg perl-Email-Address perl-List-MoreUtils
|
|
259 |
perl-PDF-API2 perl-Rose-Object perl-Rose-DB perl-Rose-DB-Object
|
|
260 |
perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI
|
|
261 |
perl-XML-Writer perl-YAML</literal></para>
|
|
228 |
<programlisting>yum install httpd postgresql-server perl-parent perl-DateTime \
|
|
229 |
perl-DBI perl-DBD-Pg perl-Email-Address perl-List-MoreUtils \
|
|
230 |
perl-PDF-API2 perl-Rose-Object perl-Rose-DB perl-Rose-DB-Object \
|
|
231 |
perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \
|
|
232 |
perl-XML-Writer perl-YAML</programlisting>
|
|
262 | 233 |
|
263 | 234 |
<para>Für OpenSuSE benötigen Sie diese Pakete:</para> |
264 | 235 |
|
265 |
<para><literal>apache2 postgresql-server perl-Archive-Zip
|
|
266 |
perl-DateTime perl-DBI perl-DBD-Pg perl-MailTools perl-List-MoreUtils
|
|
267 |
perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv
|
|
268 |
perl-URI perl-XML-Writer perl-YAML</literal></para>
|
|
236 |
<programlisting>zypper install apache2 postgresql-server perl-Archive-Zip \
|
|
237 |
perl-DateTime perl-DBI perl-DBD-Pg perl-MailTools perl-List-MoreUtils \
|
|
238 |
perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \
|
|
239 |
perl-URI perl-XML-Writer perl-YAML</programlisting>
|
|
269 | 240 |
|
270 | 241 |
<para>Bei openSuSE 11 ist <literal>parent</literal> bereits enthalten, |
271 | 242 |
und braucht nicht nachinstalliert werden. Die |
... | ... | |
284 | 255 |
xreflabel="Manuelle Installation des Programmpaketes"> |
285 | 256 |
<title>Manuelle Installation des Programmpaketes</title> |
286 | 257 |
|
287 |
<para>Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.6.2.tgz) wird
|
|
258 |
<para>Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.6.3.tgz) wird
|
|
288 | 259 |
im Dokumentenverzeichnis des Webservers (z.B. |
289 | 260 |
<filename>/var/www/html/</filename>, |
290 | 261 |
<filename>/srv/www/htdocs</filename> oder |
... | ... | |
399 | 370 |
dbcharset = UTF-8</programlisting> |
400 | 371 |
|
401 | 372 |
<para> |
402 |
Nutzt man wiederkehrende Rechnungen, kann man unter <literal>[periodic_invoices]</literal> den Login eines Benutzers angeben, der
|
|
373 |
Nutzt man wiederkehrende Rechnungen, kann man unter <varname>[periodic_invoices]</varname> den Login eines Benutzers angeben, der
|
|
403 | 374 |
nach Erstellung der Rechnungen eine entsprechende E-Mail mit Informationen über die erstellten Rechnungen bekommt. |
404 | 375 |
</para> |
405 | 376 |
|
406 | 377 |
<para> |
407 | 378 |
Nutzt man den <link linkend="config.task-server">Taskserver</link> für <link |
408 |
linkend="features.periodic-invoices">wiederkehrende Rechnungen</link>, muss unter <literal>[task_server]</literal> ein Login eines
|
|
379 |
linkend="features.periodic-invoices">wiederkehrende Rechnungen</link>, muss unter <varname>[task_server]</varname> ein Login eines
|
|
409 | 380 |
Benutzers angegeben werden, mit dem sich der Taskserver an Lx-Office bei der Datenbank anmeldet, die dem Benutzer zugewiesen ist. |
410 | 381 |
</para> |
411 | 382 |
|
412 | 383 |
<para> |
413 |
Für Entwickler finden sich unter <literal>[debug]</literal> wichtige Funktionen, um die Fehlersuche zu erleichtern.
|
|
384 |
Für Entwickler finden sich unter <varname>[debug]</varname> wichtige Funktionen, um die Fehlersuche zu erleichtern.
|
|
414 | 385 |
</para> |
415 | 386 |
</sect2> |
416 | 387 |
|
... | ... | |
420 | 391 |
<para> |
421 | 392 |
In älteren Lx-Office Versionen gab es im Verzeichnis <filename>config</filename> die Dateien <filename>authentication.pl</filename> |
422 | 393 |
und <filename>lx-erp.conf</filename>, die jeweils Perl-Dateien waren. Es gab auch die Möglichkeit, eine lokale Version der |
423 |
Konfigurationsdatei zu erstellen (<literal>lx-erp-local.conf</literal>). Dies ist ab 2.6.3 nicht mehr möglich, aber auch nicht mehr
|
|
394 |
Konfigurationsdatei zu erstellen (<filename>lx-erp-local.conf</filename>). Dies ist ab 2.6.3 nicht mehr möglich, aber auch nicht mehr
|
|
424 | 395 |
nötig. |
425 | 396 |
</para> |
426 | 397 |
|
... | ... | |
442 | 413 |
|
443 | 414 |
<para>Lx-Office kann komplett mit UTF-8 als Zeichensatz verwendet |
444 | 415 |
werden. Dabei gibt es zwei Punkte zu beachten: PostgreSQL muss in |
445 |
Version 8.0 oder neuer benutzt werden, und der
|
|
416 |
Version 8.2 oder neuer benutzt werden, und der
|
|
446 | 417 |
PostgreSQL-Datenbankcluster muss ebenfalls mit UTF-8 als Locale |
447 | 418 |
angelegt worden sein.</para> |
448 | 419 |
|
449 |
<para>Dieses ist kann überprüft werden: ist das Encoding der Datenbank |
|
450 |
“template1” “UTF8”, so kann auch Lx-Office mit UTF-8 betrieben werden. |
|
451 |
Andernfalls ist es notwendig, einen neuen Datenbankcluster mit |
|
452 |
UTF-8-Encoding anzulegen und diesen zu verwenden. Unter Debian und |
|
453 |
Ubuntu kann dies z.B. mit dem folgenden Befehl getan werden:</para> |
|
420 |
<para>Dieses ist kann überprüft werden: ist das Encoding der Datenbank “template1” “UTF8”, so kann auch Lx-Office mit UTF-8 |
|
421 |
betrieben werden. Andernfalls ist es notwendig, einen neuen Datenbankcluster mit UTF-8-Encoding anzulegen und diesen zu |
|
422 |
verwenden. Unter Debian und Ubuntu kann dies z.B. für PostgreSQL 8.2 mit dem folgenden Befehl getan werden:</para> |
|
454 | 423 |
|
455 |
<para><literal>pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 |
|
456 |
8.2 clustername</literal></para> |
|
424 |
<programlisting>pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2 clustername</programlisting> |
|
457 | 425 |
|
458 |
<para>Die Datenbankversionsnummer muss an die tatsächlich verwendete |
|
459 |
Versionsnummer angepasst werden.</para> |
|
426 |
<para>Die Datenbankversionsnummer muss an die tatsächlich verwendete Versionsnummer angepasst werden.</para> |
|
460 | 427 |
|
461 | 428 |
<para>Unter anderen Distributionen gibt es ähnliche Methoden.</para> |
462 | 429 |
|
... | ... | |
464 | 431 |
ist ein Neuanlegen eines weiteren Clusters nicht möglich, so kann |
465 | 432 |
Lx-Office mit ISO-8859-15 als Encoding betrieben werden.</para> |
466 | 433 |
|
467 |
<para>Das Encoding einer Datenbank kann in <literal>psql</literal> mit |
|
468 |
<literal>\l</literal> geprüft werden.</para> |
|
434 |
<para>Das Encoding einer Datenbank kann in <command>psql</command> mit <literal>\l</literal> geprüft werden.</para> |
|
469 | 435 |
</sect2> |
470 | 436 |
|
471 | 437 |
<sect2 id="Änderungen-an-Konfigurationsdateien"> |
472 | 438 |
<title>Änderungen an Konfigurationsdateien</title> |
473 | 439 |
|
474 |
<para>In der Datei <literal>postgresql.conf</literal>, die je nach
|
|
440 |
<para>In der Datei <filename>postgresql.conf</filename>, die je nach
|
|
475 | 441 |
Distribution in verschiedenen Verzeichnissen liegen kann (z.B. |
476 |
<literal>/var/lib/pgsql/data/</literal> oder
|
|
477 |
<literal>/etc/postgresql/</literal>, muss sichergestellt werden, dass
|
|
442 |
<filename>/var/lib/pgsql/data/</filename> oder
|
|
443 |
<filename>/etc/postgresql/</filename>, muss sichergestellt werden, dass
|
|
478 | 444 |
TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den |
479 |
Parameter <literal>listen_address</literal> gesteuert. Laufen
|
|
445 |
Parameter <varname>listen_address</varname> gesteuert. Laufen
|
|
480 | 446 |
PostgreSQL und Lx-Office auf demselben Rechner, so kann dort der Wert |
481 | 447 |
<literal>localhost</literal> verwendet werden. Andernfalls müssen |
482 | 448 |
Datenbankverbindungen auch von anderen Rechnern aus zugelassen werden, |
483 |
was mit dem Wert \<literal>*</literal> geschieht.</para>
|
|
449 |
was mit dem Wert <literal>*</literal> geschieht.</para> |
|
484 | 450 |
|
485 |
<para>In der Datei <literal>pg_hba.conf</literal>, die im gleichen
|
|
486 |
Verzeichnis wie die <literal>postgresql.conf</literal> zu finden sein
|
|
451 |
<para>In der Datei <filename>pg_hba.conf</filename>, die im gleichen
|
|
452 |
Verzeichnis wie die <filename>postgresql.conf</filename> zu finden sein
|
|
487 | 453 |
sollte, müssen die Berichtigungen für den Zugriff geändert werden. |
488 | 454 |
Hier gibt es mehrere Möglichkeiten. Eine besteht darin, lokale |
489 |
Verbindungen immer zuzulassen</para> |
|
455 |
Verbindungen immer zuzulassen:</para>
|
|
490 | 456 |
|
491 |
<para><literal>local all all trust host all all 127.0.0.1 255.0.0.0
|
|
492 |
trust</literal></para>
|
|
457 |
<programlisting>local all all trust
|
|
458 |
host all all 127.0.0.1 255.0.0.0 trust</programlisting>
|
|
493 | 459 |
|
494 | 460 |
<para>Besser ist es, für eine bestimmte Datenbank Zugriff nur per |
495 | 461 |
Passwort zuzulassen. Beispielsweise:</para> |
496 | 462 |
|
497 |
<para><literal>local all lxoffice password host all lxoffice 127.0.0.1
|
|
498 |
255.255.255.255 password</literal></para>
|
|
463 |
<programlisting>local all lxoffice password
|
|
464 |
host all lxoffice 127.0.0.1 255.255.255.255 password</programlisting>
|
|
499 | 465 |
|
500 | 466 |
<!-- --> |
501 | 467 |
</sect2> |
... | ... | |
508 | 474 |
Melden Sie sich dafür als Benutzer “postgres” an der Datenbank an, und |
509 | 475 |
führen Sie die folgenden Kommandos aus:</para> |
510 | 476 |
|
511 |
<para><literal>create language 'plpgsql';</literal></para> |
|
512 |
|
|
513 |
<para>Achtung: In älteren Postgresversionen (vor 8.0) muss der Handler |
|
514 |
für die Sprache manuell anlelegt werden, diese Versionen werden aber |
|
515 |
nicht mehr offiziell von Lx-Office unterstützt. Dafür dann die |
|
516 |
folgenden Kommandos:</para> |
|
517 |
|
|
518 |
<para><literal>create function plpgsql_call_handler () returns opaque |
|
519 |
as '/usr/lib/pgsql/plpgsql.so' language 'c'; create language 'plpgsql' |
|
520 |
handler plpgsql_call_handler lancompiler 'pl/pgsql';</literal></para> |
|
521 |
|
|
522 |
<para>Bitte beachten Sie, dass der Pfad zur Datei |
|
523 |
<literal>plpgsql.so</literal> von Distribution zu Distribution |
|
524 |
verschiedlich sein kann. Bei Debian/Ubuntu befindet sie sich unter |
|
525 |
<literal>/usr/lib/postgresql/lib/plpgsql.so</literal>.</para> |
|
526 |
|
|
477 |
<programlisting>create language 'plpgsql';</programlisting> |
|
527 | 478 |
<!-- --> |
528 | 479 |
</sect2> |
529 | 480 |
|
... | ... | |
535 | 486 |
anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen |
536 | 487 |
können:</para> |
537 | 488 |
|
538 |
<para><literal>su - postgres createuser -d -P |
|
539 |
lxoffice</literal></para> |
|
489 |
<programlisting>su - postgres createuser -d -P lxoffice</programlisting> |
|
540 | 490 |
|
541 | 491 |
<para>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern |
542 | 492 |
Sie den evtl. voreingestellten Benutzer “postgres” auf “lxoffice” bzw. |
... | ... | |
564 | 514 |
anderen Datei hinzu, die beim Starten des Webservers eingelesen |
565 | 515 |
wird:</para> |
566 | 516 |
|
567 |
<para><literal> AddHandler cgi-script .pl Alias /lx-erp/ |
|
568 |
/var/www/lx-erp/ <Directory /var/www/lx-erp> Options ExecCGI |
|
569 |
Includes FollowSymlinks </Directory> <Directory |
|
570 |
/var/www/lx-erp/users> Order Deny,Allow Deny from All |
|
571 |
</Directory> </literal></para> |
|
517 |
<programlisting>AddHandler cgi-script .pl |
|
518 |
Alias /lx-erp/ /var/www/lx-erp/ |
|
519 |
|
|
520 |
<Directory /var/www/lx-erp> |
|
521 |
Options ExecCGI |
|
522 |
Includes FollowSymlinks |
|
523 |
</Directory> |
|
524 |
|
|
525 |
<Directory /var/www/lx-erp/users> |
|
526 |
Order Deny,Allow |
|
527 |
Deny from All |
|
528 |
</Directory></programlisting> |
|
572 | 529 |
|
573 | 530 |
<para>Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher |
574 | 531 |
das Lx-Office-Archiv entpacket haben.</para> |
575 | 532 |
|
576 |
<para>Achtung: Vor den einzelnen Optionen muss bei einigen |
|
577 |
Distributionen ein Plus ‘<literal>+</literal>’ gesetzt werden.</para> |
|
533 |
<note> |
|
534 |
<para>Vor den einzelnen Optionen muss bei einigen Distributionen ein Plus ‘<literal>+</literal>’ gesetzt werden.</para> |
|
535 |
</note> |
|
578 | 536 |
|
579 | 537 |
<para>Auf einigen Webservern werden manchmal die Grafiken und |
580 | 538 |
Style-Sheets nicht ausgeliefert. In solchen Fällen hat es oft |
581 | 539 |
geholfen, die folgende Option in die Konfiguration aufzunehmen:</para> |
582 | 540 |
|
583 |
<para><literal>EnableSendfile Off</literal></para>
|
|
541 |
<programlisting>EnableSendfile Off</programlisting>
|
|
584 | 542 |
</sect2> |
585 | 543 |
|
586 | 544 |
<sect2 id="Apache-Konfiguration.FCGI" |
... | ... | |
644 | 602 |
verwendet.</para> |
645 | 603 |
|
646 | 604 |
<warning> |
647 |
<para>FCGI 0.69 und höher ist extrem strict in der Behandlung von |
|
648 |
Unicode, und verweigert bestimmte Eingaben von Lx-Office. Falls es |
|
649 |
Probleme mit Umlauten in Ihrere Installation gibt, muss auf die |
|
650 |
Vorgängerversion FCGI 0.68 ausgewichen werden.</para> |
|
651 |
</warning> |
|
605 |
<para> |
|
606 |
FCGI 0.69 und höher ist extrem strict in der Behandlung von Unicode, und verweigert bestimmte Eingaben von Lx-Office. Falls es |
|
607 |
Probleme mit Umlauten in Ihrere Installation gibt, muss auf die Vorgängerversion FCGI 0.68 ausgewichen werden. |
|
608 |
</para> |
|
652 | 609 |
|
653 |
<para>Mit CPAN lässt sie sich die Vorgängerversion wie folgt |
|
654 |
installieren:</para> |
|
610 |
<para> |
|
611 |
Mit CPAN lässt sie sich die Vorgängerversion wie folgt installieren: |
|
612 |
</para> |
|
655 | 613 |
|
656 |
<programlisting>force install M/MS/MSTROUT/FCGI-0.68.tar.gz</programlisting> |
|
614 |
<programlisting>force install M/MS/MSTROUT/FCGI-0.68.tar.gz</programlisting> |
|
615 |
</warning> |
|
657 | 616 |
</sect3> |
658 | 617 |
|
659 | 618 |
<sect3 id="Apache-Konfiguration.FCGI.Konfiguration"> |
... | ... | |
676 | 635 |
dem Installationspfad von Lx-Office im Dateisystem |
677 | 636 |
("<filename>/path/to/lx-office-erp</filename>") und der URL |
678 | 637 |
unterschieden, unter der Lx-Office im Webbrowser erreichbar ist |
679 |
("<filename>/web/path/to/lx-office-erp</filename>").</para>
|
|
638 |
("<filename>/url/for/lx-office-erp</filename>").</para>
|
|
680 | 639 |
|
681 | 640 |
<para>Folgender Konfigurationsschnipsel funktioniert mit |
682 | 641 |
mod_fastcgi:</para> |
683 | 642 |
|
684 |
<programlisting>AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fcgi
|
|
685 |
Alias /web/path/to/lx-office-erp/ /path/to/lx-office-erp/
|
|
643 |
<programlisting>AliasMatch ^/url/for/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fcgi
|
|
644 |
Alias /url/for/lx-office-erp/ /path/to/lx-office-erp/
|
|
686 | 645 |
|
687 | 646 |
<Directory /path/to/lx-office-erp> |
688 | 647 |
AllowOverride All |
... | ... | |
705 | 664 |
<para>Das ganze sollte dann so aussehen:</para> |
706 | 665 |
|
707 | 666 |
<programlisting>AddHandler fcgid-script .fpl |
708 |
AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
|
|
709 |
Alias /web/path/to/lx-office-erp/ /path/to/lx-office-erp/
|
|
667 |
AliasMatch ^/url/for/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
|
|
668 |
Alias /url/for/lx-office-erp/ /path/to/lx-office-erp/
|
|
710 | 669 |
FcgidMaxRequestLen 10485760 |
711 | 670 |
|
712 | 671 |
<Directory /path/to/lx-office-erp> |
... | ... | |
731 | 690 |
wie oben beschrieben, die URLs werden aber umgeleitet:</para> |
732 | 691 |
|
733 | 692 |
<programlisting># Zugriff über CGI |
734 |
Alias /web/path/to/lx-office-erp /path/to/lx-office-erp
|
|
693 |
Alias /url/for/lx-office-erp /path/to/lx-office-erp
|
|
735 | 694 |
|
736 | 695 |
# Zugriff mit mod_fcgid: |
737 |
AliasMatch ^/web/path/to/lx-office-erp-fcgid/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl |
|
738 |
Alias /web/path/to/lx-office-erp-fcgid/ /path/to/lx-office-erp/</programlisting> |
|
739 |
|
|
740 |
<para>Dann ist unter |
|
741 |
<filename>/web/path/to/lx-office-erp/</filename> die normale Version |
|
742 |
erreichbar, und unter |
|
743 |
<constant>/web/path/to/lx-office-erp-fcgid/</constant> die |
|
744 |
FastCGI-Version.</para> |
|
696 |
AliasMatch ^/url/for/lx-office-erp-fcgid/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl |
|
697 |
Alias /url/for/lx-office-erp-fcgid/ /path/to/lx-office-erp/</programlisting> |
|
698 |
|
|
699 |
<para>Dann ist unter <filename>/url/for/lx-office-erp/</filename> die normale Version erreichbar, und unter |
|
700 |
<constant>/url/for/lx-office-erp-fcgid/</constant> die FastCGI-Version.</para> |
|
745 | 701 |
</sect3> |
746 | 702 |
</sect2> |
747 | 703 |
</sect1> |
... | ... | |
764 | 720 |
<filename>config/lx_office.conf</filename>. Die dort verfügbaren |
765 | 721 |
Optionen sind:</para> |
766 | 722 |
|
767 |
<itemizedlist> |
|
723 |
<variablelist> |
|
724 |
<varlistentry> |
|
725 |
<term><varname>login</varname></term> |
|
768 | 726 |
<listitem> |
769 |
<para><literal>login</literal>: gültiger Lx-Office-Benutzername,
|
|
770 |
der benutzt wird, um die zu verwendende Datenbankverbindung
|
|
771 |
auszulesen. Der Benutzer muss in der Administration angelegt
|
|
772 |
werden. Diese Option muss angegeben werden.</para>
|
|
727 |
<para>
|
|
728 |
gültiger Lx-Office-Benutzername, der benutzt wird, um die zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss in
|
|
729 |
der Administration angelegt werden. Diese Option muss angegeben werden.
|
|
730 |
</para> |
|
773 | 731 |
</listitem> |
732 |
</varlistentry> |
|
774 | 733 |
|
734 |
<varlistentry> |
|
735 |
<term><varname>run_as</varname></term> |
|
775 | 736 |
<listitem> |
776 |
<para><literal>run_as</literal>: Wird der Server vom |
|
777 |
Systembenutzer <literal>root</literal> gestartet, so wechselt er |
|
778 |
auf den mit <literal>run_as</literal> angegebenen Systembenutzer. |
|
779 |
Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, |
|
780 |
wie auch der Webserverbenutzer (siehe see <xref |
|
781 |
linkend="Manuelle-Installation-des-Programmpaketes"/>). Daher ist |
|
782 |
es sinnvoll, hier denselben Systembenutzer einzutragen, unter dem |
|
783 |
auch der Webserver läuft.</para> |
|
737 |
<para> |
|
738 |
Wird der Server vom Systembenutzer <literal>root</literal> gestartet, so wechselt er auf den mit <literal>run_as</literal> |
|
739 |
angegebenen Systembenutzer. Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie auch der Webserverbenutzer |
|
740 |
(siehe see <xref linkend="Manuelle-Installation-des-Programmpaketes"/>). Daher ist es sinnvoll, hier denselben Systembenutzer |
|
741 |
einzutragen, unter dem auch der Webserver läuft. |
|
742 |
</para> |
|
784 | 743 |
</listitem> |
744 |
</varlistentry> |
|
785 | 745 |
|
746 |
<varlistentry> |
|
747 |
<term><varname>debug</varname></term> |
|
786 | 748 |
<listitem> |
787 |
<para><literal>debug</literal>: Schaltet Debug-Informationen an |
|
788 |
und aus.</para> |
|
749 |
<para> |
|
750 |
Schaltet Debug-Informationen an und aus. |
|
751 |
</para> |
|
789 | 752 |
</listitem> |
790 |
</itemizedlist> |
|
753 |
</varlistentry> |
|
754 |
</variablelist> |
|
791 | 755 |
</sect2> |
792 | 756 |
|
793 | 757 |
<sect2 id="Einbinden-in-den-Boot-Prozess"> |
... | ... | |
818 | 782 |
<listitem> |
819 | 783 |
<para>Debian-basierende Systeme:</para> |
820 | 784 |
|
821 |
<para><literal>update-rc.d lx-office-task-server defaults # Nur
|
|
822 |
bei Debian Squeeze und neuer: insserv
|
|
823 |
lx-office-task-server</literal></para>
|
|
785 |
<programlisting>update-rc.d lx-office-task-server defaults
|
|
786 |
# Nur bei Debian Squeeze und neuer:
|
|
787 |
insserv lx-office-task-server</programlisting>
|
|
824 | 788 |
</listitem> |
825 | 789 |
|
826 | 790 |
<listitem> |
827 | 791 |
<para>OpenSuSE und Fedora Core:</para> |
828 | 792 |
|
829 |
<para><literal>chkconfig --add |
|
830 |
lx-office-task-server</literal></para> |
|
793 |
<programlisting>chkconfig --add lx-office-task-server</programlisting> |
|
831 | 794 |
</listitem> |
832 | 795 |
</itemizedlist> |
833 | 796 |
|
834 |
<para>Danach kann der Task-Server mit dem folgenden Befehl gestartet |
|
835 |
werden: <literal>/etc/init.d/lx-office-task-server |
|
836 |
start</literal></para> |
|
797 |
<para>Danach kann der Task-Server mit dem folgenden Befehl gestartet werden: <command>/etc/init.d/lx-office-task-server |
|
798 |
start</command></para> |
|
837 | 799 |
</sect3> |
838 | 800 |
|
839 | 801 |
<sect3> |
... | ... | |
845 | 807 |
Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile |
846 | 808 |
<literal>exec ....</literal>).</para> |
847 | 809 |
|
848 |
<para>Danach kann der Task-Server mit dem folgenden Befehl gestartet |
|
849 |
werden: <literal>service lx-office-task-server |
|
850 |
start</literal></para> |
|
810 |
<para>Danach kann der Task-Server mit dem folgenden Befehl gestartet werden: <command>service lx-office-task-server |
|
811 |
start</command></para> |
|
851 | 812 |
</sect3> |
852 | 813 |
</sect2> |
853 | 814 |
|
... | ... | |
856 | 817 |
|
857 | 818 |
<para>Der Task-Server wird wie folgt kontrolliert:</para> |
858 | 819 |
|
859 |
<para><literal>./scripts/task_server.pl Befehl</literal></para>
|
|
820 |
<programlisting>./scripts/task_server.pl Befehl</programlisting>
|
|
860 | 821 |
|
861 | 822 |
<para><literal>Befehl</literal> ist dabei eine der folgenden |
862 | 823 |
Optionen:</para> |
... | ... | |
932 | 893 |
<sect2 id="Administratorpasswort"> |
933 | 894 |
<title>Administratorpasswort</title> |
934 | 895 |
|
935 |
<para>Das Passwort, das zum Zugriff auf das Aministrationsinterface |
|
936 |
benutzt wird, wird ebenfalls in dieser Datei gespeichert. Es kann auch |
|
937 |
nur dort und nicht mehr im Administrationsinterface selber geändert |
|
938 |
werden. Der Parameter dazu heißt |
|
939 |
<literal>$self->{admin_password}</literal>.</para> |
|
896 |
<para>Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt wird, wird ebenfalls in dieser Datei gespeichert. Es |
|
897 |
kann auch nur dort und nicht mehr im Administrationsinterface selber geändert werden. Der Parameter dazu heißt |
|
898 |
<varname>admin_password</varname> im Abschnitt <varname>[authentication]</varname>.</para> |
|
940 | 899 |
</sect2> |
941 | 900 |
|
942 | 901 |
<sect2 id="Authentifizierungsdatenbank"> |
943 | 902 |
<title>Authentifizierungsdatenbank</title> |
944 | 903 |
|
945 |
<para>Die Verbindung zur Authentifizierungsdatenbank wird mit den |
|
946 |
Parametern in <literal>$self->{DB_config}</literal> konfiguriert. |
|
947 |
Hier sind die folgenden Parameter anzugeben:</para> |
|
904 |
<para>Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern in <varname>[authentication/database]</varname> |
|
905 |
konfiguriert. Hier sind die folgenden Parameter anzugeben:</para> |
|
948 | 906 |
|
949 |
<itemizedlist> |
|
907 |
<variablelist> |
|
908 |
<varlistentry> |
|
909 |
<term><literal>host</literal></term> |
|
950 | 910 |
<listitem> |
951 |
<para>‘<literal>host</literal>’ – Der Rechnername oder die |
|
952 |
IP-Adresse des Datenbankservers</para> |
|
911 |
<para>Der Rechnername oder die IP-Adresse des Datenbankservers</para> |
|
953 | 912 |
</listitem> |
913 |
</varlistentry> |
|
954 | 914 |
|
915 |
<varlistentry> |
|
916 |
<term><literal>port</literal></term> |
|
955 | 917 |
<listitem> |
956 |
<para>‘<literal>port</literal>’ – Die Portnummer des |
|
957 |
Datenbankservers, meist 5432</para> |
|
918 |
<para>Die Portnummer des Datenbankservers, meist 5432</para> |
|
958 | 919 |
</listitem> |
920 |
</varlistentry> |
|
959 | 921 |
|
922 |
<varlistentry> |
|
923 |
<term><literal>db</literal></term> |
|
960 | 924 |
<listitem> |
961 |
<para>‘<literal>db</literal>’ – Der Name der |
|
962 |
Authentifizierungsdatenbank</para> |
|
925 |
<para>Der Name der Authentifizierungsdatenbank</para> |
|
963 | 926 |
</listitem> |
927 |
</varlistentry> |
|
964 | 928 |
|
929 |
<varlistentry> |
|
930 |
<term><literal>user</literal></term> |
|
965 | 931 |
<listitem> |
966 |
<para>‘<literal>user</literal>’ – Der Benutzername, mit dem sich |
|
967 |
Lx-Office beim Datenbankserver anmeldet (z.B. “postgres”)</para> |
|
932 |
<para>Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. "<literal>postgres</literal>")</para> |
|
968 | 933 |
</listitem> |
934 |
</varlistentry> |
|
969 | 935 |
|
936 |
<varlistentry> |
|
937 |
<term><literal>password</literal></term> |
|
970 | 938 |
<listitem> |
971 |
<para>‘<literal>password</literal>’ – Das Passwort für den |
|
972 |
Datenbankbenutzer</para> |
|
939 |
<para>Das Passwort für den Datenbankbenutzer</para> |
|
973 | 940 |
</listitem> |
974 |
</itemizedlist> |
|
941 |
</varlistentry> |
|
942 |
</variablelist> |
|
975 | 943 |
|
976 | 944 |
<para>Die Datenbank muss noch nicht existieren. Lx-Office kann sie |
977 | 945 |
automatisch anlegen (mehr dazu siehe unten).</para> |
... | ... | |
980 | 948 |
<sect2 id="Passwortüberprüfung"> |
981 | 949 |
<title>Passwortüberprüfung</title> |
982 | 950 |
|
983 |
<para>Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen |
|
984 |
die Authentifizierungsdatenbank und gegen einen externen LDAP- oder |
|
985 |
Active-Directory-Server. Welche davon benutzt wird, regelt der |
|
986 |
Parameter <literal>$self->{module}</literal>.</para> |
|
951 |
<para>Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die Authentifizierungsdatenbank und gegen einen externen LDAP- |
|
952 |
oder Active-Directory-Server. Welche davon benutzt wird, regelt der Parameter <varname>module</varname> im Abschnitt |
|
953 |
<varname>[authentication]</varname>.</para> |
|
987 | 954 |
|
988 |
<para>Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank |
|
989 |
gespeichert werden, so muss der Parameter |
|
990 |
<literal>$self->{module}</literal> den Wert ‘<literal>DB</literal>’ |
|
991 |
enthalten. In diesem Fall können sowohl der Administrator als auch die |
|
955 |
<para>Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank gespeichert werden, so muss der Parameter |
|
956 |
<varname>module</varname> den Wert <literal>DB</literal> enthalten. In diesem Fall können sowohl der Administrator als auch die |
|
992 | 957 |
Benutzer selber ihre Psaswörter in Lx-Office ändern.</para> |
993 | 958 |
|
994 |
<para>Soll hingegen ein externer LDAP- oder Active-Directory-Server |
|
995 |
benutzt werden, so muss der Parameter |
|
996 |
<literal>$self->{module}</literal> auf ‘<literal>LDAP</literal>’ |
|
997 |
gesetzt werden. In diesem Fall müssen zusätzliche Informationen über |
|
998 |
den LDAP-Server in <literal>$self->{LDAP_config}</literal> |
|
999 |
angegeben werden:</para> |
|
959 |
<para>Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt werden, so muss der Parameter <varname>module</varname> |
|
960 |
auf <literal>LDAP</literal> gesetzt werden. In diesem Fall müssen zusätzliche Informationen über den LDAP-Server im Abschnitt |
|
961 |
<literal>[authentication/ldap]</literal> angegeben werden:</para> |
|
1000 | 962 |
|
1001 |
<itemizedlist> |
|
963 |
<variablelist> |
|
964 |
<varlistentry> |
|
965 |
<term><literal>host</literal></term> |
|
1002 | 966 |
<listitem> |
1003 |
<para>‘<literal>host</literal>’ – Der Rechnername oder die |
|
1004 |
IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe |
|
1005 |
ist zwingend erforderlich.</para> |
|
967 |
<para>Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend |
|
968 |
erforderlich.</para> |
|
1006 | 969 |
</listitem> |
970 |
</varlistentry> |
|
1007 | 971 |
|
972 |
<varlistentry> |
|
973 |
<term><literal>port</literal></term> |
|
1008 | 974 |
<listitem> |
1009 |
<para>‘<literal>port</literal>’ – Die Portnummer des LDAP-Servers; |
|
1010 |
meist 389.</para> |
|
975 |
<para>Die Portnummer des LDAP-Servers; meist 389.</para> |
|
1011 | 976 |
</listitem> |
977 |
</varlistentry> |
|
1012 | 978 |
|
979 |
<varlistentry> |
|
980 |
<term><literal>tls</literal></term> |
|
1013 | 981 |
<listitem> |
1014 |
<para>‘<literal>tls</literal>’ – Wenn Verbindungsverschlüsselung |
|
1015 |
gewünscht ist, so diesen Wert auf ‘<literal>1</literal>’ setzen, |
|
1016 |
andernfalls auf ‘<literal>0</literal>’ belassen</para> |
|
982 |
<para>Wenn Verbindungsverschlüsselung gewünscht ist, so diesen Wert auf ‘<literal>1</literal>’ setzen, andernfalls auf |
|
983 |
‘<literal>0</literal>’ belassen</para> |
|
1017 | 984 |
</listitem> |
985 |
</varlistentry> |
|
1018 | 986 |
|
987 |
<varlistentry> |
|
988 |
<term><literal>attribute</literal></term> |
|
1019 | 989 |
<listitem> |
1020 |
<para>‘<literal>attribute</literal>’ – Das LDAP-Attribut, in dem |
|
1021 |
der Benutzername steht, den der Benutzer eingegeben hat. Für |
|
1022 |
Active-Directory-Server ist dies meist |
|
1023 |
‘<literal>sAMAccountName</literal>’, für andere LDAP-Server |
|
1024 |
hingegen ‘<literal>uid</literal>’. Diese Angabe ist zwingend |
|
990 |
<para>Das LDAP-Attribut, in dem der Benutzername steht, den der Benutzer eingegeben hat. Für Active-Directory-Server ist dies |
|
991 |
meist ‘<literal>sAMAccountName</literal>’, für andere LDAP-Server hingegen ‘<literal>uid</literal>’. Diese Angabe ist zwingend |
|
1025 | 992 |
erforderlich.</para> |
1026 | 993 |
</listitem> |
994 |
</varlistentry> |
|
1027 | 995 |
|
996 |
<varlistentry> |
|
997 |
<term><literal>base_dn</literal></term> |
|
1028 | 998 |
<listitem> |
1029 |
<para>‘<literal>base_dn</literal>’ – Der Abschnitt des |
|
1030 |
LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend |
|
1031 |
erforderlich.</para> |
|
999 |
<para>Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich.</para> |
|
1032 | 1000 |
</listitem> |
1001 |
</varlistentry> |
|
1033 | 1002 |
|
1003 |
<varlistentry> |
|
1004 |
<term><literal>filter</literal></term> |
|
1034 | 1005 |
<listitem> |
1035 |
<para>‘<literal>filter</literal>’ – Ein optionaler LDAP-Filter. |
|
1036 |
Enthält dieser Filter das Wort <literal><%login%></literal>, |
|
1037 |
so wird dieses durch den vom Benutzer eingegebenen Benutzernamen |
|
1038 |
ersetzt. Andernfalls wird der LDAP-Baum nach einem Element |
|
1039 |
durchsucht, bei dem das oben angegebene Attribut mit dem |
|
1040 |
Benutzernamen identisch ist.</para> |
|
1006 |
<para>Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort <literal><%login%></literal>, so wird dieses durch den |
|
1007 |
vom Benutzer eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum nach einem Element durchsucht, bei dem das oben |
|
1008 |
angegebene Attribut mit dem Benutzernamen identisch ist.</para> |
|
1041 | 1009 |
</listitem> |
1010 |
</varlistentry> |
|
1042 | 1011 |
|
1012 |
<varlistentry> |
|
1013 |
<term><literal>bind_dn</literal> und <literal>bind_password</literal></term> |
|
1043 | 1014 |
<listitem> |
1044 |
<para>‘<literal>bind_dn</literal>’ und |
|
1045 |
‘<literal>bind_password</literal>’ – Wenn der LDAP-Server eine |
|
1046 |
Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist |
|
1047 |
dies bei Active-Directory-Servern der Fall), so kann diese hier |
|
1048 |
angegeben werden. Für Active-Directory-Server kann als |
|
1049 |
‘<literal>bind_dn</literal>’ entweder eine komplette LDAP-DN wie |
|
1050 |
z.B. ‘<literal>cn=Martin |
|
1051 |
Mustermann,cn=Users,dc=firmendomain</literal>’ auch nur der volle |
|
1052 |
Name des Benutzers eingegeben werden; in diesem Beispiel also |
|
1053 |
‘<literal>Martin Mustermann</literal>’.</para> |
|
1015 |
<para>Wenn der LDAP-Server eine Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist dies bei Active-Directory-Servern |
|
1016 |
der Fall), so kann diese hier angegeben werden. Für Active-Directory-Server kann als ‘<literal>bind_dn</literal>’ entweder eine |
|
1017 |
komplette LDAP-DN wie z.B. ‘<literal>cn=Martin Mustermann,cn=Users,dc=firmendomain</literal>’ auch nur der volle Name des |
|
1018 |
Benutzers eingegeben werden; in diesem Beispiel also ‘<literal>Martin Mustermann</literal>’.</para> |
|
1054 | 1019 |
</listitem> |
1055 |
</itemizedlist> |
|
1020 |
</varlistentry> |
|
1021 |
</variablelist> |
|
1056 | 1022 |
</sect2> |
1057 | 1023 |
|
1058 | 1024 |
<sect2 id="Name-des-Session-Cookies"> |
1059 | 1025 |
<title>Name des Session-Cookies</title> |
1060 | 1026 |
|
1061 |
<para>Sollen auf einem Server mehrere Lx-Office-Installationen |
|
1062 |
aufgesetzt werden, so müssen die Namen der Session-Cookies für alle |
|
1063 |
Installationen unterschiedlich sein. Der Name des Cookies wird mit dem |
|
1064 |
Parameter <literal>$self->{cookie_name}</literal> gesetzt.</para> |
|
1027 |
<para>Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt werden, so müssen die Namen der Session-Cookies für alle |
|
1028 |
Installationen unterschiedlich sein. Der Name des Cookies wird mit dem Parameter <varname>cookie_name</varname> im Abschnitt |
|
1029 |
<varname>[authentication]</varname>gesetzt.</para> |
|
1065 | 1030 |
|
1066 | 1031 |
<para>Diese Angabe ist optional, wenn nur eine Installation auf dem |
1067 | 1032 |
Server existiert.</para> |
... | ... | |
1406 | 1371 |
|
1407 | 1372 |
<variablelist> |
1408 | 1373 |
<varlistentry> |
1409 |
<term>profit_determination</term>
|
|
1374 |
<term><varname>profit_determination</varname></term>
|
|
1410 | 1375 |
<listitem> |
1411 | 1376 |
<para> |
1412 | 1377 |
Dieser Parameter legt die Berechnungsmethode für die Gewinnermittlung fest. Er enthält entweder <literal>balance</literal> für |
... | ... | |
1416 | 1381 |
</varlistentry> |
1417 | 1382 |
|
1418 | 1383 |
<varlistentry> |
1419 |
<term>accounting_method</term>
|
|
1384 |
<term><varname>accounting_method</varname></term>
|
|
1420 | 1385 |
<listitem> |
1421 | 1386 |
<para> |
1422 | 1387 |
Dieser Parameter steuert die Buchungs- und Berechnungsmethoden für die Versteuerungsart. Er enthält entweder |
... | ... | |
1426 | 1391 |
</varlistentry> |
1427 | 1392 |
|
1428 | 1393 |
<varlistentry> |
1429 |
<term>inventory_system</term>
|
|
1394 |
<term><varname>inventory_system</varname></term>
|
|
1430 | 1395 |
<listitem> |
1431 | 1396 |
<para> |
1432 | 1397 |
Dieser Parameter legt die Warenbuchungsmethode fest. Er enthält entweder <literal>perpetual</literal> für die Bestandsmethode |
... | ... | |
1516 | 1481 |
</sect1> |
1517 | 1482 |
</chapter> |
1518 | 1483 |
|
1519 |
<chapter id="features" xreflabel="Features und Funktionen">
|
|
1484 |
<chapter id="features" xreflabel="Features und Funktionen"> |
|
1520 | 1485 |
<title>Features und Funktionen</title> |
1521 | 1486 |
|
1522 | 1487 |
<sect1 id="features.periodic-invoices" xreflabel="Wiedekehrende Rechnungen"> |
... | ... | |
1666 | 1631 |
</para> |
1667 | 1632 |
</sect2> |
1668 | 1633 |
</sect1> |
1669 |
</chapter> |
|
1670 | 1634 |
|
1671 |
<chapter>
|
|
1672 |
<title>Entwicklerdokumentation</title>
|
|
1635 |
<sect1 id="dokumentenvorlagen-und-variablen">
|
|
1636 |
<title>Dokumentenvorlagen und verfügbare Variablen</title>
|
|
1673 | 1637 |
|
1674 |
<sect1 id="devel.globals" xreflabel="Globale Variablen">
|
|
1675 |
<title>Globale Variablen</title>
|
|
1638 |
<sect2 id="dokumentenvorlagen-und-variablen.einführung">
|
|
1639 |
<title>Einführung</title>
|
|
1676 | 1640 |
|
1677 |
<sect2> |
|
1678 |
<title>Wie sehen globale Variablen in Perl aus?</title> |
|
1641 |
<para>Dies ist eine Auflistung der Standard-Dokumentenvorlagen und |
|
1642 |
aller zur Bearbeitung verfügbaren Variablen. Eine Variable wird in |
|
1643 |
einer Vorlage durch ihren Inhalt ersetzt, wenn sie in der Form |
|
1644 |
<function><%variablenname%></function> verwendet wird. Für |
|
1645 |
LaTeX- und HTML-Vorlagen kann man die Form dieser Tags auch verändern |
|
1646 |
(siehe <xref |
|
1647 |
linkend="dokumentenvorlagen-und-variablen.tag-style"/>).</para> |
|
1679 | 1648 |
|
1680 |
<para>Globale Variablen liegen in einem speziellen namespace namens
|
|
1681 |
"main", der von überall erreichbar ist. Darüber hinaus sind bareword
|
|
1682 |
globs global und die meisten speziellen Variablen sind...
|
|
1683 |
speziell.</para>
|
|
1649 |
<para>Früher wurde hier nur über LaTeX gesprochen. Inzwischen
|
|
1650 |
unterstützt Lx-Office aber auch OpenDocument-Vorlagen. Sofern es nicht
|
|
1651 |
ausdrücklich eingeschränkt wird, gilt das im Folgenden gesagte für
|
|
1652 |
alle Vorlagenarten.</para>
|
|
1684 | 1653 |
|
1685 |
<para>Daraus ergeben sich folgende Formen:</para> |
|
1654 |
<para>Insgesamt sind technisch gesehen eine ganze Menge mehr Variablen |
|
1655 |
verfügbar als hier aufgelistet werden. Die meisten davon können |
|
1656 |
allerdings innerhalb einer solchen Vorlage nicht sinnvoll verwendet |
|
1657 |
werden. Wenn eine Auflistung dieser Variablen gewollt ist, so kann |
|
1658 |
diese wie folgt erhalten werden:</para> |
|
1659 |
|
|
1660 |
<itemizedlist> |
|
1661 |
<listitem> |
|
1662 |
<para><filename>SL/Form.pm</filename> öffnen und am Anfang die |
|
1663 |
Zeile "<command>use Data::Dumper;</command>" einfügen.</para> |
|
1664 |
</listitem> |
|
1665 |
|
|
1666 |
<listitem> |
|
1667 |
<para>In <filename>Form.pm</filename> die Funktion |
|
1668 |
<function>parse_template</function> suchen und hier die Zeile |
|
1669 |
<command>print(STDERR Dumper($self));</command> einfügen.</para> |
|
1670 |
</listitem> |
|
1671 |
|
|
1672 |
<listitem> |
|
1673 |
<para>Einmal per Browser die gewünschte Vorlage "benutzen", z.B. |
|
1674 |
ein PDF für eine Rechnung erzeugen.</para> |
|
1675 |
</listitem> |
|
1676 |
|
|
1677 |
<listitem> |
|
1678 |
<para>Im <filename>error.log</filename> Apache steht die Ausgabe |
|
1679 |
der Variablen <varname>$self</varname> in der Form <varname>'key' |
|
1680 |
=> 'value',</varname>. Alle <varname>key</varname>s sind |
|
1681 |
verfügbar.</para> |
|
1682 |
</listitem> |
|
1683 |
</itemizedlist> |
|
1684 |
</sect2> |
|
1685 |
|
|
1686 |
<sect2 id="dokumentenvorlagen-und-variablen.variablen-ausgeben"> |
|
1687 |
<title>Variablen ausgeben</title> |
|
1688 |
|
|
1689 |
<para>Um eine Variable auszugeben, müssen sie einfach nur zwischen die |
|
1690 |
Tags geschrieben werden, also z.B. |
|
1691 |
<varname><%variablenname%></varname>.</para> |
|
1692 |
|
|
1693 |
<para>Optional kann man auch mit Leerzeichen getrennte Flags angeben, |
|
1694 |
die man aber nur selten brauchen wird. Die Syntax sieht also so aus: |
|
1695 |
<varname><%variablenname FLAG1 FLAG2%></varname>. Momentan |
|
1696 |
werden die folgenden Flags unterstützt:</para> |
|
1697 |
|
|
1698 |
<itemizedlist> |
|
1699 |
<listitem> |
|
1700 |
<para><option>NOFORMAT</option> gilt nur für Zahlenwerte und gibt |
|
1701 |
den Wert ohne Formatierung, also ohne Tausendertrennzeichen mit |
|
1702 |
mit einem Punkt als Dezimaltrennzeichen aus. Nützlich z.B., wenn |
|
1703 |
damit in der Vorlage z.B. von LaTeX gerechnet werden soll.</para> |
|
1704 |
</listitem> |
|
1705 |
|
|
1706 |
<listitem> |
|
1707 |
<para><option>NOESCAPE</option> unterdrückt das Escapen von |
|
1708 |
Sonderzeichen für die Vorlagensprache. Wenn also in einer |
|
1709 |
Variablen bereits gültiger LaTeX-Code steht und dieser von LaTeX |
|
1710 |
auch ausgewertet und nicht wortwörtlich angezeigt werden soll, so |
|
1711 |
ist dieses Flag sinnvoll.</para> |
|
1712 |
</listitem> |
|
1713 |
</itemizedlist> |
|
1714 |
|
|
1715 |
<para>Beispiel:</para> |
|
1716 |
|
|
1717 |
<programlisting><%quototal NOFORMAT%></programlisting> |
|
1718 |
</sect2> |
|
1719 |
|
|
1720 |
<sect2 id="dokumentenvorlagen-und-variablen.verwendung-in-druckbefehlen"> |
|
1721 |
<title>Verwendung in Druckbefehlen</title> |
|
1722 |
|
|
1723 |
<para>In der Admininstration können Drucker definiert werden. Auch im |
|
1724 |
dort eingebbaren Druckbefehl können die hier aufgelisteten Variablen |
|
1725 |
und Kontrollstrukturen verwendet werden. Ihr Inhalt wird dabei nach |
|
1726 |
den Regeln der gängigen Shells formatiert, sodass Sonderzeichen wie |
|
1727 |
<function>`...`</function> nicht zu unerwünschtem Verhalten |
|
1728 |
führen.</para> |
|
1729 |
|
|
1730 |
<para>Dies erlaubt z.B. die Definition eines Faxes als Druckerbefehl, |
|
1731 |
für das die Telefonnummer eines Ansprechpartners als Teil der |
|
1732 |
Kommandozeile verwendet wird. Für ein fiktives Kommando könnte das |
|
1733 |
z.B. wie folgt aussehen:</para> |
|
1734 |
|
|
1735 |
<programlisting>send_fax --number <%if cp_phone2%><%cp_phone2%><%else%><%cp_phone1%><%end%></programlisting> |
|
1736 |
</sect2> |
|
1737 |
|
|
1738 |
<sect2 id="dokumentenvorlagen-und-variablen.tag-style" |
|
1739 |
xreflabel="Anfang und Ende der Tags verändern"> |
|
1740 |
<title>Anfang und Ende der Tags verändern</title> |
|
1741 |
|
|
1742 |
<para>Der Standardstil für Tags sieht vor, dass ein Tag mit dem |
|
1743 |
Kleinerzeichen und einem Prozentzeichen beginnt und mit dem |
|
1744 |
Prozentzeichen und dem Größerzeichen endet, beispielsweise |
|
1745 |
<function><%customer%></function>. Da diese Form aber z.B. in |
|
1746 |
LaTeX zu Problemen führen kann, weil das Prozentzeichen dort |
|
1747 |
Kommentare einleitet, kann pro HTML- oder LaTeX-Dokumentenvorlage der |
|
1748 |
Stil umgestellt werden.</para> |
|
1749 |
|
|
1750 |
<para>Dazu werden in die Datei Zeilen geschrieben, die mit dem für das |
|
1751 |
Format gültigen Kommentarzeichen anfangen, dann |
|
1752 |
<function>config:</function> enthalten, die entsprechende Option |
|
1753 |
setzen und bei HTML-Dokumentenvorlagen mit dem Kommentarendzeichen |
|
1754 |
enden. Beispiel für LaTeX:</para> |
|
1755 |
|
|
1756 |
<programlisting>% config: tag-style=($ $)</programlisting> |
|
1757 |
|
|
1758 |
<para>Dies würde Lx-Office dazu veranlassen, Variablen zu ersetzen, |
|
1759 |
wenn sie wie folgt aussehen: <function>($customer$)</function>. Das |
|
1760 |
äquivalente Beispiel für HTML-Dokumentenvorlagen sieht so aus:</para> |
|
1761 |
|
|
1762 |
<programlisting><!-- config: tag-style=($ $) --></programlisting> |
|
1763 |
</sect2> |
|
1764 |
|
|
1765 |
<sect2 id="dokumentenvorlagen-und-variablen.zuordnung-dateinamen"> |
|
1766 |
<title>Zuordnung von den Dateinamen zu den Funktionen</title> |
|
1767 |
|
|
1768 |
<para>Diese folgende kurze Auflistung zeigt, welche Vorlage bei |
|
1769 |
welcher Funktion ausgelesen wird. Dabei ist die Dateiendung |
|
1770 |
"<filename>.ext</filename>" geeignet zu ersetzen: |
|
1771 |
"<filename>.tex</filename>" für LaTeX-Vorlagen und |
|
1772 |
"<filename>.odt</filename>" für OpenDocument-Vorlagen.</para> |
|
1686 | 1773 |
|
1687 | 1774 |
<variablelist> |
1688 | 1775 |
<varlistentry> |
1689 |
<term>$main::form</term>
|
|
1776 |
<term><filename>bin_list.ext</filename></term>
|
|
1690 | 1777 |
|
1691 | 1778 |
<listitem> |
1692 |
<para>expliziter Namespace "main"</para>
|
|
1779 |
<para>Lagerliste</para>
|
|
1693 | 1780 |
</listitem> |
1694 | 1781 |
</varlistentry> |
1695 | 1782 |
|
1696 | 1783 |
<varlistentry> |
1697 |
<term>$::form</term>
|
|
1784 |
<term><filename>check.ext</filename></term>
|
|
1698 | 1785 |
|
1699 | 1786 |
<listitem> |
1700 |
<para>impliziter Namespace "main"</para>
|
|
1787 |
<para>?</para>
|
|
1701 | 1788 |
</listitem> |
1702 | 1789 |
</varlistentry> |
1703 | 1790 |
|
1704 | 1791 |
<varlistentry> |
1705 |
<term>open FILE, "file.txt"</term>
|
|
1792 |
<term><filename>invoice.ext</filename></term>
|
|
1706 | 1793 |
|
1707 | 1794 |
<listitem> |
1708 |
<para><varname>FILE</varname> ist global</para>
|
|
1795 |
<para>Rechnung</para>
|
|
1709 | 1796 |
</listitem> |
1710 | 1797 |
</varlistentry> |
1711 | 1798 |
|
1712 | 1799 |
<varlistentry> |
1713 |
<term>$_</term>
|
|
1800 |
<term><filename>packing_list.ext</filename></term>
|
|
1714 | 1801 |
|
1715 | 1802 |
<listitem> |
1716 |
<para>speziell</para>
|
|
1803 |
<para>Packliste</para>
|
|
1717 | 1804 |
</listitem> |
1718 | 1805 |
</varlistentry> |
1719 |
</variablelist> |
|
1720 |
|
|
1721 |
<para>Im Gegensatz zu <productname>PHP</productname> gibt es kein |
|
1722 |
Schlüsselwort wie "<function>global</function>", mit dem man |
|
1723 |
importieren kann. <function>my</function>, <function>our</function> |
|
1724 |
und <function>local</function> machen was anderes.</para> |
|
1725 | 1806 |
|
1726 |
<variablelist> |
|
1727 | 1807 |
<varlistentry> |
1728 |
<term>my $form</term>
|
|
1808 |
<term><filename>pick_list.ext</filename></term>
|
|
1729 | 1809 |
|
1730 | 1810 |
<listitem> |
1731 |
<para>lexikalische Variable, gültig bis zum Ende des |
|
1732 |
Scopes</para> |
|
1811 |
<para>Sammelliste</para> |
|
1733 | 1812 |
</listitem> |
1734 | 1813 |
</varlistentry> |
1735 | 1814 |
|
1736 | 1815 |
<varlistentry> |
1737 |
<term>our $form</term>
|
|
1816 |
<term><filename>purchase_delivery_order.ext</filename></term>
|
|
1738 | 1817 |
|
1739 | 1818 |
<listitem> |
1740 |
<para><varname>$form</varname> referenziert ab hier |
|
1741 |
<varname>$PACKAGE::form</varname>.</para> |
|
1819 |
<para>Lieferschein (Einkauf)</para> |
|
1742 | 1820 |
</listitem> |
1743 | 1821 |
</varlistentry> |
1744 | 1822 |
|
1745 | 1823 |
<varlistentry> |
1746 |
<term>local $form</term>
|
|
1824 |
<term><filename>purcharse_order.ext</filename></term>
|
|
1747 | 1825 |
|
1748 | 1826 |
<listitem> |
1749 |
<para>Alle Änderungen an <varname>$form</varname> werden am Ende |
|
1750 |
des scopes zurückgesetzt</para> |
|
1827 |
<para>Bestellung an Lieferanten</para> |
|
1751 | 1828 |
</listitem> |
1752 | 1829 |
</varlistentry> |
1753 |
</variablelist> |
|
1754 |
</sect2> |
|
1755 | 1830 |
|
1756 |
<sect2>
|
|
1757 |
<title>Warum sind globale Variablen ein Problem?</title>
|
|
1831 |
<varlistentry>
|
|
1832 |
<term><filename>request_quotation.ext</filename></term>
|
|
1758 | 1833 |
|
1759 |
<para>Das erste Problem ist <productname>FCGI</productname>.</para> |
|
1834 |
<listitem> |
|
1835 |
<para>Anfrage an Lieferanten</para> |
|
1836 |
</listitem> |
|
1837 |
</varlistentry> |
|
1760 | 1838 |
|
1761 |
<para><productname>SQL-Ledger</productname> hat fast alles im globalen |
|
1762 |
namespace abgelegt, und erwartet, dass es da auch wiederzufinden ist. |
|
1763 |
Unter <productname>FCGI</productname> müssen diese Sachen auch wieder |
|
1764 |
aufgeräumt werden, damit sie nicht in den nächsten Request kommen. |
|
1765 |
Einige Sachen wiederum sollen nicht gelöscht werden, wie zum Beispiel |
|
1766 |
Datenbankverbindungen, weil die ne Ewigkeit zum initialisieren |
|
1767 |
brauchen.</para> |
|
1839 |
<varlistentry> |
|
1840 |
<term><filename>sales_delivery_order.ext</filename></term> |
|
1768 | 1841 |
|
1769 |
<para>Das zweite Problem ist <function>strict</function>. Unter |
|
1770 |
<function>strict</function> werden alle Variablen die nicht explizit |
|
1771 |
mit <function>Package</function>, <function>my</function> oder |
|
1772 |
<function>our</function> angegeben werden als Tippfehler angemarkert, |
|
1773 |
was einen vor so mancher Stunde suchen nach einem Bug erspart. Da |
|
1774 |
globale Variablen aber implizit mit Package angegeben werden, werden |
|
1775 |
die nicht geprüft, und ein Tippfehler da fällt niemandem auf.</para> |
|
1776 |
</sect2> |
|
1842 |
<listitem> |
|
1843 |
<para>Lieferschein (Verkauf)</para> |
|
1844 |
</listitem> |
|
1845 |
</varlistentry> |
|
1777 | 1846 |
|
1778 |
<sect2>
|
|
1779 |
<title>Kanonische globale Variablen</title>
|
|
1847 |
<varlistentry>
|
|
1848 |
<term><filename>sales_order.ext</filename></term>
|
|
1780 | 1849 |
|
1781 |
<para>Um dieses Problem im Griff zu halten gibt es einige wenige |
|
1782 |
globale Variablen, die kanonisch sind, und alles andere sollte |
|
1783 |
anderweitig umhergereicht werden.</para> |
|
1850 |
<listitem> |
|
1851 |
<para>Bestellung</para> |
|
1852 |
</listitem> |
|
1853 |
</varlistentry> |
|
1784 | 1854 |
|
1785 |
<para>Diese Variablen sind im Moment die folgenden neun:</para> |
|
1855 |
<varlistentry> |
|
1856 |
<term><filename>sales_quotation.ext</filename></term> |
|
1786 | 1857 |
|
1787 |
<itemizedlist>
|
|
1788 |
<listitem>
|
|
1789 |
<para><varname>$::form</varname></para>
|
|
1790 |
</listitem>
|
|
1858 |
<listitem>
|
|
1859 |
<para>Angebot an Kunden</para>
|
|
1860 |
</listitem>
|
|
1861 |
</varlistentry>
|
|
1791 | 1862 |
|
1792 |
<listitem> |
|
1793 |
<para><varname>%::myconfig</varname></para> |
|
1794 |
</listitem> |
|
1863 |
<varlistentry> |
|
1864 |
<term><filename>zahlungserinnerung.ext</filename></term> |
|
1795 | 1865 |
|
1796 |
<listitem> |
|
1797 |
<para><varname>$::locale</varname></para> |
|
1798 |
</listitem> |
|
1866 |
<listitem> |
|
1867 |
<para>Mahnung (Dateiname im Programm konfigurierbar)</para> |
|
1868 |
</listitem> |
|
1869 |
</varlistentry> |
|
1799 | 1870 |
|
1800 |
<listitem> |
|
1801 |
<para><varname>$::lxdebug</varname></para> |
|
1802 |
</listitem> |
|
1871 |
<varlistentry> |
|
1872 |
<term><filename>zahlungserinnerung_invoice.ext</filename></term> |
|
1803 | 1873 |
|
1804 |
<listitem> |
|
1805 |
<para><varname>$::auth</varname></para> |
|
1806 |
</listitem> |
|
1874 |
<listitem> |
|
1875 |
<para>Rechnung über Mahngebühren (Dateiname im Programm |
|
1876 |
konfigurierbar)</para> |
|
1877 |
</listitem> |
|
1878 |
</varlistentry> |
|
1879 |
</variablelist> |
|
1880 |
</sect2> |
|
1881 |
|
|
1882 |
<sect2 id="dokumentenvorlagen-und-variablen.dateinamen-erweitert"> |
|
1883 |
<title>Sprache, Drucker und E-Mail</title> |
|
1884 |
|
|
1885 |
<para>Angeforderte Sprache und Druckerkürzel in den Dateinamen mit |
|
1886 |
eingearbeitet. So wird aus der Vorlage |
|
1887 |
<filename>sales_order.ext</filename> bei Sprache |
|
1888 |
<function>de</function> und Druckerkürzel <function>lpr2</function> |
|
1889 |
der Vorlagenname <filename>sales_order_de_lpr2.ext</filename>. |
|
1890 |
Zusätzlich können für E-Mails andere Vorlagen erstellt werden, diese |
|
1891 |
bekommen dann noch das Kürzel <filename>_email</filename>, der |
|
1892 |
vollständige Vorlagenname wäre dann |
|
1893 |
<filename>sales_order_email_de_lpr2.ext</filename>. In allen Fällen |
|
1894 |
kann eine Standarddatei <filename>default.ext</filename> hinterlegt |
|
1895 |
werden. Diese wird verwendet, wenn keine der anderen Varianten |
|
1896 |
gefunden wird.</para> |
|
1807 | 1897 |
|
1898 |
<para>Die vollständige Suchreihenfolge für einen Verkaufsauftrag mit |
|
1899 |
der Sprache "de" und dem Drucker "lpr2", der per E-Mail im Format PDF |
|
1900 |
verschickt wird, ist:</para> |
|
1901 |
|
|
1902 |
<orderedlist> |
|
1808 | 1903 |
<listitem> |
1809 |
<para><varname>$::lx_office_conf</varname></para>
|
|
1904 |
<para><filename>sales_order_email_de_lpr2.tex</filename></para>
|
|
1810 | 1905 |
</listitem> |
1811 | 1906 |
|
1812 | 1907 |
<listitem> |
1813 |
<para><varname>$::instance_conf</varname></para>
|
|
1908 |
<para><filename>sales_order_de_lpr2.tex</filename></para>
|
|
1814 | 1909 |
</listitem> |
1815 | 1910 |
|
1816 | 1911 |
<listitem> |
1817 |
<para><varname>$::dispatcher</varname></para>
|
|
1912 |
<para><filename>sales_order.tex</filename></para>
|
|
1818 | 1913 |
</listitem> |
1819 | 1914 |
|
1820 | 1915 |
<listitem> |
1821 |
<para><varname>$::request</varname></para>
|
|
1916 |
<para><filename>default.tex</filename></para>
|
|
1822 | 1917 |
</listitem> |
1823 |
</itemizedlist>
|
|
1918 |
</orderedlist>
|
|
1824 | 1919 |
|
1825 |
<para>Damit diese nicht als Müllhalde misbrauch werden, im Folgenden |
|
1826 |
eine kurze Erläuterung was man von denn erwarten kann.</para> |
|
1920 |
<para>Die kurzen Varianten dieser Vorlagentitel müssen dann entweder |
|
1921 |
Standardwerte anzeigen, oder die angeforderten Werte selbst auswerten, |
|
1922 |
siehe dazu <xref |
|
1923 |
linkend="dokumentenvorlagen-und-variablen.allgemeine-variablen.meta"/>.</para> |
|
1924 |
</sect2> |
|
1827 | 1925 |
|
1828 |
<sect3> |
|
1829 |
<title>$::form</title> |
|
1926 |
<sect2 id="dokumentenvorlagen-und-variablen.allgemeine-variablen"> |
|
1927 |
<title>Allgemeine Variablen, die in allen Vorlagen vorhanden |
|
1928 |
sind</title> |
|
1830 | 1929 |
|
1831 |
<itemizedlist> |
|
1832 |
<listitem> |
|
1833 |
<para>Ist ein Objekt der Klasse |
|
1834 |
"<classname>Form</classname>"</para> |
|
1835 |
</listitem> |
|
1930 |
<sect3 id="dokumentenvorlagen-und-variablen.allgemeine-variablen.meta" |
|
1931 |
xreflabel="Metainformationen zur angeforderten Vorlage"> |
|
1932 |
<title>Metainformationen zur angeforderten Vorlage</title> |
|
1836 | 1933 |
|
1837 |
<listitem> |
|
1838 |
<para>Wird nach jedem Request gelöscht</para> |
|
1839 |
</listitem> |
|
1934 |
<para>Diese Variablen liefern Informationen darüber welche Variante |
|
1935 |
einer Vorlage der Benutzer angefragt hat. Sie sind nützlich für |
|
1936 |
Vorlagenautoren, die aus einer zentralen Layoutvorlage die einzelnen |
|
1937 |
Formulare einbinden möchten.</para> |
|
1840 | 1938 |
|
1841 |
<listitem> |
|
1842 |
<para>Muss auch in Tests und Konsolenscripts vorhanden |
|
1843 |
sein.</para> |
|
1844 |
</listitem> |
|
1939 |
<variablelist> |
|
1940 |
<varlistentry> |
|
1941 |
<term><varname>template_meta.formname</varname></term> |
|
1845 | 1942 |
|
1846 |
<listitem> |
|
1847 |
<para>Enthält am Anfang eines Requests die Requestparameter vom |
|
1848 |
User</para> |
|
1849 |
</listitem> |
|
1943 |
<listitem> |
|
1944 |
<para>Basisname der Vorlage. Identisch mit der <link |
|
1945 |
linkend="dokumentenvorlagen-und-variablen.zuordnung-dateinamen">Zurordnung |
|
1946 |
zu den Dateinamen</link> ohne die Erweiterung. Ein |
|
1947 |
Verkaufsauftrag enthält hier |
|
1948 |
<constant>sales_order</constant>.</para> |
|
1949 |
</listitem> |
|
1950 |
</varlistentry> |
|
1850 | 1951 |
|
1851 |
<listitem> |
|
1852 |
<para>Kann zwar intern über Requestgrenzen ein Datenbankhandle |
|
1853 |
cachen, das wird aber momentan absichtlich zerstört</para> |
|
1854 |
</listitem> |
|
1855 |
</itemizedlist> |
|
1952 |
<varlistentry> |
|
1953 |
<term><varname>template_meta.language.description</varname></term> |
|
1856 | 1954 |
|
1857 |
<para><varname>$::form</varname> wurde unter <productname>SQL |
|
1858 |
Ledger</productname> als Gottobjekt für alles misbraucht. Sämtliche |
|
1859 |
alten Funktionen unter SL/ mutieren <varname>$::form</varname>, das |
|
1860 |
heißt, alles was einem lieb ist, sollte man vor einem Aufruf von zum |
|
1861 |
Beispiel <function>IS->retrieve_customer()</function> in |
|
1862 |
Sicherheit bringen.</para> |
|
1955 |
<listitem> |
|
1956 |
<para>Beschreibung der verwendeten Sprache</para> |
|
1957 |
</listitem> |
|
1958 |
</varlistentry> |
|
1863 | 1959 |
|
1864 |
<para>Das Objekt der Klasse Form hat leider im Moment noch viele |
|
1865 |
zentrale Funktionen Gdie vom internen Zustand abhängen, deshalb |
|
1866 |
bitte nie einfach zerstören oder überschreiben. Es geht ziemlich |
|
1867 |
sicher etwas kaputt.</para> |
|
1960 |
<varlistentry> |
|
1961 |
<term><varname>template_meta.language.template_code</varname></term> |
|
1868 | 1962 |
|
1869 |
<para><varname>$::form</varname> ist gleichzeitig der Standard Scope |
|
1870 |
in den <productname>Template::Toolkit</productname> Templates |
|
1871 |
außerhalb der Controller: der Ausdruck <function>[% var |
|
1872 |
%]</function> greift auf <varname>$::form->{var}</varname> zu. |
|
1873 |
Unter Controllern ist der Standard Scope anders, da lautet der |
|
1874 |
Zugriff <function>[% FORM.var %]</function>. In Druckvorlagen sind |
|
1875 |
normale Variablen ebenfall im <varname>$::form</varname> Scope, d.h. |
|
1876 |
<function><%var%></function> zeigt auf |
|
1877 |
<varname>$::form->{var}</varname>. Innerhalb von Schleifen wird |
|
1878 |
<varname>$::form->{TEMPLATE_ARRAYS}{var}[$index]</varname> |
|
1879 |
bevorzugt, wenn vorhanden.</para> |
|
1880 |
</sect3> |
|
1963 |
<listitem> |
|
1964 |
<para>Vorlagenürzel der verwendeten Sprache, identisch mit dem |
|
1965 |
Kürzel das im Dateinamen verwendetet wird.</para> |
|
1966 |
</listitem> |
|
1967 |
</varlistentry> |
|
1881 | 1968 |
|
1882 |
<sect3>
|
|
1883 |
<title>%::myconfig</title>
|
|
1969 |
<varlistentry>
|
|
1970 |
<term><varname>template_meta.language.output_numberformat</varname></term>
|
|
1884 | 1971 |
|
1885 |
<itemizedlist> |
|
1886 |
<listitem> |
|
1887 |
<para>Das einzige Hash unter den globalen Variablen</para> |
|
1888 |
</listitem> |
|
1972 |
<listitem> |
|
1973 |
<para>Zahlenformat der verwendeten Sprache in der Form |
|
1974 |
"<constant>1.000,00</constant>". Experimentell! Nur |
|
1975 |
interessant für Vorlagen die mit unformatierten Werten |
|
1976 |
arbeiten.</para> |
|
1977 |
</listitem> |
|
1978 |
</varlistentry> |
|
1889 | 1979 |
|
1890 |
<listitem> |
|
1891 |
<para>Wird spätestens benötigt wenn auf die Datenbank |
|
1892 |
zugegriffen wird</para> |
|
1893 |
</listitem> |
|
1980 |
<varlistentry> |
|
1981 |
<term><varname>template_meta.language.output_dateformat</varname></term> |
|
1894 | 1982 |
|
1895 |
<listitem> |
|
1896 |
<para>Wird bei jedem Request neu erstellt.</para> |
|
1897 |
</listitem> |
|
1983 |
<listitem> |
|
1984 |
<para>Datumsformat der verwendeten Sprache in der Form |
|
1985 |
"<constant>dd.mm.yyyy</constant>". Experimentell! Nur |
|
1986 |
interessant für Vorlagen die mit unformatierten Werten |
|
1987 |
arbeiten.</para> |
|
1988 |
</listitem> |
|
1989 |
</varlistentry> |
|
1898 | 1990 |
|
1899 |
<listitem> |
|
1900 |
<para>Enthält die Userdaten des aktuellen Logins</para> |
|
1901 |
</listitem> |
|
1991 |
<varlistentry> |
|
1992 |
<term><varname>template_meta.format</varname></term> |
|
1902 | 1993 |
|
1903 |
<listitem> |
|
1904 |
<para>Sollte nicht ohne Filterung irgendwo gedumpt werden oder |
|
1905 |
extern serialisiert werden, weil da auch der Datenbankzugriff |
|
1906 |
für diesenuser drinsteht.</para> |
|
1907 |
</listitem> |
|
1994 |
<listitem> |
|
1995 |
<para>Das angeforderte Format. Kann im Moment die Werte |
|
1996 |
<constant>pdf</constant>, <constant>postscript</constant>, |
|
1997 |
<constant>html</constant>, <constant>opendocument</constant>, |
|
1998 |
<constant>opendocument_pdf</constant> und |
|
1999 |
<constant>excel</constant> enthalten.</para> |
|
2000 |
</listitem> |
|
2001 |
</varlistentry> |
|
1908 | 2002 |
|
1909 |
<listitem> |
|
1910 |
<para>Enthält unter anderem Listenbegrenzung vclimit, |
|
1911 |
Datumsformat dateformat und Nummernformat numberformat</para> |
|
1912 |
</listitem> |
|
2003 |
<varlistentry> |
|
2004 |
<term><varname>template_meta.extension</varname></term> |
|
1913 | 2005 |
|
1914 |
<listitem> |
|
1915 |
<para>Enthält Datenbankzugriffinformationen</para> |
|
1916 |
</listitem> |
|
1917 |
</itemizedlist> |
|
2006 |
<listitem> |
|
2007 |
<para>Dateierweiterung, wie im Dateinamen. Wird aus |
|
2008 |
<constant>format</constant> entschieden.</para> |
|
2009 |
</listitem> |
|
2010 |
</varlistentry> |
|
1918 | 2011 |
|
1919 |
<para><varname>%::myconfig</varname> ist im Moment der Ersatz für |
|
1920 |
ein Userobjekt. Die meisten Funktionen, die etwas anhand des |
|
1921 |
aktuellen Users entscheiden müssen, befragen |
|
1922 |
<varname>%::myconfig</varname>.</para> |
|
1923 |
</sect3> |
|
2012 |
<varlistentry> |
|
2013 |
<term><varname>template_meta.media</varname></term> |
|
1924 | 2014 |
|
1925 |
<sect3> |
|
1926 |
<title>$::locale</title> |
|
2015 |
<listitem> |
|
2016 |
<para>Ausgabemedium. Kann zur Zeit die Werte |
|
2017 |
<constant>screen</constant> für Bildschirm, |
|
2018 |
<constant>email</constant> für E-Mmail (triggert das |
|
2019 |
<constant>_email</constant> Kürzel im Dateinamen), |
|
2020 |
<constant>printer</constant> für Drucker, und |
|
2021 |
<constant>queue</constant> für Warteschlange enthalten.</para> |
|
2022 |
</listitem> |
|
2023 |
</varlistentry> |
|
1927 | 2024 |
|
1928 |
<itemizedlist> |
|
1929 |
<listitem> |
|
1930 |
<para>Objekt der Klasse "Locale"</para> |
|
1931 |
</listitem> |
|
2025 |
<varlistentry> |
|
2026 |
<term><varname>template_meta.printer.description</varname></term> |
|
1932 | 2027 |
|
1933 |
<listitem> |
|
1934 |
<para>Wird pro Request erstellt</para> |
|
1935 |
</listitem> |
|
2028 |
<listitem> |
|
2029 |
<para>Beschreibung des ausgewählten Druckers</para> |
|
2030 |
</listitem> |
|
2031 |
</varlistentry> |
|
1936 | 2032 |
|
1937 |
<listitem> |
|
1938 |
<para>Muss auch für Tests und Scripte immer verfügbar |
|
1939 |
sein.</para> |
|
1940 |
</listitem> |
|
2033 |
<varlistentry> |
|
2034 |
<term><varname>template_meta.printer.template_code</varname></term> |
|
1941 | 2035 |
|
1942 |
<listitem> |
|
1943 |
<para>Cached intern über Requestgrenzen hinweg benutzte |
|
1944 |
Locales</para> |
|
1945 |
</listitem> |
|
1946 |
</itemizedlist> |
|
1947 |
|
|
1948 |
<para>Lokalisierung für den aktuellen User. Alle Übersetzungen, |
|
1949 |
Zahlen- und Datumsformatierungen laufen über dieses Objekt.</para> |
|
2036 |
<listitem> |
|
2037 |
<para>Vorlagenürzel des ausgewählten Druckers, identisch mit |
|
2038 |
dem Kürzel das im Dateinamen verwendetet wird.</para> |
|
2039 |
</listitem> |
|
2040 |
</varlistentry> |
|
2041 |
</variablelist> |
|
1950 | 2042 |
</sect3> |
1951 | 2043 |
|
1952 |
<sect3> |
|
1953 |
<title>$::lxdebug</title>
|
|
2044 |
<sect3 id="dokumentenvorlagen-und-variablen.allgemeine-variablen.kunden-lieferanten">
|
|
2045 |
<title>Stammdaten von Kunden und Lieferanten</title>
|
|
1954 | 2046 |
|
1955 |
<itemizedlist> |
|
1956 |
<listitem> |
|
1957 |
<para>Objekt der Klasse "LXDebug"</para> |
|
1958 |
</listitem> |
|
2047 |
<variablelist> |
|
2048 |
<varlistentry> |
|
2049 |
<term><varname>account_number</varname></term> |
|
1959 | 2050 |
|
1960 |
<listitem> |
|
1961 |
<para>Wird global gecached</para> |
|
1962 |
</listitem> |
|
2051 |
<listitem> |
|
2052 |
<para>Kontonummer</para> |
|
2053 |
</listitem> |
|
2054 |
</varlistentry> |
|
1963 | 2055 |
|
1964 |
<listitem> |
|
1965 |
<para>Muss immer verfügbar sein, in nahezu allen |
|
1966 |
Funktionen</para> |
|
1967 |
</listitem> |
|
1968 |
</itemizedlist> |
|
2056 |
<varlistentry> |
|
2057 |
<term><varname>bank</varname></term> |
|
1969 | 2058 |
|
1970 |
<para><varname>$::lxdebug</varname> stellt Debuggingfunktionen |
|
1971 |
bereit, wie "<function>enter_sub</function>" und |
|
1972 |
"<function>leave_sub</function>", mit denen in den alten Modulen ein |
|
1973 |
brauchbares Tracing gebaut ist, "<function>log_time</function>", mit |
|
1974 |
der man die Wallclockzeit seit Requeststart loggen kann, sowie |
|
1975 |
"<function>message</function>" und "<function>dump</function>" mit |
|
1976 |
denen man flott Informationen ins Log packen kann.</para> |
|
1977 |
</sect3> |
|
2059 |
<listitem> |
|
2060 |
<para>Name der Bank</para> |
|
2061 |
</listitem> |
|
2062 |
</varlistentry> |
|
1978 | 2063 |
|
1979 |
<sect3>
|
|
1980 |
<title>$::auth</title>
|
|
2064 |
<varlistentry>
|
|
2065 |
<term><varname>bank_code</varname></term>
|
|
1981 | 2066 |
|
1982 |
<itemizedlist>
|
|
1983 |
<listitem>
|
|
1984 |
<para>Objekt der Klasse "SL::Auth"</para>
|
|
1985 |
</listitem>
|
|
2067 |
<listitem>
|
|
2068 |
<para>Bankleitzahl</para>
|
|
2069 |
</listitem>
|
|
2070 |
</varlistentry>
|
|
1986 | 2071 |
|
1987 |
<listitem> |
|
1988 |
<para>Wird global gecached</para> |
|
1989 |
</listitem> |
|
2072 |
<varlistentry> |
|
2073 |
<term><varname>bic</varname></term> |
|
1990 | 2074 |
|
1991 |
<listitem> |
|
1992 |
<para>Hat eine permanente DB Verbindung zur Authdatenbank</para> |
|
1993 |
</listitem> |
|
2075 |
<listitem> |
|
2076 |
<para>Bank-Identifikations-Code (Bank Identifier Code, |
|
2077 |
BIC)</para> |
|
2078 |
</listitem> |
|
2079 |
</varlistentry> |
|
1994 | 2080 |
|
1995 |
<listitem> |
|
1996 |
<para>Wird nach jedem Request resettet.</para> |
|
1997 |
</listitem> |
|
1998 |
</itemizedlist> |
|
2081 |
<varlistentry> |
|
2082 |
<term><varname>business</varname></term> |
|
1999 | 2083 |
|
2000 |
<para><varname>$::auth</varname> stellt Funktionen bereit um die |
|
2001 |
Rechte des aktuellen Users abzufragen. Obwohl diese Informationen |
|
2002 |
vom aktuellen User abhängen wird das Objekt aus |
|
2003 |
Geschwindigkeitsgründen nur einmal angelegt und dann nach jedem |
|
2004 |
Request kurz resettet.</para> |
|
2005 |
</sect3> |
|
2084 |
<listitem> |
|
2085 |
<para>Kunden-/Lieferantentyp</para> |
|
2086 |
</listitem> |
|
2087 |
</varlistentry> |
|
2006 | 2088 |
|
2007 |
<sect3>
|
|
2008 |
<title>$::lx_office_conf</title>
|
|
2089 |
<varlistentry>
|
|
2090 |
<term><varname>city</varname></term>
|
|
2009 | 2091 |
|
2010 |
<itemizedlist> |
|
2011 |
<listitem> |
|
2012 |
<para>Objekt der Klasse |
|
2013 |
"<classname>SL::LxOfficeConf</classname>"</para> |
|
2014 |
</listitem> |
|
2092 |
<listitem> |
|
2093 |
<para>Stadt</para> |
|
2094 |
</listitem> |
|
2095 |
</varlistentry> |
|
2015 | 2096 |
|
2016 |
<listitem> |
|
2017 |
<para>Global gecached</para> |
|
2018 |
</listitem> |
|
2097 |
<varlistentry> |
|
2098 |
<term><varname>contact</varname></term> |
|
2019 | 2099 |
|
2020 |
<listitem> |
|
2021 |
<para>Repräsentation der |
|
2022 |
<filename>config/lx_office.conf[.default]</filename>-Dateien</para> |
|
2023 |
</listitem> |
|
2024 |
</itemizedlist> |
|
2100 |
<listitem> |
|
2101 |
<para>Kontakt</para> |
|
2102 |
</listitem> |
|
2103 |
</varlistentry> |
|
2025 | 2104 |
|
2026 |
<para>Globale Konfiguration. Configdateien werden zum Start gelesen, |
|
2027 |
und nicht mehr angefasst. Es ist derzeit nicht geplant, dass das |
|
2028 |
Programm die Konfiguration ändern kann oder sollte.</para> |
|
2105 |
<varlistentry> |
|
2106 |
<term><varname>country</varname></term> |
|
2029 | 2107 |
|
2030 |
<para>Für die folgende Konfigurationsdatei:</para> |
|
2108 |
<listitem> |
|
2109 |
<para>Land</para> |
|
2110 |
</listitem> |
|
2111 |
</varlistentry> |
|
2031 | 2112 |
|
2032 |
<programlisting>[debug]
|
|
2033 |
file = /tmp/lxoffice_debug_log.txt</programlisting>
|
|
2113 |
<varlistentry>
|
|
2114 |
<term><varname>cp_email</varname></term>
|
|
2034 | 2115 |
|
2035 |
<para>ist der Key <varname>file</varname> im Programm als |
|
2036 |
<varname>$::lx_office_conf->{debug}{file}</varname> |
|
2037 |
erreichbar.</para> |
|
2116 |
<listitem> |
|
2117 |
<para>Email des Ansprechpartners</para> |
Auch abrufbar als: Unified diff
Diverse Fixes und Aktualisierungen