Kivitendo bringt CRM, Warenwirtschaft, Rechnungswesen und Finanzbuchhaltung einfach bedienbar und flexibel anpassbar unter ein Dach.
Kein anderes Marktsegment wird derart von Windows-Software dominiert, wie jenes der betriebswirtschaftlichen Anwendungen. Das liegt zum einen daran, dass man sich mit der Entscheidung zum Kauf und Einsatz eines Systems für Warenwirtschaft oder Finanzbuchhaltung stets längerfristig festlegt, sodass hier wenig Raum für Experimente bleibt. Zum anderen befürchten Unternehmer bei einer anstehenden Anschaffungsentscheidung einen hohen Aufwand für Migration und Mitarbeiterschulung. Darüber hinaus muss sich die Software mit den existenten Schnittstellen und Formaten verstehen.
Da insbesondere kleine Unternehmen ohne spezialisierte IT-Abteilung hinsichtlich ihrer betriebswirtschaftlichen Anwendungen außerdem auf entsprechenden Support angewiesen sind, vertrauen sie lieber auf die etablierten Herstellern, verkennen dabei aber, dass Open-Source-Software gerade dann eine Chance verdient, weil die Verwendung offener Standards und offener Formate höchstmögliche Flexibilität bietet.
Lx-Office
Bei Kivitendo [1] alias Lx-Office handelt es sich um eine freie Software für Warenwirtschaft und Finanzbuchhaltung, welche die Braunschweiger Linet Service GmbH [2] speziell für den deutschen Markt entwickelt. Das Produkt basiert auf der in Kanada entstandenen freien ERP-Lösung SQL-Ledger.
Im Jahr 2003 entschlossen sich eine Reihe von SQL-Ledger-Entwicklern unter Federführung von Linet zu einer Abspaltung der ERP-Lösung unter der Bezeichnung Lx-Office-ERP, weil sich SQL-Ledger nicht vernünftig an die Anforderungen des deutschen Steuerrechts anpassen ließ. Die Linet Service GmbH verdient Ihr Geld eigentlich mit kundenspezifischen, kostenpflichtigen Anpassungen und Erweiterungen für SQL-Ledger beziehungsweise Lx-Office.
Daneben entwickelt das Unternehmen aber auch federführend die Codebasis der freien Version und koordiniert die von externen Firmen und Entwicklern beigesteuerten Komponenten, wie etwa das FiBu-Modul von Richardson&Büren oder das von LX-System aus Ulm in PHP geschriebene CRM-Modul. Künftig sollen laut Linet möglicherweise auch von Auftraggebern finanzierte Anpassungen nach und nach in den öffentlichen Programmcode einfließen.
So oder so ist Lx-Office-ERP eine deutschsprachige Software mit frei definierbaren Kontenrahmen und einer Datev-Exportschnittstelle, womit es sich als interessante Alternative speziell für den deutschen Markt positioniert.
Wie viele andere ERP-Anwendungen auch arbeitet Lx-Office/Kivitendo als Client-Server-Lösung. Dabei läuft der Client im Webbrowser, während der Server auf Linux aufsetzt und den Webserver Apache sowie die freie Datenbank PostgreSQL voraussetzt. Das ERP-Modul von Lx-Office unterliegt der GPL, eine Kassenanbindung steht als kommerzielles Modul zur Verfügung.
Kivitendo
Die Linet Service GmbH entwickelte LX-Office seit der Abspaltung von SQL-Ledger kontinuierlich weiter bis zur Version 2.6 aus dem Jahr 2009, die zahlreiche Neuerungen und Erweiterungen mitbrachte, wie etwa eine verbesserte Benutzerverwaltung. Außerdem enthielt die Version 2.6 erstmals die zuvor nur kommerziell verfügbaren Schnittstellen zu osCommerce, olCommerce, xtCommerce und PhPepperShop als freie Komponenten, allerdings noch nicht für den Einsatz mit Lx-Office 2.6.0 angepasst. Die vorerst letzte Version unter der Bezeichnung Lx-Office mit der Versionsnummer 2.7.0 erschien am 1. März dieses Jahres und brachte einen neuen CSV-Import, eine Aktualisierung des mit der Version 2.6.1 eingeführten SEPA-Exports und Mehrsprachigkeit.
Zwar wurde Lx-Office-ERP 2.7.0 im Mai dieses Jahres in Kivitendo umbenannt, es handelt sich aber nach wie vor um die selbe Software. Die Umbenennung betrifft also vorerst nur die überarbeitete Präsentation der Software und auch nur den von Linet Service entwickelten ERP-Teil. Die Software selbst steht auf Sourceforge unter der Bezeichnung Lx-Office-ERP 2.7.0 zum freien Download zur Verfügung. Die Umbenennung war laut Hersteller notwendig geworden, weil der Name Lx-Office bei vielen Nutzern falschen Erwartungen geweckt hatte. Der Name Kivitendo entstammt dem Suaheli und bedeutet soviel wie “praktisch”, womit man sich offenbar am Namensfindungskonzept von Ubuntu anlehnt.
Was ist was
Lx-Office besteht im Wesentlichen aus zwei Komponenten: Dem von Linet Service in Perl geschriebenen Warenwirtschaftsmodul Lx-Office-ERP (inklusive Finanzbuchhaltung), das aktuell in der Version 2.7.0 verfügbar ist und jetzt Kivitendo heißt, sowie dem von Holger Lindemann (LX System) in PHP entwickelten CRM-Modul, das nicht Gegenstand dieses Beitrages ist.
Die Installation des ERP-Moduls funktioniert nach Angabe des Herstellers zuverlässig unter Ubuntu ab 10.04 bis 11.10, Debian 5 und 6, OpenSuse 11.2 und 11.3, Suse Linux Enterprise Server 11 und Fedora 13 bis 15. Hilfreich zur Seite steht dabei die Online-Dokumentation im PDF- [3] und HTML-Format [4], die das manuelle Installieren der aktuellen Version von Git beschreibt. Zwar gibt es auch ein Wiki, das ebenfalls Informationen zur Installation unter Debian oder Ubuntu enthält, diese scheinen aber nicht mehr ganz taufrisch zu sein.
Als Vorab-Fazit lässt sich festhalten, dass weder das Aufsetzen von Webserver, Datenbank und Perl-Modulen noch das Anpassen von Lx-Office die eigene Wünsche und Anforderungen schnell erledigt sind: Diese Aufgabe nimmt je nach Umfang und Anforderungen einen Arbeitstag oder mehr in Anspruch. Support erhalten Sie entweder von der Community im Kivitendo-Forum [6], oder Sie schließen einen professionellen Support-Vertrag mit garantierten Reaktionszeit mit der Linet Service GmbH (ERP) oder LX Office (CRM) ab.
Möchten Sie erst einmal vorab ausprobieren, ob die Software Ihren Anforderungen genügt, finden Sie auf der Kivitendo-Website eine Online-Demo [7] der ERP-Suite.
Kivitendo Installation
Die Inbetriebnahme (weniger die eigentliche Installation) von Kivitendo unter Ubuntu gestaltet sich relativ aufwändig. Dabei gliedert sich das Einrichten in das Aufsetzen und Konfigurieren von Webserver und Datenbank sowie das Einrichten der benötigten Perl-Module.
Sie installieren zuerst den Apache-Webserver sowie die Datenbank PostgreSQL, sofern noch nicht geschehen. Perl ist in der Regel bereits eingerichtet, Sie müssen es jedoch um die Pakete libarchive-zip-perl, libbit-vector-perl, libclass-factory-util-perl, libclone-perl, libdatetime-perl, libdbd-pg-perl, libdbi-perl, libparent-perl, libpg-perl sowie libsub-exporter-perl ergänzen.
Danach laden Sie Lx-Office 2.7.0 von Sourceforge herunter [8] und entpacken es im Document-Root-Verzeichnis des Webservers, bei Ubuntu also in /var/www (Abbildung 1). Es empfiehlt sich, das Verzeichnis mit einem aussagekräftigen Kurznamen wie kivitendo oder lx-erp zu benennen, weil der Pfad später einen Teil der Aufruf-URL bildet.
Je nach Distribution kann es sein, dass die Installation von Kivitendo/Lx-Office neben den oben genannten noch weitere Perl-Pakete voraussetzt. Die PDF-Dokumentation [3] gibt im Detail darüber Auskunft. So braucht die aktuelle Version 2.7.0 beispielsweise zwingend URI und XML::Writer, ohne die Lx-Office überhaupt nicht startet. Außerdem brauchen Sie die Perl-Erweiterungen parent, DateTime, Rose::Object, Rose::DB und Rose::DB::Object, sowie JSON. Dazu kommen noch das CSS-Framework YAML und das Paket libxml.
Bei Ubuntu finden Sie die meisten Pakete in der Sektion Programmiersprache Perl (Universe). Installieren Sie also mit Apt-get nach und nach libyaml-perl, libxml-writer-perl, Libxml-perl, librose-perl, librose, liburi* und so fort. Das Meiste davon ergebt sich ohnehin durch das Auflösen von Abhängigkeiten. Übrigens bringt Lx-Office das Skript installation_check.pl mit, mit dessen Hilfe Sie leicht überprüfen, ob alle benötigten Perl-Module installiert sind. Es befindet sich im Unterverzeichnis scripts des Installationsverzeichnisses.
Webserver-Konfiguration
Hinsichtlich der Berechtigungen gilt es zu beachten, dass der Benutzer, in dessen Rechtekontext der Webserver läuft, schreibend auf die Verzeichnisse users, templates, spool und webdav unterhalb des Lx-Office-ERP-Verzeichnisses zugreifen können muss. Bei allen anderen Unterverzeichnissen genügt Lesezugriff. Bei Ubuntu und Debian heißt der Webserver-Benutzer www-data.
Jetzt benötigen Sie noch eine Konfigurationsdatei für den Apache Webserver. Eine einfache Variante (“CGI”) und einer etwas aufwändigere (“Fast-CGI”) finden Sie in der Dokumentation. Das Einschalten von Fast-CGI erfolgt bei Apache2 mit a2enmod fcgid, was allerdings das vorherige Installieren des zuständigen Apache-Moduls (libapache2-mod-fcgid) voraussetzt.
Zur weiteren Vorgehensweise sollten Ubuntu-Nutzer wissen, dass Apache auf Ubuntu in der Vorgabe eine Virtual-Host-Konfiguration verwendet. So lassen sich mehrere unterschiedliche Websites auf dem Apache-Webserver zur Verfügung stellen. Deshalb finden Sie in der Apache-Konfigurationsdatei /etc/apache2/apache2.conf nur wenige global gültige Einstellungen. Alle spezifischen Einstellungen der jeweiligen Webseite stehen dagegen in je einer Konfigurationsdatei unter /etc/apache2/sites-available, auch die des Default-Webservers mit dem Namen default, in der unter anderem der Pfad zum jeweiligen Document-Root steht (bei default ist das /var/www).
Zur Konfiguration von Lx-Office mit Fast-CGI müssen Sie daher zunächst eine entsprechende Konfigurationsdatei /etc/apache2/sites-available/kivitendo anlegen, in die Sie die Code-Schnipsel aus Listing 1 kopieren. Beachten Sie, dass Sie darin die Pfadangaben bei Alias und die Directory-Direktiven an Ihre Gegebenheiten anpassen müssen. Die Konfiguration unterscheidet allerdings zwischen dem Installationspfad des Lx-Office-Verzeichnisses im Dateisystem (/Pfad/zu/Lx-Office-ERP) und der URL unter der Lx-Office im Webbrowser erreichbar ist sein soll (/URL/von/Lx-Office-ERP). In unserem Beispiel sind beide identisch, da wir das Installationsverzeichnis direkt unter /var/www entpackt haben, damit das Beispiel auch ohne Verwendung von virtuellen Hosts und Aliasen allgemeingültig bleibt – daher auch die oben genannte Empfehlung, den zu verwendenden Verzeichnisnamen vorausschauend anzupassen: Das macht die Konfiguration übersichtlicher.
Listing 1
AliasMatch ^/URL/von/Lx-Office-ERP/[^/]+\.pl /Pfad/zu/Lx-Office-ERP/dispatcher.fcgi Alias /URL/von/Lx-Office-ERP/ /Pfad/zu/Lx-Office-ERP/ <Directory /Pfad/zu/Lx-Office-ERP> AllowOverride All Options ExecCGI Includes FollowSymlinks Order Allow,Deny Allow from All </Directory> <DirectoryMatch /Pfad/zu/Lx-Office-ERP/users> Order Deny,Allow Deny from All </DirectoryMatch>
Lx-Office-Konfiguration
Auch die Software selbst erfordert eine gewisse Basis-Konfiguration. Immerhin gibt es bei der Version 2.7.0 nur noch eine zentrale Konfigurationsdatei Installationsverzeichnis/config/lx_office.conf, die Sie selbst erstellen müssen. Allerdings enthält Lx-Office im selben Verzeichnis ein Muster lx_office.conf.default, das Sie für erste Gehversuche einfach kopieren und anpassen.
Die Datei enthält unter anderem Pfade und Authentifizierungsdaten zur Postgres-Datenbank, deren detaillierte Erläuterung den Rahmen des Beitrags sprengt. Allerdings ist auch diese Datei gut dokumentiert und außerdem in der PDF-Dokumentation beschrieben. Für einen ersten Test sollten Sie auf jeden Fall den Abschnitt [authentication] kontrollieren, der mit der im folgenden beschriebenen Basiskonfiguration von PostgreSQL übereinstimmen muss (Listing 2).
Listing 2
[authentication] admin_password = Passwort [authentication/database] host = localhost port = 5432 db = lxerp_auth user = postgres password = [system] dbcharset = UTF-8
Postgres-Konfiguration
So müssen Sie in der Konfigurationsdatei von PostgreSQL (bei Ubuntu 11.10 ist das /etc/postgresql/9.1/main/postgresql.conf) dafür sorgen, TCP/IP-Verbindungen zu aktivieren, wozu Sie den Parameter listen_address entsprechend setzen müssen. Laufen PostgreSQL und Lx-Office wie im Beispiel auf der gleichen Maschine, genügt der Wert localhost, wozu Sie den vorbereiteten Eintrag einfach nur entkommentieren (Abbildung 2). Außerdem müssen Sie in der Datei pg_hba.conf im gleichen Verzeichnis die Zugriffs-Berechtigungen für den Client anpassen, im einfachsten Fall mit den beiden Zeilen aus Listing 3.

