Revision d3a086e3
Von wulf@coulmann.de vor etwa 12 Jahren hinzugefügt
doc/dokumentation.xml | ||
---|---|---|
14 | 14 |
<para>im kivitendo-Forum: <ulink |
15 | 15 |
url="https://forum.kivitendo.org/">https://forum.kivitendo.org/</ulink></para> |
16 | 16 |
</listitem> |
17 |
|
|
18 |
<listitem> |
|
19 |
<para>im alten Lx-Office-Wiki unter Dokumentation (<ulink |
|
20 |
url="http://wiki.lx-office.org/index.php?title=Installation_Lx-Office_ERP">http://wiki.lx-office.org/index.php?title=Installation_Lx-Office_ERP</ulink>)</para> |
|
21 |
</listitem> |
|
22 | 17 |
</itemizedlist> |
23 | 18 |
</chapter> |
24 | 19 |
|
... | ... | |
42 | 37 |
dass kivitendo auf ihnen läuft:</para> |
43 | 38 |
|
44 | 39 |
<itemizedlist> |
40 |
|
|
45 | 41 |
<listitem> |
46 |
<para>Ubuntu 10.04 LTS Lucid Lynx bis 12.10 Oneiric Ocelot</para> |
|
42 |
<para>Debian</para> |
|
43 |
<itemizedlist> |
|
44 |
<listitem> |
|
45 |
<para>6.0 Squeeze (hier muss allerdings das Modul FCGI in der Version >= 0.72 compiled werden)</para> |
|
46 |
</listitem> |
|
47 |
<listitem> |
|
48 |
<para>7.0 Wheezy</para> |
|
49 |
</listitem> |
|
50 |
</itemizedlist> |
|
47 | 51 |
</listitem> |
48 | 52 |
|
49 | 53 |
<listitem> |
50 |
<para>Debian 5.0 Lenny und 6.0 Squeeze</para>
|
|
54 |
<para>Ubuntu 10.04 LTS Lucid Lynx bis 12.10 Oneiric Ocelot</para>
|
|
51 | 55 |
</listitem> |
52 | 56 |
|
53 | 57 |
<listitem> |
... | ... | |
363 | 367 |
eingreifen</para> |
364 | 368 |
|
365 | 369 |
<para>Dieses kann überprüft werden: ist das Encoding der Datenbank |
366 |
“template1” “UTF8”, so braucht man nichts weiteres diesbezueglich
|
|
370 |
“template1” “UTF8”, so braucht man nichts weiteres diesbezüglich
|
|
367 | 371 |
unternehmen. Zum Testen: |
368 | 372 |
|
369 | 373 |
<programlisting>su postgres |
... | ... | |
438 | 442 |
anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen |
439 | 443 |
können:</para> |
440 | 444 |
|
445 |
<para>Die Frage, ob der neue User Superuser sein soll, können Sie mit nein |
|
446 |
beantworten, genauso ist die Berechtigung neue User (Roles) zu |
|
447 |
generieren nicht nötig.</para> |
|
441 | 448 |
<programlisting>su - postgres |
442 | 449 |
createuser -d -P kivitendo |
443 | 450 |
exit</programlisting> |
... | ... | |
1308 | 1315 |
<para>Das Drucksystem von kivitendo benutzt von Haus aus LaTeX Vorlagen. |
1309 | 1316 |
Um drucken zu können, braucht der Server ein geeignetes LaTeX System. Am |
1310 | 1317 |
einfachsten ist dazu eine <literal>texlive</literal> Installation. Unter |
1311 |
Debianoiden Betriebssystemen sind das die Pakete:</para> |
|
1312 |
|
|
1313 |
<para><literal>texlive-latex-base texlive-latex-extra |
|
1314 |
texlive-fonts-recommended</literal></para> |
|
1318 |
Debianoiden Betriebssystemen installiert man die Pakete mit:</para> |
|
1315 | 1319 |
|
1316 |
<para>Diese hinteren beiden enthalten Bibliotheken und Schriftarten die |
|
1317 |
von den Standardvorlagen verwendet werden.</para> |
|
1320 |
<para><programlisting>aptitude install \ |
|
1321 |
texlive-base-bin \ |
|
1322 |
texlive-latex-recommended \ |
|
1323 |
texlive-fonts-recommended \ |
|
1324 |
texlive-latex-extra \ |
|
1325 |
texlive-lang-german \ |
|
1326 |
texlive-generic-extra |
|
1327 |
</programlisting></para> |
|
1318 | 1328 |
|
1319 | 1329 |
<para>TODO: rpm Pakete.</para> |
1320 | 1330 |
|
1321 |
<para>In den allermeisten Installationen sollte drucken jetzt schon |
|
1322 |
funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange |
|
1323 |
Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite |
|
1324 |
die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum |
|
1325 |
Beispiel:</para> |
|
1331 |
<para>kivitendo bringt 3 alternative Vorlagensätze mit:</para> |
|
1332 |
<itemizedlist> |
|
1333 |
<listitem>Standard</listitem> |
|
1334 |
<listitem>f-tex</listitem> |
|
1335 |
<listitem>RB</listitem> |
|
1336 |
</itemizedlist> |
|
1326 | 1337 |
|
1327 |
<itemizedlist> |
|
1328 |
<listitem> |
|
1329 |
<para>! LaTeX Error: File `eurosym.sty' not found. Die entsprechende |
|
1330 |
LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem bei |
|
1331 |
Vorlagen aus der Community auf. Installieren Sie die entsprechenden |
|
1332 |
Pakete.</para> |
|
1333 |
</listitem> |
|
1338 |
<sect2 id="Vorlagenverzeichnis-anlegen" xreflabel="Vorlagenverzeichnis anlegen"> |
|
1339 |
<title>Vorlagenverzeichnis anlegen</title> |
|
1340 |
<para>Bei einem neuen Benutzer/Mandanten lässt sich einer dieser Vorlagensätze |
|
1341 |
als Basis für die zu druckenden Dokumente auswählen:</para> |
|
1334 | 1342 |
|
1335 |
<listitem> |
|
1336 |
<para>! Package inputenc Error: Unicode char \u8:æ¡ not set up for |
|
1337 |
use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit |
|
1338 |
einer Standardinstallation exotische utf8 Zeichen zu drucken. |
|
1339 |
TeXLive unterstützt von Haus nur romanische Schriften und muss mit |
|
1340 |
diversen Tricks dazu gebracht werden andere Zeichen zu akzeptieren. |
|
1341 |
Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.</para> |
|
1342 |
</listitem> |
|
1343 |
</itemizedlist> |
|
1344 |
|
|
1345 |
<para>Wird garkein Fehler angezeigt sondern nur der Name des Templates, |
|
1346 |
heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde. |
|
1347 |
Prüfen Sie den Namen in der Konfiguration (Standard: |
|
1348 |
<literal>pdflatex</literal>), und stellen Sie sicher, dass pdflatex |
|
1349 |
(oder das von Ihnen verwendete System) vom Webserver ausgeführt werden |
|
1350 |
darf.</para> |
|
1343 |
<para><programlisting>unter: |
|
1344 |
Administration -> Benutzerverwaltung -> [ein Benutzer] |
|
1345 |
Erzeuge Vorlagen, Name: [Name für das neue Vorlagenverzeichnis] |
|
1346 |
Vorlagen auswählen: [Default, f-tex oder RB] |
|
1347 |
-> Speichern |
|
1348 |
</programlisting></para> |
|
1349 |
<para>der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Benutzern verwendet werden.</para> |
|
1350 |
|
|
1351 |
<para>Die Abhängigkeiten kann man prüfen mit:</para> |
|
1352 |
<para><programlisting>/scripts/installation_check.pl -l</programlisting></para> |
|
1353 |
|
|
1354 |
</sect2> |
|
1355 |
<sect2 id="Standard"> |
|
1356 |
<title>Default</title> |
|
1357 |
|
|
1358 |
<para>Der standard Vorlagensatz von Kivitendo. Wie unter |
|
1359 |
<ulink url="http://demo.kivitendo.org">http://demo.kivitendo.org</ulink> zu sehen.</para> |
|
1360 |
|
|
1361 |
</sect2> |
|
1362 |
|
|
1363 |
<sect2 id="f-tex"> |
|
1364 |
<title>f-tex</title> |
|
1365 |
|
|
1366 |
<para>Ein Vorlagensatz, der in Wenigen Minuten alle Dokumente zur stellt.</para> |
|
1367 |
|
|
1368 |
<sect3 id="f-tex-Feature-Übersicht"> |
|
1369 |
<title>f-tex Feature Übersicht</title> |
|
1370 |
<itemizedlist> |
|
1371 |
<listitem>Keine Retundanz. Es wird ein und die selbe Latex-Vorlage für alle |
|
1372 |
briefartigen Dokumente verwendet. Also Angebot, Rechnung, |
|
1373 |
Performarechnung, Lieferschein, aber eben nicht für Paketaufkleber |
|
1374 |
etc.. </listitem> |
|
1375 |
<listitem>Leichte Anpassung an das Firmen Layout durch verwendung eines Hintergrund-PDF |
|
1376 |
dieses kann leicht mit dem eigenen Lieblingsprogramm erstellt werden |
|
1377 |
(Openoffice, Inkscape, Gimp, Adobe*) |
|
1378 |
</listitem> |
|
1379 |
<listitem>Hintergrundpdf um schaltbar auf "nur erste Seite" (default) oder "alle Seiten" |
|
1380 |
(option "bgPdfFirstPageOnly" in Datei letter.lco) |
|
1381 |
</listitem> |
|
1382 |
<listitem>Hintergrundpdf für Ausdruck auf bereits bedrucktem Briefpapier Abschaltbar, |
|
1383 |
es wird dann nur bei per email versendeten Dokumenten eingebunden. |
|
1384 |
(Option "bgPdfEmailOnly" in Datei letter.lco) |
|
1385 |
</listitem> |
|
1386 |
<listitem>Nutzung der Layout-Funktionen von Latex für Seitenumbruch, |
|
1387 |
wiederholung von Kopfzeilen, Zwischensummen etc. (danke an Kai-Martin für |
|
1388 |
die Vorarbeit) |
|
1389 |
</listitem> |
|
1390 |
<listitem>Anzeige des Empfängerlandes im Adressfeld nur, wenn es vom Land des |
|
1391 |
eigenen Unternehmens abweicht (also die Rechnung das Land verlässt). |
|
1392 |
</listitem> |
|
1393 |
<listitem>Multisprachfähig leicht um weitere Sprachen zu erweitern, alle |
|
1394 |
Übersetzungen in der Datei translatinos.tex. |
|
1395 |
</listitem> |
|
1396 |
<listitem>Auflistung von Bruttopreisen für Endverbraucher. |
|
1397 |
</listitem> |
|
1398 |
</itemizedlist> |
|
1399 |
</sect3> |
|
1400 |
|
|
1401 |
<sect3 id="f-tex-installation"> |
|
1402 |
<title>f-tex Die Installation</title> |
|
1403 |
<itemizedlist> |
|
1404 |
<listitem>Vorlagenverzeichnis mit Option f-tex anlegen, siehe: |
|
1405 |
<xref linkend="Vorlagenverzeichnis-anlegen"/> |
|
1406 |
Das Vorlagensystem funktioniert jetzt schon, hat allerdings noch einen |
|
1407 |
Beispiel Briefkopf |
|
1408 |
</listitem> |
|
1409 |
<listitem> |
|
1410 |
Erstelle eine pdf-Hintergrund Datei und verlinke sie nach |
|
1411 |
<programlisting>./letter_head.pdf</programlisting> |
|
1412 |
</listitem> |
|
1413 |
<listitem> |
|
1414 |
Editiere den Bereich "settings" in der datei letter.lco |
|
1415 |
</listitem> |
|
1416 |
</itemizedlist> |
|
1417 |
|
|
1418 |
<para>oder etwas Detaillierter:</para> |
|
1419 |
|
|
1420 |
<para> |
|
1421 |
Es wird eine Datei sample.lco erstellt und diese nach letter.lco verlinkt. |
|
1422 |
Eigentlich ist dies die Datei die für die Firmenspezifischen Anpassungen |
|
1423 |
gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig ist, wird in |
|
1424 |
dieser Datei auf ein Hintergrundpdf verwiesen. Ich empfehle über dieses pdf |
|
1425 |
die persönlichen Layoutanpassungen vorzunehmen und sample.lco unverändert zu |
|
1426 |
lassen. Die die Anpassung über eine *.lco Datei die letztlich auf letter.lco |
|
1427 |
verlinkt ist ist aber auch möglich. |
|
1428 |
</para> |
|
1429 |
<para> |
|
1430 |
Es wird eine Datei sample_head.pdf mit ausgeliefert, diese wird nach |
|
1431 |
letter_head.pdf verlinkt. Damit gibt es schon mal eine Funktionsfähige |
|
1432 |
Vorlage. Schau Dir nach Abschluss der Installation die Datei sample_haed.pdf |
|
1433 |
an und erstelle ein entsprechendes pdf passend zum Briefkopf Deiner Firma, |
|
1434 |
diese dann im Template Verzeichniss ablegen und statt sample_head.pdf nach |
|
1435 |
letter_head.pdf verlinken. |
|
1436 |
</para> |
|
1437 |
<para> |
|
1438 |
letzlich muss ./letter_head.pdf auf das passende Hintergrundpdf verweisen, |
|
1439 |
welches gewünschten Briefkopf enthält. Bei Updates oder nach erneutem |
|
1440 |
</para> |
|
1441 |
<para> |
|
1442 |
Es wird eine Datei mydata.tex.example ausgeliefert die nach mytdata.tex |
|
1443 |
verlinkt ist. Bei verwendetem Hintergrundpdf wird nur der Eintrag für das |
|
1444 |
Land verwendet die Datei muss also nicht angefasst werden. Die Anderen Werte |
|
1445 |
sind für das Modul lp (Label Print in erp - zur Zeit nicht im |
|
1446 |
öffentlichen Zweig). |
|
1447 |
</para> |
|
1448 |
<para> |
|
1449 |
Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. |
|
1450 |
sollten über die Hintergrund pdf datei oder die *.lco Datei erfolgen. |
|
1451 |
</para> |
|
1452 |
</sect3> |
|
1453 |
<sect3 id="f-tex-Funktionsübersicht"> |
|
1454 |
<title>f-tex Funktionsübersicht</title> |
|
1455 |
<para> |
|
1456 |
Das Konzept von kivitendo sieht vor, für jedes Dokument |
|
1457 |
(Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine |
|
1458 |
Latex-Vorlage vorzuhalten, dies ist sehr Wartungsunfreundlich. Auch |
|
1459 |
das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur |
|
1460 |
bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen aus |
|
1461 |
dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle |
|
1462 |
Briefartigen Dokumente mit Artikel-Tabellen eine einheitliche |
|
1463 |
Latexvorlage verwendet, welche über Codeweichen die Besonderheiten |
|
1464 |
der jeweiligen Dokumente Berücksichtigt |
|
1465 |
</para> |
|
1466 |
<itemizedlist> |
|
1467 |
<listitem>Tabellen mit oder ohne Preis |
|
1468 |
</listitem> |
|
1469 |
<listitem>Sprache der Tabellenüberschriften etc. |
|
1470 |
</listitem> |
|
1471 |
<listitem>Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus |
|
1472 |
Angebotsnummer) |
|
1473 |
</listitem> |
|
1474 |
<listitem>Darstellung von Brutto oder Netto-Preisen in der Auflistung |
|
1475 |
(Endverbraucher versus Gewerblicher Kunde) |
|
1476 |
</listitem> |
|
1477 |
</itemizedlist> |
|
1478 |
|
|
1479 |
<para>Nachteil:</para> |
|
1480 |
<para> |
|
1481 |
Latex hat ohnehin eine sehr steile Lehrnkurve. Die Datei letter.tex |
|
1482 |
ist sehr komplex und verstärkt damit diesen Effekt noch einmal erheblich. |
|
1483 |
Wer Latex-Erfahrung hat, oder geübt ist Scriptsparachen nachzuvollziehen kann |
|
1484 |
natürlich auch innerhalb der Tabellendarstellung gut persönliche Anpassungen |
|
1485 |
vornehmen. Aber man kann sich hier bei Veränderungen sehr schnell häftig in |
|
1486 |
den Fuss schiessen. |
|
1487 |
</para> |
|
1488 |
<para>Wer nicht so tief in die Materie einsteigen will oder leicht zu |
|
1489 |
frustrieren ist, sollte sein Hintergrund PDF auf Basis der mitglieferten |
|
1490 |
Datei sample_head.pdf erstellen, und sich an der Form der dargestellten Tabellen |
|
1491 |
wie sie ausgeliefert werden, erfreuen. |
|
1492 |
</para> |
|
1493 |
<para>Kleiner Tipp: |
|
1494 |
Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche |
|
1495 |
Schritte gehen. |
|
1496 |
</para> |
|
1497 |
|
|
1498 |
|
|
1499 |
<para>Bruttopreise für Endvorbraucher</para> |
|
1500 |
<para>Der auszuweisende Bruttopreis wird innerhalb der LaTeX |
|
1501 |
Umgebung berechnet. es gibt zwar ein Feld um bei Aufträgen "alle Preise |
|
1502 |
Brutto" auszuwählen, aber:</para> |
|
1503 |
<itemizedlist> |
|
1504 |
<listitem> |
|
1505 |
hierfür müssen die Preise auch in Brutto in der Datenbank stehen |
|
1506 |
(ja - das lässt sich über die Preisgruppen und die Zuordung einer Default-Preisgruppe |
|
1507 |
handhaben) |
|
1508 |
</listitem> |
|
1509 |
<listitem> |
|
1510 |
man darf beim Anlegen des Vorgangs nicht vergessen Dieses Häkchen zu setzen. |
|
1511 |
(das ist in der Praxis wenn man sowohl Endverbraucher- wie Gewerbekunden beliefert |
|
1512 |
der eigentliche Knackpunkt) |
|
1513 |
</listitem> |
|
1514 |
</itemizedlist> |
|
1515 |
|
|
1516 |
<para> |
|
1517 |
Es gibt mit f-tex eine weitere Alternative. Die Information ob Brutto oder |
|
1518 |
Nettorechnung wird mit den Zahlarten verknüpft. Zahlarten bei denen |
|
1519 |
Rechnungen, Angebote, etc, in Brutto ausgegeben werden sollen enden mit "_E" |
|
1520 |
(für Endverbraucher) Falls identische Zahlarten für Gewerbekunden und |
|
1521 |
Endverbraucher vorhanden sind legt man diese einfach doppelt an (einmal mit |
|
1522 |
der Namensendung "_E"). Gewinn:</para> |
|
1523 |
<itemizedlist> |
|
1524 |
<listitem> |
|
1525 |
die Entscheidung ob Netopreise ausgewiesen werden ist nicht mehr fix |
|
1526 |
mit einer Preisliste Verbunden. |
|
1527 |
</listitem> |
|
1528 |
<listitem> |
|
1529 |
die Default-Zahlart kann im Kundendatensatz hinterlegt werden und man |
|
1530 |
muss nicht mehr daran denken "alle Preise Netto" auszuwählen. |
|
1531 |
</listitem> |
|
1532 |
<listitem> |
|
1533 |
Die Entscheidung ob Netto/Oder Bruttopreise ausgewiesen werden kann direkt |
|
1534 |
beim Drucken reviediert werden, ohne dass sich der Auftragswert ändert. |
|
1535 |
</listitem> |
|
1536 |
</itemizedlist> |
|
1537 |
|
|
1538 |
<para>Lieferadressen</para> |
|
1539 |
<itemizedlist> |
|
1540 |
<listitem> |
|
1541 |
in Lieferscheinen kommen shipto* -Variablen im Adressfeld zum Einsatz |
|
1542 |
</listitem> |
|
1543 |
<listitem> |
|
1544 |
wenn die shipto*variable leer ist wird die entsprechende |
|
1545 |
Adressvariable eingesetzt. Wenn Also die Lieferadresse in Strasse, |
|
1546 |
Hausnummer und Ort abweicht, müssen auch nur diese Felder in der |
|
1547 |
Lieferadresse ausgefüllt werden. Für den Firmenname wird der Wert der |
|
1548 |
Hauptadresse angezeigt. |
|
1549 |
</listitem> |
|
1550 |
</itemizedlist> |
|
1551 |
</sect3> |
|
1552 |
|
|
1553 |
</sect2> |
|
1554 |
|
|
1555 |
<sect2 id="RB"> |
|
1556 |
<title>RB</title> |
|
1557 |
|
|
1558 |
<para>Vollständiger Dokumentensatz mit alternativen Design</para> |
|
1559 |
|
|
1560 |
</sect2> |
|
1561 |
|
|
1562 |
<sect2 id="Allgemeine Hinweise zu LaTeX"> |
|
1563 |
<title>Allgemeine Hinweise zu LaTeX Vorlagen</title> |
|
1564 |
<para>In den allermeisten Installationen sollte drucken jetzt schon |
|
1565 |
funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange |
|
1566 |
Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite |
|
1567 |
die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum |
|
1568 |
Beispiel:</para> |
|
1569 |
|
|
1570 |
<itemizedlist> |
|
1571 |
<listitem> |
|
1572 |
<para>! LaTeX Error: File `eurosym.sty' not found. Die entsprechende |
|
1573 |
LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem bei |
|
1574 |
Vorlagen aus der Community auf. Installieren Sie die entsprechenden |
|
1575 |
Pakete.</para> |
|
1576 |
</listitem> |
|
1577 |
<listitem> |
|
1578 |
<para>! Package inputenc Error: Unicode char \u8:æ¡ not set up for |
|
1579 |
use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit |
|
1580 |
einer Standardinstallation exotische utf8 Zeichen zu drucken. |
|
1581 |
TeXLive unterstützt von Haus nur romanische Schriften und muss mit |
|
1582 |
diversen Tricks dazu gebracht werden andere Zeichen zu akzeptieren. |
|
1583 |
Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.</para> |
|
1584 |
</listitem> |
|
1585 |
</itemizedlist> |
|
1586 |
|
|
1587 |
<para>Wird garkein Fehler angezeigt sondern nur der Name des Templates, |
|
1588 |
heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde. |
|
1589 |
Prüfen Sie den Namen in der Konfiguration (Standard: |
|
1590 |
<literal>pdflatex</literal>), und stellen Sie sicher, dass pdflatex |
|
1591 |
(oder das von Ihnen verwendete System) vom Webserver ausgeführt werden |
|
1592 |
darf.</para> |
|
1593 |
|
|
1594 |
<para>Wenn sich das Problem nicht auf Grund der ausgabe im Webbrowser verifizieren lässt:</para> |
|
1595 |
<itemizedlist> |
|
1596 |
<listitem> |
|
1597 |
<para> editiere [kivitendo-home]/config/kivitendo.conf und ändere "keep_tmp_files" auf 1</para> |
|
1598 |
<para><programlisting>keep_temp_files = 1;</programlisting></para> |
|
1599 |
</listitem> |
|
1600 |
<listitem> |
|
1601 |
<para>bei fastcgi oder mod_perl den Webserver neu Starten</para> |
|
1602 |
</listitem> |
|
1603 |
<listitem> |
|
1604 |
<para>Nochmal einen Druckversuch im Webfrontend auslösen</para> |
|
1605 |
</listitem> |
|
1606 |
<listitem> |
|
1607 |
<para>wechsele in das users Verzeichnis von kivitendo</para> |
|
1608 |
<para><programlisting>cd [kivitendo-home]/users</programlisting></para> |
|
1609 |
</listitem> |
|
1610 |
<listitem> |
|
1611 |
<para>LaTeX Suchpfad anpassen:</para> |
|
1612 |
<para><programlisting>export TEXINPUTS=".:[kivitendo-home]/templates/[aktuelles_template_verzeichniss]:"</programlisting></para> |
|
1613 |
</listitem> |
|
1614 |
<listitem> |
|
1615 |
<para>Finde herraus welche Datei kivitendo beim letzten Durchlauf erstellt hat</para> |
|
1616 |
<para><programlisting>ls -lahtr ./1*.tex</programlisting></para> |
|
1617 |
<para>Es sollte die letzte Datei ganz unten sein</para> |
|
1618 |
</listitem> |
|
1619 |
<listitem> |
|
1620 |
<para>für besseren Hinweis auf Fehler texdatei nochmals übersetzen</para> |
|
1621 |
<para><programlisting>pdflatex ./1*.tex</programlisting></para> |
|
1622 |
<para>in der *.tex datei nach dem Fehler suchen.</para> |
|
1623 |
</listitem> |
|
1624 |
</itemizedlist> |
|
1625 |
</sect2> |
|
1351 | 1626 |
</sect1> |
1352 | 1627 |
|
1353 | 1628 |
<sect1 id="OpenDocument-Vorlagen"> |
doc/html/ch01.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 | 3 |
<title>Kapitel 1. Aktuelle Hinweise</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="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="next" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"></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 1. Aktuelle Hinweise</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Zurück</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 1. Aktuelle Hinweise"><div class="titlepage"><div><div><h2 class="title"><a name="Aktuelle-Hinweise"></a>Kapitel 1. Aktuelle Hinweise</h2></div></div></div><p>Aktuelle Installations- und Konfigurationshinweise gibt es:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>im kivitendo-Forum: <a class="ulink" href="https://forum.kivitendo.org/" target="_top">https://forum.kivitendo.org/</a> |
4 |
</p></li><li class="listitem"><p>im alten Lx-Office-Wiki unter Dokumentation (<a class="ulink" href="http://wiki.lx-office.org/index.php?title=Installation_Lx-Office_ERP" target="_top">http://wiki.lx-office.org/index.php?title=Installation_Lx-Office_ERP</a>)</p></li></ul></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Zurück</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">kivitendo: Installation, Konfiguration, Entwicklung </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> Kapitel 2. Installation und Grundkonfiguration</td></tr></table></div></body></html> |
|
4 |
</p></li></ul></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Zurück</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">kivitendo: Installation, Konfiguration, Entwicklung </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> Kapitel 2. Installation und Grundkonfiguration</td></tr></table></div></body></html> |
doc/html/ch02.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>Ubuntu 10.04 LTS Lucid Lynx bis 12.10 Oneiric Ocelot</p></li><li class="listitem"><p>Debian 5.0 Lenny und 6.0 Squeeze</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.1.2. Pakete"><div class="titlepage"><div><div><h3 class="title"><a name="Pakete"></a>2.1.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 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.1.2. Pakete"><div class="titlepage"><div><div><h3 class="title"><a name="Pakete"></a>2.1.2. Pakete</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 | 11 |
benötigt.</p><p>Zusätzlich benötigt kivitendo die folgenden Perl-Pakete, die |
12 | 12 |
nicht Bestandteil einer Standard-Perl-Installation sind:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> |
doc/html/ch02s04.html | ||
---|---|---|
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 | 3 |
<title>2.4. Anpassung der PostgreSQL-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="ch02s03.html" title="2.3. kivitendo-Konfigurationsdatei"><link rel="next" href="ch02s05.html" title="2.5. Webserver-Konfiguration"></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.4. Anpassung der PostgreSQL-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03.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="ch02s05.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.4. Anpassung der PostgreSQL-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Anpassung-der-PostgreSQL-Konfiguration"></a>2.4. Anpassung der PostgreSQL-Konfiguration</h2></div></div></div><p>PostgreSQL muss auf verschiedene Weisen angepasst werden.</p><div class="sect2" title="2.4.1. Zeichensätze/die Verwendung von UTF-8"><div class="titlepage"><div><div><h3 class="title"><a name="Zeichens%C3%A4tze-die-Verwendung-von-UTF-8"></a>2.4.1. Zeichensätze/die Verwendung von UTF-8</h3></div></div></div><p>Bei aktuellen Serverinstallationen braucht man hier meist nicht |
4 | 4 |
eingreifen</p><p>Dieses kann überprüft werden: ist das Encoding der Datenbank |
5 |
“template1” “UTF8”, so braucht man nichts weiteres diesbezueglich
|
|
5 |
“template1” “UTF8”, so braucht man nichts weiteres diesbezüglich
|
|
6 | 6 |
unternehmen. Zum Testen: |
7 | 7 |
|
8 | 8 |
</p><pre class="programlisting">su postgres |
... | ... | |
41 | 41 |
\q</pre></div><div class="sect2" title="2.4.4. Datenbankbenutzer anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Datenbankbenutzer-anlegen"></a>2.4.4. Datenbankbenutzer anlegen</h3></div></div></div><p>Wenn Sie nicht den Datenbanksuperuser “postgres” zum Zugriff |
42 | 42 |
benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer |
43 | 43 |
anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen |
44 |
können:</p><pre class="programlisting">su - postgres |
|
44 |
können:</p><p>Die Frage, ob der neue User Superuser sein soll, können Sie mit nein |
|
45 |
beantworten, genauso ist die Berechtigung neue User (Roles) zu |
|
46 |
generieren nicht nötig.</p><pre class="programlisting">su - postgres |
|
45 | 47 |
createuser -d -P kivitendo |
46 | 48 |
exit</pre><p>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern |
47 | 49 |
Sie den evtl. voreingestellten Benutzer “postgres” auf “kivitendo” bzw. |
doc/html/ch02s05.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>2.5. 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="ch02s04.html" title="2.4. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s06.html" title="2.6. 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.5. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.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="ch02s06.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.5. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.5. Webserver-Konfiguration</h2></div></div></div><div class="sect2" title="2.5.1. Grundkonfiguration mittels CGI"><div class="titlepage"><div><div><h3 class="title"><a name="d0e589"></a>2.5.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.5. 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="ch02s04.html" title="2.4. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s06.html" title="2.6. 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.5. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.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="ch02s06.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.5. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.5. Webserver-Konfiguration</h2></div></div></div><div class="sect2" title="2.5.1. Grundkonfiguration mittels CGI"><div class="titlepage"><div><div><h3 class="title"><a name="d0e592"></a>2.5.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="ch02s05.html#Apache-Konfiguration.FCGI" title="2.5.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/ch02s06.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.6.2.1. SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e773"></a>2.6.2.1. SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora
|
|
32 |
anstelle eines symbolischen Links verwendet werden können.</p><div class="sect3" title="2.6.2.1. SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e776"></a>2.6.2.1. SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora
|
|
33 | 33 |
Core)</h4></div></div></div><p>Kopieren Sie die Datei |
34 | 34 |
<code class="filename">scripts/boot/system-v/kivitendo-server</code> |
35 | 35 |
nach <code class="filename">/etc/init.d/kivitendo-server</code>. Passen |
... | ... | |
40 | 40 |
insserv kivitendo-task-server</pre></li><li class="listitem"><p>OpenSuSE und 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 |
41 | 41 |
werden: <span class="command"><strong>/etc/init.d/kivitendo-task-server |
42 | 42 |
start</strong></span> |
43 |
</p></div><div class="sect3" title="2.6.2.2. Upstart-basierende Systeme (z.B. Ubuntu)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e803"></a>2.6.2.2. Upstart-basierende Systeme (z.B. Ubuntu)</h4></div></div></div><p>Kopieren Sie die Datei
|
|
43 |
</p></div><div class="sect3" title="2.6.2.2. Upstart-basierende Systeme (z.B. Ubuntu)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e806"></a>2.6.2.2. Upstart-basierende Systeme (z.B. Ubuntu)</h4></div></div></div><p>Kopieren Sie die Datei
|
|
44 | 44 |
<code class="filename">scripts/boot/upstart/kivitendo-task-server.conf</code> |
45 | 45 |
nach <code class="filename">/etc/init/kivitendo-task-server.conf</code>. |
46 | 46 |
Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile |
doc/html/ch02s10.html | ||
---|---|---|
3 | 3 |
<title>2.10. Drucken mit kivitendo</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="ch02s09.html" title="2.9. E-Mail-Versand aus kivitendo heraus"><link rel="next" href="ch02s11.html" title="2.11. OpenDocument-Vorlagen"></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.10. Drucken mit kivitendo</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s09.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="ch02s11.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.10. Drucken mit kivitendo"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Drucken-mit-kivitendo"></a>2.10. Drucken mit kivitendo</h2></div></div></div><p>Das Drucksystem von kivitendo benutzt von Haus aus LaTeX Vorlagen. |
4 | 4 |
Um drucken zu können, braucht der Server ein geeignetes LaTeX System. Am |
5 | 5 |
einfachsten ist dazu eine <code class="literal">texlive</code> Installation. Unter |
6 |
Debianoiden Betriebssystemen sind das die Pakete:</p><p> |
|
7 |
<code class="literal">texlive-latex-base texlive-latex-extra |
|
8 |
texlive-fonts-recommended</code> |
|
9 |
</p><p>Diese hinteren beiden enthalten Bibliotheken und Schriftarten die |
|
10 |
von den Standardvorlagen verwendet werden.</p><p>TODO: rpm Pakete.</p><p>In den allermeisten Installationen sollte drucken jetzt schon |
|
11 |
funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange |
|
12 |
Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite |
|
13 |
die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum |
|
14 |
Beispiel:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>! LaTeX Error: File `eurosym.sty' not found. Die entsprechende |
|
15 |
LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem bei |
|
16 |
Vorlagen aus der Community auf. Installieren Sie die entsprechenden |
|
17 |
Pakete.</p></li><li class="listitem"><p>! Package inputenc Error: Unicode char \u8:æ¡ not set up for |
|
18 |
use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit |
|
19 |
einer Standardinstallation exotische utf8 Zeichen zu drucken. |
|
20 |
TeXLive unterstützt von Haus nur romanische Schriften und muss mit |
|
21 |
diversen Tricks dazu gebracht werden andere Zeichen zu akzeptieren. |
|
22 |
Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.</p></li></ul></div><p>Wird garkein Fehler angezeigt sondern nur der Name des Templates, |
|
23 |
heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde. |
|
24 |
Prüfen Sie den Namen in der Konfiguration (Standard: |
|
25 |
<code class="literal">pdflatex</code>), und stellen Sie sicher, dass pdflatex |
|
26 |
(oder das von Ihnen verwendete System) vom Webserver ausgeführt werden |
|
27 |
darf.</p></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. E-Mail-Versand aus kivitendo heraus </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. OpenDocument-Vorlagen</td></tr></table></div></body></html> |
|
6 |
Debianoiden Betriebssystemen installiert man die Pakete mit:</p><p> |
|
7 |
</p><pre class="programlisting">aptitude install \ |
|
8 |
texlive-base-bin \ |
|
9 |
texlive-latex-recommended \ |
|
10 |
texlive-fonts-recommended \ |
|
11 |
texlive-latex-extra \ |
|
12 |
texlive-lang-german \ |
|
13 |
texlive-generic-extra |
|
14 |
</pre><p> |
|
15 |
</p><p>TODO: rpm Pakete.</p><p>kivitendo bringt 3 alternative Vorlagensätze mit:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">Standard</li><li class="listitem">f-tex</li><li class="listitem">RB</li></ul></div><div class="sect2" title="2.10.1. Vorlagenverzeichnis anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagenverzeichnis-anlegen"></a>2.10.1. Vorlagenverzeichnis anlegen</h3></div></div></div><p>Bei einem neuen Benutzer/Mandanten lässt sich einer dieser Vorlagensätze |
|
16 |
als Basis für die zu druckenden Dokumente auswählen:</p><p> |
|
17 |
</p><pre class="programlisting">unter: |
|
18 |
Administration -> Benutzerverwaltung -> [ein Benutzer] |
|
19 |
Erzeuge Vorlagen, Name: [Name für das neue Vorlagenverzeichnis] |
|
20 |
Vorlagen auswählen: [Default, f-tex oder RB] |
|
21 |
-> Speichern |
|
22 |
</pre><p> |
|
23 |
</p><p>der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Benutzern verwendet werden.</p><p>Die Abhängigkeiten kann man prüfen mit:</p><p> |
|
24 |
</p><pre class="programlisting">/scripts/installation_check.pl -l</pre><p> |
|
25 |
</p></div><div class="sect2" title="2.10.2. Default"><div class="titlepage"><div><div><h3 class="title"><a name="Standard"></a>2.10.2. Default</h3></div></div></div><p>Der standard Vorlagensatz von Kivitendo. Wie unter |
|
26 |
<a class="ulink" href="http://demo.kivitendo.org" target="_top">http://demo.kivitendo.org</a> zu sehen.</p></div><div class="sect2" title="2.10.3. f-tex"><div class="titlepage"><div><div><h3 class="title"><a name="f-tex"></a>2.10.3. f-tex</h3></div></div></div><p>Ein Vorlagensatz, der in Wenigen Minuten alle Dokumente zur stellt.</p><div class="sect3" title="2.10.3.1. f-tex Feature Übersicht"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Feature-%C3%9Cbersicht"></a>2.10.3.1. f-tex Feature Übersicht</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">Keine Retundanz. Es wird ein und die selbe Latex-Vorlage für alle |
|
27 |
briefartigen Dokumente verwendet. Also Angebot, Rechnung, |
|
28 |
Performarechnung, Lieferschein, aber eben nicht für Paketaufkleber |
|
29 |
etc.. </li><li class="listitem">Leichte Anpassung an das Firmen Layout durch verwendung eines Hintergrund-PDF |
|
30 |
dieses kann leicht mit dem eigenen Lieblingsprogramm erstellt werden |
|
31 |
(Openoffice, Inkscape, Gimp, Adobe*) |
|
32 |
</li><li class="listitem">Hintergrundpdf um schaltbar auf "nur erste Seite" (default) oder "alle Seiten" |
|
33 |
(option "bgPdfFirstPageOnly" in Datei letter.lco) |
|
34 |
</li><li class="listitem">Hintergrundpdf für Ausdruck auf bereits bedrucktem Briefpapier Abschaltbar, |
|
35 |
es wird dann nur bei per email versendeten Dokumenten eingebunden. |
|
36 |
(Option "bgPdfEmailOnly" in Datei letter.lco) |
|
37 |
</li><li class="listitem">Nutzung der Layout-Funktionen von Latex für Seitenumbruch, |
|
38 |
wiederholung von Kopfzeilen, Zwischensummen etc. (danke an Kai-Martin für |
|
39 |
die Vorarbeit) |
|
40 |
</li><li class="listitem">Anzeige des Empfängerlandes im Adressfeld nur, wenn es vom Land des |
|
41 |
eigenen Unternehmens abweicht (also die Rechnung das Land verlässt). |
|
42 |
</li><li class="listitem">Multisprachfähig leicht um weitere Sprachen zu erweitern, alle |
|
43 |
Übersetzungen in der Datei translatinos.tex. |
|
44 |
</li><li class="listitem">Auflistung von Bruttopreisen für Endverbraucher. |
|
45 |
</li></ul></div></div><div class="sect3" title="2.10.3.2. f-tex Die Installation"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-installation"></a>2.10.3.2. f-tex Die Installation</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">Vorlagenverzeichnis mit Option f-tex anlegen, siehe: |
|
46 |
<a class="xref" href="ch02s10.html#Vorlagenverzeichnis-anlegen" title="2.10.1. Vorlagenverzeichnis anlegen">Vorlagenverzeichnis anlegen</a> |
|
47 |
Das Vorlagensystem funktioniert jetzt schon, hat allerdings noch einen |
|
48 |
Beispiel Briefkopf |
|
49 |
</li><li class="listitem"> |
|
50 |
Erstelle eine pdf-Hintergrund Datei und verlinke sie nach |
|
51 |
<pre class="programlisting">./letter_head.pdf</pre></li><li class="listitem"> |
|
52 |
Editiere den Bereich "settings" in der datei letter.lco |
|
53 |
</li></ul></div><p>oder etwas Detaillierter:</p><p> |
|
54 |
Es wird eine Datei sample.lco erstellt und diese nach letter.lco verlinkt. |
|
55 |
Eigentlich ist dies die Datei die für die Firmenspezifischen Anpassungen |
|
56 |
gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig ist, wird in |
|
57 |
dieser Datei auf ein Hintergrundpdf verwiesen. Ich empfehle über dieses pdf |
|
58 |
die persönlichen Layoutanpassungen vorzunehmen und sample.lco unverändert zu |
|
59 |
lassen. Die die Anpassung über eine *.lco Datei die letztlich auf letter.lco |
|
60 |
verlinkt ist ist aber auch möglich. |
|
61 |
</p><p> |
|
62 |
Es wird eine Datei sample_head.pdf mit ausgeliefert, diese wird nach |
|
63 |
letter_head.pdf verlinkt. Damit gibt es schon mal eine Funktionsfähige |
|
64 |
Vorlage. Schau Dir nach Abschluss der Installation die Datei sample_haed.pdf |
|
65 |
an und erstelle ein entsprechendes pdf passend zum Briefkopf Deiner Firma, |
|
66 |
diese dann im Template Verzeichniss ablegen und statt sample_head.pdf nach |
|
67 |
letter_head.pdf verlinken. |
|
68 |
</p><p> |
|
69 |
letzlich muss ./letter_head.pdf auf das passende Hintergrundpdf verweisen, |
|
70 |
welches gewünschten Briefkopf enthält. Bei Updates oder nach erneutem |
|
71 |
</p><p> |
|
72 |
Es wird eine Datei mydata.tex.example ausgeliefert die nach mytdata.tex |
|
73 |
verlinkt ist. Bei verwendetem Hintergrundpdf wird nur der Eintrag für das |
|
74 |
Land verwendet die Datei muss also nicht angefasst werden. Die Anderen Werte |
|
75 |
sind für das Modul lp (Label Print in erp - zur Zeit nicht im |
|
76 |
öffentlichen Zweig). |
|
77 |
</p><p> |
|
78 |
Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. |
|
79 |
sollten über die Hintergrund pdf datei oder die *.lco Datei erfolgen. |
|
80 |
</p></div><div class="sect3" title="2.10.3.3. f-tex Funktionsübersicht"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Funktions%C3%BCbersicht"></a>2.10.3.3. f-tex Funktionsübersicht</h4></div></div></div><p> |
|
81 |
Das Konzept von kivitendo sieht vor, für jedes Dokument |
|
82 |
(Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine |
|
83 |
Latex-Vorlage vorzuhalten, dies ist sehr Wartungsunfreundlich. Auch |
|
84 |
das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur |
|
85 |
bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen aus |
|
86 |
dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle |
|
87 |
Briefartigen Dokumente mit Artikel-Tabellen eine einheitliche |
|
88 |
Latexvorlage verwendet, welche über Codeweichen die Besonderheiten |
|
89 |
der jeweiligen Dokumente Berücksichtigt |
|
90 |
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">Tabellen mit oder ohne Preis |
|
91 |
</li><li class="listitem">Sprache der Tabellenüberschriften etc. |
|
92 |
</li><li class="listitem">Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus |
|
93 |
Angebotsnummer) |
|
94 |
</li><li class="listitem">Darstellung von Brutto oder Netto-Preisen in der Auflistung |
|
95 |
(Endverbraucher versus Gewerblicher Kunde) |
|
96 |
</li></ul></div><p>Nachteil:</p><p> |
|
97 |
Latex hat ohnehin eine sehr steile Lehrnkurve. Die Datei letter.tex |
|
98 |
ist sehr komplex und verstärkt damit diesen Effekt noch einmal erheblich. |
|
99 |
Wer Latex-Erfahrung hat, oder geübt ist Scriptsparachen nachzuvollziehen kann |
|
100 |
natürlich auch innerhalb der Tabellendarstellung gut persönliche Anpassungen |
|
101 |
vornehmen. Aber man kann sich hier bei Veränderungen sehr schnell häftig in |
|
102 |
den Fuss schiessen. |
|
103 |
</p><p>Wer nicht so tief in die Materie einsteigen will oder leicht zu |
|
104 |
frustrieren ist, sollte sein Hintergrund PDF auf Basis der mitglieferten |
|
105 |
Datei sample_head.pdf erstellen, und sich an der Form der dargestellten Tabellen |
|
106 |
wie sie ausgeliefert werden, erfreuen. |
|
107 |
</p><p>Kleiner Tipp: |
|
108 |
Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche |
|
109 |
Schritte gehen. |
|
110 |
</p><p>Bruttopreise für Endvorbraucher</p><p>Der auszuweisende Bruttopreis wird innerhalb der LaTeX |
|
111 |
Umgebung berechnet. es gibt zwar ein Feld um bei Aufträgen "alle Preise |
|
112 |
Brutto" auszuwählen, aber:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> |
|
113 |
hierfür müssen die Preise auch in Brutto in der Datenbank stehen |
|
114 |
(ja - das lässt sich über die Preisgruppen und die Zuordung einer Default-Preisgruppe |
|
115 |
handhaben) |
|
116 |
</li><li class="listitem"> |
|
117 |
man darf beim Anlegen des Vorgangs nicht vergessen Dieses Häkchen zu setzen. |
|
118 |
(das ist in der Praxis wenn man sowohl Endverbraucher- wie Gewerbekunden beliefert |
|
119 |
der eigentliche Knackpunkt) |
|
120 |
</li></ul></div><p> |
|
121 |
Es gibt mit f-tex eine weitere Alternative. Die Information ob Brutto oder |
|
122 |
Nettorechnung wird mit den Zahlarten verknüpft. Zahlarten bei denen |
|
123 |
Rechnungen, Angebote, etc, in Brutto ausgegeben werden sollen enden mit "_E" |
|
124 |
(für Endverbraucher) Falls identische Zahlarten für Gewerbekunden und |
|
125 |
Endverbraucher vorhanden sind legt man diese einfach doppelt an (einmal mit |
|
126 |
der Namensendung "_E"). Gewinn:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> |
|
127 |
die Entscheidung ob Netopreise ausgewiesen werden ist nicht mehr fix |
|
128 |
mit einer Preisliste Verbunden. |
|
129 |
</li><li class="listitem"> |
|
130 |
die Default-Zahlart kann im Kundendatensatz hinterlegt werden und man |
|
131 |
muss nicht mehr daran denken "alle Preise Netto" auszuwählen. |
|
132 |
</li><li class="listitem"> |
|
133 |
Die Entscheidung ob Netto/Oder Bruttopreise ausgewiesen werden kann direkt |
|
134 |
beim Drucken reviediert werden, ohne dass sich der Auftragswert ändert. |
|
135 |
</li></ul></div><p>Lieferadressen</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> |
|
136 |
in Lieferscheinen kommen shipto* -Variablen im Adressfeld zum Einsatz |
|
137 |
</li><li class="listitem"> |
|
138 |
wenn die shipto*variable leer ist wird die entsprechende |
|
139 |
Adressvariable eingesetzt. Wenn Also die Lieferadresse in Strasse, |
|
140 |
Hausnummer und Ort abweicht, müssen auch nur diese Felder in der |
|
141 |
Lieferadresse ausgefüllt werden. Für den Firmenname wird der Wert der |
|
142 |
Hauptadresse angezeigt. |
|
143 |
</li></ul></div></div></div><div class="sect2" title="2.10.4. RB"><div class="titlepage"><div><div><h3 class="title"><a name="RB"></a>2.10.4. RB</h3></div></div></div><p>Vollständiger Dokumentensatz mit alternativen Design</p></div><div class="sect2" title="2.10.5. Allgemeine Hinweise zu LaTeX Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="Allgemeine Hinweise zu LaTeX"></a>2.10.5. Allgemeine Hinweise zu LaTeX Vorlagen</h3></div></div></div><p>In den allermeisten Installationen sollte drucken jetzt schon |
|
144 |
funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange |
|
145 |
Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite |
|
146 |
die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum |
|
147 |
Beispiel:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>! LaTeX Error: File `eurosym.sty' not found. Die entsprechende |
|
148 |
LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem bei |
|
149 |
Vorlagen aus der Community auf. Installieren Sie die entsprechenden |
|
150 |
Pakete.</p></li><li class="listitem"><p>! Package inputenc Error: Unicode char \u8:æ¡ not set up for |
|
151 |
use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit |
|
152 |
einer Standardinstallation exotische utf8 Zeichen zu drucken. |
|
153 |
TeXLive unterstützt von Haus nur romanische Schriften und muss mit |
|
154 |
diversen Tricks dazu gebracht werden andere Zeichen zu akzeptieren. |
|
155 |
Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.</p></li></ul></div><p>Wird garkein Fehler angezeigt sondern nur der Name des Templates, |
|
156 |
heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde. |
|
157 |
Prüfen Sie den Namen in der Konfiguration (Standard: |
|
158 |
<code class="literal">pdflatex</code>), und stellen Sie sicher, dass pdflatex |
|
159 |
(oder das von Ihnen verwendete System) vom Webserver ausgeführt werden |
|
160 |
darf.</p><p>Wenn sich das Problem nicht auf Grund der ausgabe im Webbrowser verifizieren lässt:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> editiere [kivitendo-home]/config/kivitendo.conf und ändere "keep_tmp_files" auf 1</p><p> |
|
161 |
</p><pre class="programlisting">keep_temp_files = 1;</pre><p> |
|
162 |
</p></li><li class="listitem"><p>bei fastcgi oder mod_perl den Webserver neu Starten</p></li><li class="listitem"><p>Nochmal einen Druckversuch im Webfrontend auslösen</p></li><li class="listitem"><p>wechsele in das users Verzeichnis von kivitendo</p><p> |
|
163 |
</p><pre class="programlisting">cd [kivitendo-home]/users</pre><p> |
|
164 |
</p></li><li class="listitem"><p>LaTeX Suchpfad anpassen:</p><p> |
|
165 |
</p><pre class="programlisting">export TEXINPUTS=".:[kivitendo-home]/templates/[aktuelles_template_verzeichniss]:"</pre><p> |
|
166 |
</p></li><li class="listitem"><p>Finde herraus welche Datei kivitendo beim letzten Durchlauf erstellt hat</p><p> |
|
167 |
</p><pre class="programlisting">ls -lahtr ./1*.tex</pre><p> |
|
168 |
</p><p>Es sollte die letzte Datei ganz unten sein</p></li><li class="listitem"><p>für besseren Hinweis auf Fehler texdatei nochmals übersetzen</p><p> |
|
169 |
</p><pre class="programlisting">pdflatex ./1*.tex</pre><p> |
|
170 |
</p><p>in der *.tex datei nach dem Fehler suchen.</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. E-Mail-Versand aus kivitendo heraus </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. OpenDocument-Vorlagen</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="d0e4045"></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="d0e4241"></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="d0e4645"></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="d0e4651"></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="d0e4841"></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="d0e4847"></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="d0e4752"></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="d0e4948"></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="d0e4785"></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="d0e4981"></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="d0e4849"></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="d0e5045"></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="d0e4933"></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="d0e5129"></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="d0e4972"></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="d0e5168"></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="d0e4990"></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="d0e5186"></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="d0e5027"></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="d0e5223"></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="d0e5048"></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="d0e5244"></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="d0e5084"></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="d0e5280"></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="d0e5105"></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="d0e5301"></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="d0e5123"></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="d0e5319"></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="d0e5165"></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="d0e5170"></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="d0e5361"></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="d0e5366"></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="d0e5186"></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="d0e5382"></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="d0e5205"></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="d0e5401"></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/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#Ben%C3%B6tigte-Software-und-Pakete">2.1. Benötigte Software und Pakete</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#Betriebssystem">2.1.1. Betriebssystem</a></span></dt><dt><span class="sect2"><a href="ch02.html#Pakete">2.1.2. Pakete</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s02.html">2.2. Manuelle Installation des Programmpaketes</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">2.3. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s03.html#config.config-file.introduction">2.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s03.html#config.config-file.sections-parameters">2.3.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s03.html#config.config-file.prior-versions">2.3.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s04.html">2.4. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.4.1. Zeichensätze/die Verwendung von UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#%C3%84nderungen-an-Konfigurationsdateien">2.4.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.4.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#Datenbankbenutzer-anlegen">2.4.4. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#d0e589">2.5.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Apache-Konfiguration.FCGI">2.5.2. Konfiguration für FastCGI/FCGI</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#Konfiguration-des-Task-Servers">2.6.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Einbinden-in-den-Boot-Prozess">2.6.2. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Prozesskontrolle">2.6.3. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Prozesskontrolle2">2.6.4. Task-Server mit mehreren Mandanten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#Grundlagen-zur-Benutzerauthentifizierung">2.7.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Administratorpasswort">2.7.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Authentifizierungsdatenbank">2.7.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Passwort%C3%BCberpr%C3%BCfung">2.7.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Name-des-Session-Cookies">2.7.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Anlegen-der-Authentifizierungsdatenbank">2.7.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Zusammenh%C3%A4nge">2.8.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Datenbanken-anlegen">2.8.2. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Gruppen-anlegen">2.8.3. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Benutzer-anlegen">2.8.4. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Gruppenmitgliedschaften-verwalten">2.8.5. Gruppenmitgliedschaften verwalten</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Migration-alter-Installationen">2.8.6. Migration alter Installationen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. E-Mail-Versand aus kivitendo heraus</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#config.sending-email.sendmail">2.9.1. Versand über lokalen E-Mail-Server</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#config.sending-email.smtp">2.9.2. Versand über einen SMTP-Server</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. Drucken mit kivitendo</a></span></dt><dt><span class="sect1"><a href="ch02s11.html">2.11. OpenDocument-Vorlagen</a></span></dt><dt><span class="sect1"><a href="ch02s12.html">2.12. 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#Ben%C3%B6tigte-Software-und-Pakete">2.1. Benötigte Software und Pakete</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#Betriebssystem">2.1.1. Betriebssystem</a></span></dt><dt><span class="sect2"><a href="ch02.html#Pakete">2.1.2. Pakete</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s02.html">2.2. Manuelle Installation des Programmpaketes</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">2.3. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s03.html#config.config-file.introduction">2.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s03.html#config.config-file.sections-parameters">2.3.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s03.html#config.config-file.prior-versions">2.3.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s04.html">2.4. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.4.1. Zeichensätze/die Verwendung von UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#%C3%84nderungen-an-Konfigurationsdateien">2.4.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.4.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#Datenbankbenutzer-anlegen">2.4.4. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#d0e592">2.5.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Apache-Konfiguration.FCGI">2.5.2. Konfiguration für FastCGI/FCGI</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#Konfiguration-des-Task-Servers">2.6.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Einbinden-in-den-Boot-Prozess">2.6.2. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Prozesskontrolle">2.6.3. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Prozesskontrolle2">2.6.4. Task-Server mit mehreren Mandanten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#Grundlagen-zur-Benutzerauthentifizierung">2.7.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Administratorpasswort">2.7.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Authentifizierungsdatenbank">2.7.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Passwort%C3%BCberpr%C3%BCfung">2.7.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Name-des-Session-Cookies">2.7.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Anlegen-der-Authentifizierungsdatenbank">2.7.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Zusammenh%C3%A4nge">2.8.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Datenbanken-anlegen">2.8.2. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Gruppen-anlegen">2.8.3. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Benutzer-anlegen">2.8.4. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Gruppenmitgliedschaften-verwalten">2.8.5. Gruppenmitgliedschaften verwalten</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Migration-alter-Installationen">2.8.6. Migration alter Installationen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. E-Mail-Versand aus kivitendo heraus</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#config.sending-email.sendmail">2.9.1. Versand über lokalen E-Mail-Server</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#config.sending-email.smtp">2.9.2. Versand über einen SMTP-Server</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. Drucken mit kivitendo</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s10.html#Vorlagenverzeichnis-anlegen">2.10.1. Vorlagenverzeichnis anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Standard">2.10.2. Default</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#f-tex">2.10.3. f-tex</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#RB">2.10.4. RB</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Allgemeine Hinweise zu LaTeX">2.10.5. Allgemeine Hinweise zu LaTeX Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s11.html">2.11. OpenDocument-Vorlagen</a></span></dt><dt><span class="sect1"><a href="ch02s12.html">2.12. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
|
|
4 | 4 |
EUR</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s12.html#config.eur.introduction">2.12.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#config.eur.parameters">2.12.2. Konfigurationsparameter</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#config.eur.setting-parameters">2.12.3. Festlegen der Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#config.eur.inventory-system-perpetual">2.12.4. Bemerkungen zu Bestandsmethode</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#config.eur.knonw-issues">2.12.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s13.html">2.13. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s13.html#config.skr04-update-3804.introduction">2.13.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#config.skr04-update-3804.create-chart">2.13.2. Konto 3804 manuell anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s14.html">2.14. Einstellungen pro Mandant</a></span></dt><dt><span class="sect1"><a href="ch02s15.html">2.15. 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#d0e4651">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e4752">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e4785">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5165">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#d0e4847">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e4948">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e4981">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5361">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 |
templates/print/f-tex/README | ||
---|---|---|
1 |
README lx-office Fancy-LaTeX (f-tex) |
|
2 |
|
|
3 |
# Revision 1.1-u (03.02.2012) |
|
4 |
# Revision 1.0-u (16.11.2011) |
|
5 |
# Revision 0.9 (13.11.2011) |
|
6 |
# Revision 0.8 (12.09.2011) |
|
7 |
# Revision 0.7 (12.07.2011) |
|
8 |
# Revision 0.6 (16.06.2011) |
|
9 |
# Revision 0.5 (15.04.2011) |
|
10 |
# Revision 0.4 (14.02.2011) |
|
11 |
# Revision 0.3 (03.01.2011) |
|
12 |
# Revision 0.2 (24.12.2010) |
|
13 |
# Revision 0.1 (03.11.2009) |
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
# Feature Uebersicht |
|
18 |
|
|
19 |
- einfach Nutzung durch mitgeliefertes Setup-Script |
|
20 |
- Keine Retundanz. Es wird ein und die selbe Latex-Vorlage fuer alle |
|
21 |
briefartigen Dokumente verwendet. Also Angebot, Rechnung, |
|
22 |
Performarechnung, Lieferschein, aber eben nicht fuer Paketaufkleber |
|
23 |
etc.. |
|
24 |
- Leichte Anpassung an das Firmen Layout durch verwendung eines Hintergrund-PDF |
|
25 |
dieses kann leicht mit dem eigenen Lieblingsprogramm erstellt werden |
|
26 |
(Openoffice, Inkscape, Gimp, Adobe*) |
|
27 |
- Hintergrundpdf um schaltbar auf "nur erste Seite" (default) oder "alle Seiten" |
|
28 |
(option "bgPdfFirstPageOnly" in Datei letter.lco) |
|
29 |
- Hintergrundpdf fuer Ausdruck auf bereits bedrucktem Briefpapier Abschaltbar, |
|
30 |
es wird dann nur bei per email versendeten Dokumenten eingebunden. |
|
31 |
(Option "bgPdfEmailOnly" in Datei letter.lco) |
|
32 |
- Nutzung der Layout-Funktionen von Latex fuer Seitenumbruch, |
|
33 |
wiederholung von Kopfzeilen, Zwischensummen etc. (danke an Kai-Martin fuer |
|
34 |
die Vorarbeit) |
|
35 |
- Anzeige des Empfaengerlandes im Adressfeld nur, wenn es vom Land des |
|
36 |
eigenen Unternehmens abweicht (also die Rechnung das Land verlaesst). |
|
37 |
- Multisprachfaehig leicht um weitere Sprachen zu erweitern, alle |
|
38 |
Übersetzungen in der Datei translatinos.tex. |
|
39 |
- Auflistung von Bruttopreisen fuer Endverbraucher. |
|
40 |
|
|
41 |
|
|
42 |
|
|
43 |
|
|
44 |
# die Installation |
|
45 |
|
|
46 |
Wenn es noch keine LaTeX installation gibt, installiere die folgenden Pakete |
|
47 |
(Debian) |
|
48 |
aptitude install \ |
|
49 |
texlive-base-bin \ |
|
50 |
texlive-latex-recommended \ |
|
51 |
texlive-fonts-recommended \ |
|
52 |
texlive-latex-extra \ |
|
53 |
texlive-lang-german \ |
|
54 |
texlive-generic-extra |
|
55 |
|
|
56 |
Die Abhaengigkeiten kann man mit |
|
57 |
/scripts/installation_check.pl -l pruefen (z.Z. noch nicht eingecheckt) |
|
58 |
|
|
59 |
Ein Vorlagenverzeichniss kannst Du direkt unter admin.pl Benutzeradministration erstellen: |
|
60 |
Benutze Vorlagen: f-tex |
|
61 |
Erzeuge Vorlagen, Name: <DEIN_WUNSCHNAME> |
|
62 |
Das Verzeichniss templates muss dafuer fuer den Webserver schreibbar sein. |
|
63 |
|
|
64 |
Erstelle eine pdf-Hintergrund Datei und verlinke sie nach ./letter_head.pdf |
|
65 |
|
|
66 |
Editiere den Bereich "settings" in der datei letter.lco "" |
|
67 |
|
|
68 |
# oder etwas Detaillierter: |
|
69 |
Es wird eine Datei sample.lco erstellt und diese nach letter.lco verlinkt. |
|
70 |
Eigentlich ist dies die Datei die fuer die Firmenspezifischen Anpassungen |
|
71 |
gedacht ist. Da die Einstiegshuerde in LaTeX nicht ganz niedrig ist, wird in |
|
72 |
dieser Datei auf ein Hintergrundpdf verwiesen. Ich empfehle ueber dieses pdf |
|
73 |
die persoenlichen Layoutanpassungen vorzunehmen und sample.lco unveraendert zu |
|
74 |
lassen. Die die Anpassung ueber eine *.lco Datei die letztlich auf letter.lco |
|
75 |
verlinkt ist ist aber auch moeglich. |
|
76 |
|
|
77 |
Es wird eine Datei sample_head.pdf mit ausgeliefert, diese wird nach |
|
78 |
letter_head.pdf verlinkt. Damit gibt es schon mal eine Funktionsfaehige |
|
79 |
Vorlage. Schau Dir nach Abschluss der Installation die Datei sample_haed.pdf |
|
80 |
an und erstelle ein entsprechendes pdf passend zum Briefkopf Deiner Firma, |
|
81 |
diese dann im Template Verzeichniss ablegen und statt sample_head.pdf nach |
|
82 |
letter_head.pdf verlinken. |
|
83 |
|
|
84 |
letzlich muss ./letter_head.pdf auf das passende Hintergrundpdf verweisen, |
|
85 |
welches gewuenschten Briefkopf enthaelt. Bei Updates oder nach erneutem |
|
86 |
|
|
87 |
Es wird eine Datei mydata.tex.example ausgeliefert die nach mytdata.tex |
|
88 |
verlinkt ist. Bei verwendetem Hintergrundpdf wird nur der Eintrag fuer das |
|
89 |
Land verwendet die Datei muss also nicht angefasst werden. Die Anderen Werte |
|
90 |
sind fuer das Modul lp (Label Print in erp -- zur Zeit nicht im |
|
91 |
oeffentlichen Zweig). |
|
92 |
|
|
93 |
Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. |
|
94 |
sollten ueber die Hintergrund pdf datei oder die *.lco Datei erfolgen. |
|
95 |
|
|
96 |
|
|
97 |
# einheitliche Latex-Vorlagen -- Background |
|
98 |
|
|
99 |
Das Konzept von lx-office sieht vor, fuer jedes Dokument |
|
100 |
(Auftragsbestaetigung, Lieferschein, Rechnung, etc.) eine |
|
101 |
Latex-Vorlage vorzuhalten, dies ist sehr Wartungsunfreundlich. Auch |
|
102 |
das Einlesen einer einheitlichen Quelle fuer den Briefkopf bringt nur |
|
103 |
bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen aus |
|
104 |
dem Ruder laeuft. Bei dem vorliegenden Ansatz wird fuer alle |
|
105 |
Briefartigen Dokumente mit Artikel-Tabellen eine einheitliche |
|
106 |
Latexvorlage verwendet, welche ueber Codeweichen die Besonderheiten |
|
107 |
der jeweiligen Dokumente Beruecksichtigt |
|
108 |
- Tabellen mit oder ohne Preis |
|
109 |
- Sprache der Tabellenueberschriften etc. |
|
110 |
- Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus |
|
111 |
Angebotsnummer) |
|
112 |
- Darstellung von Brutto oder Netto-Preisen in der Auflistung |
|
113 |
(Endverbraucher versus Gewerblicher Kunde) |
|
114 |
Seit Version 2.7 ist das ohne Kunstgriff moeglich, da im bei nicht vorhanden |
|
115 |
Dokumenten auf default.tex zurueckgegriffen wird. |
|
116 |
|
|
117 |
|
|
118 |
Nachteil: |
|
119 |
Ja, alles hat seinen Preis ... |
|
120 |
Latex hat ohnehin eine sehr steile Lehrnkurve. Die Datei letter.tex |
|
121 |
ist sehr komplex und verstaerkt damit diesen Effekt noch einmal erheblich. |
|
122 |
Wer Latex-Erfahrung hat, oder geuebt ist Scriptsparachen nachzuvollziehen kann |
|
123 |
natuerlich auch innerhalb der Tabellendarstellung gut persoenliche Anpassungen |
|
124 |
vornehmen. Aber man kann sich hier bei Veraenderungen sehr schnell haeftig in |
|
125 |
den Fuss schiessen. |
|
126 |
Wer nicht so tief in die Materie einsteigen will oder leicht zu |
|
127 |
frustrieren ist, sollte sein Hintergrund PDF auf Basis der mitglieferten |
|
128 |
Datei sample_head.pdf erstellen, und sich an der Form der dargestellten Tabellen |
|
129 |
wie sie ausgeliefert werden, erfreuen. |
|
130 |
Kleiner Tipp: |
|
131 |
|
|
132 |
Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche |
|
133 |
Schritte gehen. |
|
134 |
|
|
135 |
Alternativ kann man sich natuerlich fuer die Latex-Vorlagen |
|
136 |
professionelle Hilfe hohlen. |
|
137 |
|
|
138 |
|
|
139 |
Bruttopreise fuer Endvorbraucher |
|
140 |
Der auszuweisende Bruttopreis wird innerhalb der LaTeX Umgebung berechnet. |
|
141 |
|
|
142 |
- Background: |
|
143 |
es gibt zwar ein Feld um bei Auftraegen "alle Preise Brutto" auszuwaehlen, |
|
144 |
aber: |
|
145 |
- hierfuer muessen die Preise auch in Brutto in der Datenbank stehen |
|
146 |
(ja -- das laesst sich ueber die Preisgruppen und die Zuordung einer Default-Preisgruppe |
|
147 |
handhaben) |
|
148 |
- man darf beim Anlegen des Vorgangs nicht vergessen Dieses Haekchen zu setzen. |
|
149 |
(das ist in der Praxis wenn man sowohl Endverbraucher- wie Gewerbekunden beliefert |
|
150 |
der eigentliche Knackpunkt) |
|
151 |
|
|
152 |
Es gibt mit f-tex eine weitere Alternative. Die Information ob Brutto oder |
|
153 |
Nettorechnung wird mit den Zahlarten verknuepft. Zahlarten bei denen |
|
154 |
Rechnungen, Angebote, etc, in Brutto ausgegeben werden sollen enden mit "_E" |
|
155 |
(fuer Endverbraucher) Falls identische Zahlarten fuer Gewerbekunden und |
|
156 |
Endverbraucher vorhanden sind legt man diese einfach doppelt an (einmal mit |
|
157 |
der Namensendung "_E") |
|
158 |
- Gewinn: |
|
159 |
- die Entscheidung ob Netopreise ausgewiesen werden ist nicht mehr fix |
|
160 |
mit einer Preisliste Verbunden. |
|
161 |
- die Default-Zahlart kann im Kundendatensatz hinterlegt werden und man |
|
162 |
muss nicht mehr daran denken "alle Preise Netto" auszuwaehlen. |
|
163 |
- Die Entscheidung ob Netto/Oder Bruttopreise ausgewiesen werden kann direkt |
|
164 |
beim Drucken reviediert werden, ohne dass sich der Auftragswert aendert. |
|
165 |
|
|
166 |
Lieferadressen |
|
167 |
|
|
168 |
- in Lieferscheinen kommen shipto* -Variablen im Adressfeld zum Einsatz |
|
169 |
- wenn die shipto*variable leer ist wird die entsprechende |
|
170 |
Adressvariable eingesetzt. Wenn Also die Lieferadresse in Strasse, |
|
171 |
Hausnummer und Ort abweicht, muessen auch nur diese Felder in der |
|
172 |
Lieferadresse ausgefuellt werden. Fuer den Firmenname wird der Wert der |
|
173 |
Hauptadresse angezeigt. |
|
174 |
|
|
175 |
Troubleshooting -- Fehler suchen: |
|
176 |
Wenn sich das Problem nicht auf Grund der ausgabe im Webbrowser verifizieren laesst: |
|
177 |
|
|
178 |
editiere [flxo-home]/config/lx_office.conf und aendere "keep_tmp_files" auf 1 |
|
179 |
keep_temp_files = 1; |
|
180 |
|
|
181 |
bei fastcgi oder mod_perl den Webserver neu Starten |
|
182 |
|
|
183 |
Nochmal einen Druckversuch im Webfrontend ausloesen |
|
184 |
|
|
185 |
wechsele in das users Verzeichnis von lxo |
|
186 |
cd [lxo-home]/users |
|
187 |
|
|
188 |
LaTeX Suchpfad anpassen: |
|
189 |
export TEXINPUTS=".:[lxo-home]/templates/[aktuelles_template_verzeichniss]:" |
|
190 |
|
|
191 |
Finde herraus welche datei lxo beim letzten Durchlauf erstellt hat |
|
192 |
ls -lahtr ./1*.tex |
|
193 |
Es sollte die letzte Datei ganz unten sein |
|
194 |
|
|
195 |
fuer besseren Hinweis auf Fehler texdatei nochmals uebersetzen |
|
196 |
pdflatex ./1*.tex |
|
197 |
|
|
198 |
in der *.tex datei nach dem Fehler suchen. |
|
199 |
|
|
200 |
|
|
201 |
|
Auch abrufbar als: Unified diff
diverse Doku Aktuallisierungen
./templates/print/f-tex/README -> Onlinedoku