Abbildung 2: In der PostgreSQL-Konfiguration müssen Sie die passende(n) TCP/IP-Verbindung(en) aktivieren.
Listing 3
local all all trust host all all 127.0.0.1 255.0.0.0 trust
Über weitere, sicherere Möglichkeiten gibt die Dokumentation Auskunft. Sie beschreibt auch, wie Sie die für den Betrieb von Lx-Office benötigten Datenbanken anlegen. In diesem Zusammenhang müssen Sie in der Datenbank template1 beispielsweise auch Unterstützung für sogenannte Stored Procedures einrichten, wozu Sie sich als Benutzer postgres an der Datenbank anmelden und dann den Befehl create language 'plpgsql'; ausführen.
Möchten Sie nicht permanent unter dem Account des Datenbankadministrators postgres auf Lx-Office zugreifen, legen Sie außerdem mit
$ su - postgres createuser -d -P lxoffice
einen eigenen Benutzer lxoffice an. Das weitere Vorgehen schildert die Dokumentation ausführlich.
Funktionsumfang
Der Funktionsumfang von Kivitendo umfasst eine Stammdatenverwaltung, Module für Ein- und Verkauf sowie eine Lagerverwaltung. Einzelheiten zu den einzelnen Funktionsgruppen finden sich auf der überarbeiteten Kivitendo-Webseite [1]. Die Stammdaten-Verwaltung (Abbildung 3) bietet Eingabemasken für das Verwalten von Kunden, Lieferanten, Waren, Dienstleitungen, Erzeugnissen und Projekten, was für die meisten Zwecke mehr als ausreichen dürfte. Außerdem können Sie von hier aus auf komfortable Weise Preise aktualisieren.
Die Kundenverwaltung mit Rechnungs- und Lieferadresse, Ansprechpartner sowie Bemerkungen erlaubt das Erfassen einer Fülle an Informationen und lässt auf den ersten Blick keine Wünsche offen (Abbildung 4).

Abbildung 4: Beim Speichern eines neues Kunden haben Sie mit den entsprechenden Schaltflächen die Möglichkeit, unmittelbar Aufträge, Rechnungen, Angebote oder Debitoren-Buchungen zu erfassen.
Ebenso umfangreich zeigt sich etwa die Maske zum Erfassen von Artikeln (Erzeugnissen), die Preisgruppen (Online-Shop, Laden, etc.), Warengruppen (etwa Dienstleistungen, Hardware, Software) und Buchungsgruppen (ganze oder reduzierte Steuersätze). Außerdem berücksichtigt die Artikelverwaltung Verrechnungseinheiten, Lagerplätze, Bestände und vieles andere mehr. Im Verkaufsmodul lassen sich Angebote, Aufträge, Lieferscheine, Rechnungen, Gutschriften und Mahnungen erfassen und verwalten (Abbildung 5).

Abbildung 5: Das Drucken eine neu erstellten Rechnung geht normalerweise mit deren Verbuchung einher. Allerdings gibt es eine auf LaTeX basierende Druckvorschau, die keine Buchung auslöst.
Lieferscheine lassen sich nicht nur im Verkaufsmodul erfassen: Auch das Einkaufsmodul kennt Lieferscheine und unterstützt neben Preisanfragen auch das Erfassen von Lieferantenaufträgen. Interessant ist, dass sich jede Lieferantenrechnung mithilfe einer Projektnummer gezielt einem Projekt zuordnen lässt (Abbildung 6).

Abbildung 6: Über eine Projektnummer lassen sich im Einkaufsmodul Kosten von Wareneinkäufen leicht einem Projekt zuordnen.
Das Finanzbuchhaltungsmodul umfasst Debitoren- und Kreditorenbuchungen, wobei Sie wahlweise vorgefertigte Kontenrahmen (SKR03/04) verwenden oder eigene Kontenrahmen auf deren Basis individuell anpassen. Kivitendo unterstützt daneben auch Auswertungen wie Bilanz, Gewinn- und Verlustrechnung (GuV) oder betriebswirtschaftliche Auswertung (BWA), die Sie allerdings im Modul Berichte finden. Drüber hinaus lassen sich alle steuerrelevanten Daten über die vorhandene Datev-Schnittstelle an ein entsprechendes Programm exportieren.

Abbildung 7: Das umfangreiche Finanzbuchhaltungsmodul unterstützt Sie in allen steuerrelevanten Fragen und ermöglicht neben dem klassischen Dialogbuchen auch den Export aller Buchungsdaten im Datev-Format.
Weniger komfortabel fällt das Modul Zahlungsverkehr aus. Es gestattet lediglich ein manuelles Holen von Buchungen und Kontoauszügen beziehungsweise einen Import/Export. Hier wäre eine direkte Anbindung an ein HBCI-Online-Banking-System wünschenswert. Immerhin beherrscht LX-Office seit der Version 2.6.1 einen SEPA-Export. Das SEPA-Modul erlaubt das Verwalten von Einkaufsrechnungen und den Export der Rechnungsdaten, die Sie bei Ihrer Bank zur Zahlung einreichen.
Außerdem besitzt Lx-Office eine Lagerverwaltung, die beliebig viele Lager und Lagerplätze umfasst und die Verbindung zwischen Einkaufs- und Verkaufsmodul darstellt. Auch die Lagerverwaltung verwaltet als Beleg eigene Lieferscheine.
Zudem können Sie über Lx-Office eine Vielzahl von Berichten generieren, darunter auch die erwähnte Bilanz, Gewinn- und Verlustrechnung (GuV) oder betriebswirtschaftliche Auswertung (BWA), aber auch eine Kontenübersicht oder die fällige Umsatzsteuervoranmeldung. Die genannte Berichte stehen als feste Menüpunkte im Modul Berichte zur Verfügung.
Neben der Möglichkeit, Daten für die Umsatzsteuervoranmeldung an die Elster-Programm Taxbird4 oder Winston3 zu exportieren, beherrscht Kivitendo auch die direkt Ausgabe als PDF (Abbildung 8), was allerdings das vorherige Einrichten von TeX/LaTeX erfordert. Unter Ubuntu müssen Sie dazu die Pakete texlive-generic-extra, texlive-latex-extra und texlive-lang-german, texlive-latex-recommended und texlive-fonts-recommended installieren.

Abbildung 8: Kivitendo exportiert die Daten für die Umsatzsteuervoranmeldung entweder für Elster-Programme oder gibt die UStVA via LaTeX direkt als PDF aus.
Kivitendo/Lx-Office lässt sich individuell an Ihr System und an Ihre Geschäftsprozesse anpassen. Die dazu zur Verfügung stehenden Funktionen finden Sie im Menü System. Sie umfassen sowohl das Anpassen von Systemeinstellungen als auch das Verändern von Parametern wie Warengruppen oder Buchungsgruppen.
Fazit
Für Kivitendo spricht der vergleichsweise große Funktionsumfang mit Kunden-, Lieferanten- und Artikelverwaltung, Angeboten, Ausgangs- und Eingangsrechnungen, Gutschriften, Bestellverwaltung und Preisgruppen für Waren und Erzeugnisse. Außerdem lässt sich Lx-Office einfach bedienen und sehr flexibel anpassen, etwa mit individuell gestaltbaren mehrsprachigen Druckvorlagen und Artikellangtexten sowie frei konfigurierbare Einheiten.
Der große Funktionsumfang hat aber auch seinen Preis, der sich in einer gewissen Unübersichtlichkeit und teilweise umständlichen Workarounds insbesondere im Zusammenhang mit dem CRM-Modul äußert. Installation und Basiskonfiguration lassen sich zudem nicht ohne tiefer gehende Linux-Systemkenntnisse bewältigen, sodass Selbstständige und Kleinstunternehmen wohl eher zu kompakter Kauf-Software unter Windows greifen werden, die oft auch gleich das Onlinebanking mit erledigt.
Für kleine und mittlere Unternehmen stellt Kivitendo dennoch eine ernstzunehmende Alternative zu weit kostspieligerer Software dar, selbst wenn man kostenpflichtige Support beim Hersteller bucht. Die Optik der in Perl programmierten Lösung wirkt aber trotz tadelloser Performance und Bedienung mit klickbaren Dropdown-Menüs recht altbacken.
Glossar
-
ERP
-
Enterprise Resource Planning. Die unternehmerische Aufgabe, die vorhandenen Ressourcen wie Kapital, Betriebsmittel und Personal möglichst effizient für den betrieblichen Ablauf einzusetzen.
-
CRM
-
Customer Relationship Management. Pflege der Kundenbeziehungen inklusive Kundengewinnung, Bestandskundenpflege, Angebotswesen und Marketing.
-
SEPA
-
Single Euro Payments Area. Das vereinheitlichte Zahlungswesen für den Euro-Raum erleichtert finanzielle Transaktionen innerhalb der EU-Mitgliedsstaaten sowie Island, Liechtenstein, Norwegen, der Schweiz sowie Monaco.
Infos
[1] Kivitendo: http://www.kivitendo.de/
[2] Linet Service GmbH: http://www.linet-services.de/
[3] PDF-Dokumentation: http://tinyurl.com/lu1012-kivitendo-pdf
[4] HTML-Dokumentation: https://demo.kivitendo.de/doc/html/
[6] Kivitendo-Forum: https://forum.kivitendo.de
[7] Online-Demo: https://demo.kivitendo.de/login.pl
[8] Kivitendo herunterladen: http://sourceforge.net/projects/lx-office IE:







