Zum Inhalt springen
Dokumentation

Benutzerhandbuch

Hinweise, Tipps und Best Practices für die Arbeit mit ProjectForge

Verfasst von
Table of Contents

1. Einführung

Dieses Handbuch sammelt Hinweise, Tipps und Best Practices für die Arbeit mit ProjectForge®. Es beschreibt nicht jedes einzelne Feld: Die meisten Seiten erklären sich über ihre Beschriftungen und Tooltips selbst.

Seit Version 9.0 hat ProjectForge® eine vollständig überarbeitete Benutzeroberfläche. Dieses Handbuch beschreibt die aktuelle Oberfläche.

  • Neu bei ProjectForge? Der Schnellstart zeigt Schritt für Schritt, wie Benutzer, Gruppen, Strukturelemente und Kostenträger angelegt werden.

  • Installation, Konfiguration und Plugins sind im Administrationshandbuch beschrieben.

Hinweis

Sichtbar sind nur die Menüeinträge und Seiten, auf die du Zugriff hast. Manche Funktionen müssen außerdem erst von der Administration aktiviert oder konfiguriert werden (z. B. Plugins, Telefonie, CardDAV oder E-Rechnungen). Fehlt etwas, das hier beschrieben ist, hilft die Administration weiter.

2. Grundlegende Konzepte

Die Schaltfläche Menü oben links öffnet das Hauptmenü (Tastenkürzel Ctrl+K, unter macOS Cmd+K). Es zeigt alle Einträge, auf die du Zugriff hast, gruppiert nach Allgemein, Projektmanagement, HR, Fibu, Kost, Reporting, Organisation, Administration und Verschiedenes.

  • Menü durchsuchen: Einfach lostippen. ProjectForge® durchsucht die Titel der Menüeinträge und die Gruppennamen (die Eingabe „fibu“ listet den ganzen Bereich auf). Unterhalb der Menüeinträge erscheinen passende Datensätze, z. B. Adressen oder Projekte. Die letzte Zeile "…​" in allen Daten suchen öffnet die globale Suche. Mit den Pfeiltasten und Enter lässt sich durch die Treffer navigieren.

  • Zuletzt verwendet: Solange das Suchfeld leer ist, stehen die zuletzt verwendeten Einträge oben. Sie werden auf dem Server gespeichert und sind daher auch auf anderen Geräten und in anderen Browsern verfügbar.

2.2. Favoritenleiste und persönliches Menü

Neben der Menü-Schaltfläche befindet sich die persönliche Favoritenleiste. Sie kann einzelne Einträge und Ordner enthalten. Einträge, die nicht mehr in die Leiste passen, wandern in das Menü …​. Manche Einträge zeigen einen Zähler, z. B. die Anzahl offener Urlaubsanträge.

Die Favoriten lassen sich über Mein Menü gestalten im Benutzermenü (oben rechts, mit deinem Namen) ändern: Einträge aus der Vorlage rechts in das eigene Menü links ziehen (oder einfach anklicken), Gruppen anlegen, umbenennen und entfernen und die Änderungen speichern. Standard wiederherstellen stellt das Standardmenü wieder her.

Das Benutzermenü enthält außerdem Feedback senden, Mein Zugang, 2. Faktor einrichten, Urlaubskonto (für Mitarbeitende), Einträge von Plugins (z. B. die Persönliche Box von Datentransfer), Erscheinungsbild und Abmelden.

Unter Allgemein > Suche (oder über die letzte Zeile der Menüsuche) lassen sich mehrere Bereiche gleichzeitig durchsuchen: Adressen, Kunden, Projekte, Benutzer, Gruppen, Strukturelemente, Bücher und Mitarbeitende. Durchsucht werden nur Bereiche, für die du Leserechte hast.

  • Über die Bereichskacheln lässt sich die Suche auf einzelne Bereiche einschränken, In allen Bereichen suchen hebt die Einschränkung wieder auf.

  • Alle in …​ anzeigen öffnet die Liste des Bereichs mit dem bereits eingetragenen Suchbegriff.

  • Der Suchbegriff ist Teil der Seitenadresse, eine Suche lässt sich also als Lesezeichen speichern oder an Kolleg:innen schicken.

Die meisten Listen haben ein Suchfeld (Liste durchsuchen…​). Die Suche startet bereits während der Eingabe, Esc leert das Feld. Das Suchfeld unterstützt die Lucene-Abfragesyntax, alle Details beschreibt die Syntax des Lucene-Query-Parsers.

Die folgende Tabelle zeigt einige häufig verwendete Abfragen.

Ausdruck Funktion

abc

Das Suchergebnis enthält alle Objekte mit Feldern, die Wörter enthalten, die mit 'abc' beginnen. Groß- und Kleinschreibung spielen keine Rolle.

*abc*

Das Suchergebnis enthält alle Objekte mit Feldern, die Wörter enthalten, in denen 'abc' vorkommt. Groß- und Kleinschreibung spielen keine Rolle.

meier~

Unscharfe Suche: Auch Wörter mit ähnlicher Schreibweise wie 'mayer' werden gefunden.

abc def

Sucht nach Objekten mit Wörtern, die mit 'abc' oder 'def' beginnen.

+abc -def

Sucht nach Objekten, die das Wort 'abc', aber nicht das Wort 'def' enthalten (ohne automatische Platzhalter, siehe unten; +abc* -def* für Wörter, die mit 'abc', aber nicht mit 'def' beginnen).

name:abc def

Sucht nach allen Objekten, deren Feld 'name' das Wort 'abc' enthält, und sucht 'def' in allen Feldern.

2.4.1. Automatische Platzhalter

Hinweis

Besteht der Suchbegriff nur aus Buchstaben, Ziffern, Leerzeichen und den Zeichen @._-*`, hängt ProjectForge® an jedes Wort automatisch den Platzhalter '*' an. Wörter, die auf '*' enden, Wörter, die mit '' oder '-' beginnen (Lucene-Operatoren), und die Schlüsselwörter AND, OR und NOT bleiben unverändert. Ein Suchbegriff, der mit '+' oder '-' beginnt, wird so verwendet, wie er eingegeben wurde, ebenso alle anderen Ausdrücke (z. B. mit ':', '~', '"' oder Klammern). Ein Wort mit einem Trennzeichen darin wie `dhl-pop wird wie eingegeben und in seinen Teilen gesucht: dhl-pop* oder sowohl dhl* als auch pop*.

Beginnt der Suchbegriff mit einem Apostroph ('), unterbleibt jede Veränderung: Der Apostroph wird entfernt und der Rest exakt wie eingegeben verwendet.

Ausdruck Veränderung durch ProjectForge

hello

hello*

hello ProjectForge

hello* ProjectForge*

hello AND world

hello* AND world*

name:hello

name:hello
(keine Ersetzung wegen ':'.)

+hello -world

hello -world + (keine Ersetzung wegen des führenden ''.)

'hello

hello
(keine Ersetzung wegen des führenden Apostrophs.)

2.5. Listen filtern

Über jeder Liste befindet sich die Filterleiste:

  • Filter hinzufügen bietet alle durchsuchbaren Felder der Liste als Filter an, Alle Filter zeigt alle aktiven Filter auf einmal. Zurücksetzen und Alle löschen entfernen die Filter wieder.

  • Zeitraumfilter (z. B. Zeitraum der Zeitberichte) bieten Schnellauswahlen wie Woche, Monat oder Jahr bis heute sowie Pfeile zum Blättern in den vorherigen oder nächsten Zeitraum.

  • Geändert filtert die Liste über die Änderungshistorie: nach dem Benutzer, der eine Änderung vorgenommen hat, nach dem Zeitpunkt der Änderung (z. B. letzte 10 Minuten, heute, seit gestern) oder nach geänderten Werten. Das ist praktisch, um z. B. alle Objekte zu finden, die du in der letzten Stunde geändert hast.

  • Gelöscht zeigt als gelöscht markierte Einträge, die sich so wiederherstellen lassen.

Die letzten Filtereinstellungen werden für jede Liste auf dem Server gespeichert. Sie bleiben also nach einem Neuladen erhalten und sind auf allen deinen Geräten verfügbar.

2.5.1. Favoritenfilter

Über Favoriten in der Filterleiste lassen sich häufig benötigte Filtereinstellungen speichern: Neuer Filter speichert die aktuellen Einstellungen unter einem frei wählbaren Namen. Ein Sternchen markiert einen Favoriten, dessen Einstellungen geändert wurden, Änderungen speichern übernimmt die Änderungen. Favoriten lassen sich jederzeit umbenennen und löschen.

Alle Seiten haben stabile Adressen: Sie lassen sich als Lesezeichen im Browser speichern oder per E-Mail verschicken. Bearbeitungsseiten werden über die Id des Objekts adressiert, Listenseiten akzeptieren einen Suchbegriff (?q=…​). Filtereinstellungen sind nicht Teil der Adresse, dafür gibt es die Favoritenfilter.

2.6. Mehrfachauswahl und Massenänderung

Viele Listen (z. B. Zeitberichte, Debitorenrechnungen, Kreditorenrechnungen, Gehälter, Projekte, Kostenträger und Liquiditätseinträge) unterstützen die Änderung vieler Einträge auf einmal:

  1. In der Werkzeugleiste der Liste auf Mehrfachauswahl klicken.

  2. Die gewünschten Einträge auswählen: Ein Klick wählt einen Eintrag aus, Ctrl (macOS: Cmd)
    Klick schaltet einzelne Einträge um, Shift + Klick wählt einen Bereich aus, die Checkbox im Tabellenkopf wählt alle aus.

  3. Auf Massenänderung klicken. Für jedes Feld lässt sich wählen, ob ein Wert gesetzt (überschrieben), Text angehängt, Text gesucht und ersetzt oder der Wert gelöscht werden soll.

Bis zu 100 Einträge lassen sich auf einmal ändern. Nach der Änderung zeigt ProjectForge® die Anzahl der geänderten Einträge und bietet eine Excel-Datei mit allen Änderungen an. Ausgewählte Einträge lassen sich auch auf einmal löschen oder wiederherstellen.

2.7. Export

Listen mit Exportfunktion bieten in der Werkzeugleiste ein Menü Export. Excel-Export exportiert die aktuell gefilterte Liste. Manche Listen bieten weitere Exporte, z. B. die Kostzuweisungen von Rechnungen, den Forecast des Auftragsbuchs oder ein PDF der Zeitberichte.

2.8. Autovervollständigung

Viele Felder (z. B. Benutzer, Strukturelemente, Kostenträger oder Kunden) schlagen schon während der Eingabe Einträge vor, meist nach 2 Zeichen. Mit den Pfeiltasten nach oben und unten und Enter lässt sich ein Eintrag ohne Maus auswählen. Die Auswahl von Strukturelementen bietet zusätzlich die zuletzt verwendeten Strukturelemente und die eigenen Favoriten an.

2.9. Änderungshistorie

Fast alle Objekte führen eine vollständige Änderungshistorie. Der Abschnitt Änderungshistorie unten auf einer Bearbeitungsseite zeigt, wann ein Objekt angelegt und geändert wurde, von wem und welche Felder geändert wurden (alter und neuer Wert).

Bei Benutzern und Gruppen lässt sich beim Speichern zusätzlich ein Änderungskommentar eingeben (z. B. warum ein Recht vergeben wurde) oder später über Kommentar anhängen ergänzen. Diese Kommentare erscheinen in der Historie.

2.10. Erscheinungsbild

Über Erscheinungsbild im Benutzermenü lässt sich zwischen dem Design Hell und Dunkel wechseln oder die Einstellung des Betriebssystems übernehmen (System). Die Einstellung wird für deinen Benutzer gespeichert und gilt auf allen deinen Geräten.

2.11. Angemeldet bleiben

Auf der Anmeldeseite lässt sich An diesem Browser angemeldet bleiben. ankreuzen:

  • ProjectForge® speichert dann ein Cookie in diesem Browser. Es bleibt 30 Tage nach seiner letzten Nutzung gültig und wird bei jeder Nutzung erneuert.

  • Abmelden entfernt nur das Cookie des aktuellen Browsers.

  • Eine Änderung des Passworts meldet alle Geräte ab.

  • Unter Mein Zugang sind alle angemeldet bleibenden Geräte zu sehen (Browser, IP-Adresse, letzter Zugriff). Abmelden in der Zeile eines Geräts meldet nur dieses Gerät ab, Auf allen Geräten abmelden. meldet alle ab, einschließlich des aktuellen.

2.12. Zweifaktor-Authentifizierung

Die Administration kann sensible Bereiche (z. B. Administration, Finanzen oder HR) zusätzlich zum Passwort durch einen zweiten Faktor schützen. Die eigenen Faktoren werden im Benutzermenü unter 2. Faktor einrichten konfiguriert:

  • Authenticator-Apps: Den angezeigten QR-Code mit einer Authenticator-App auf dem Smartphone scannen (zeitbasierte Einmalpasswörter, TOTP).

  • WebAuthn (Fido2 etc.): Einen Hardware-Token wie einen YubiKey registrieren.

  • SMS-Konfiguration: Einmalcodes per SMS erhalten (falls konfiguriert).

  • Codes lassen sich auch per E-Mail versenden, sofern die Administration dies nicht abgeschaltet hat.

Erfordert eine Seite oder Aktion einen zweiten Faktor, der fehlt oder abgelaufen ist, fragt ProjectForge® nach einem Code und fährt anschließend fort. Welche Bereiche geschützt sind und wie lange ein zweiter Faktor gültig bleibt, legt die Administration fest, siehe Administrationshandbuch: 2FA.

2.13. Mein Zugang

Unter Mein Zugang lassen sich die persönlichen Einstellungen pflegen, z. B. Name, Zeitzone, Sprache, Datumsformate, die eigenen Telefon-Ids für die Direktwahl sowie die öffentlichen GPG- und SSH-Schlüssel.

Hier befinden sich auch die persönlichen Schlüssel (Authentifizierungs-Token): für Kalenderabonnements, für CardDAV und für REST-Clients. Jeder Schlüssel lässt sich erneuern: Alle URLs und Clients mit dem alten Schlüssel funktionieren dann sofort nicht mehr. Genau das ist gewünscht, wenn eine Abonnement-URL in falsche Hände geraten ist.

3. Kalender

Der Kalender ist eine der wichtigsten Funktionen von ProjectForge®. Hier lassen sich Zeitberichte und persönliche Termine ebenso wie Teamtermine komfortabel organisieren.

3.1. Ansichten und Navigation

Der Kalender bietet folgende Ansichten: Monat, Woche und Tag, Monat und Woche jeweils auch ohne Wochenenden (Werktage), eine Wochenübersicht (Übersicht) und eine Liste aller Einträge (Agenda).

Zum Blättern dienen Heute, die Pfeil-Schaltflächen und Datum auswählen (eine Monatsauswahl mit Jahresauswahl). In der Wochen- und Tagesansicht markiert eine Linie die aktuelle Uhrzeit. ProjectForge® merkt sich die zuletzt verwendete Ansicht und das Datum.

3.2. Kalender, Farben und Favoriten

  • Die anzuzeigenden Kalender auswählen: alle Teamkalender, auf die du Zugriff hast, sowie Geburtstage (alle Adressen) und Geburtstage (Adressfavoriten).

  • Ein Klick auf einen Kalender ändert seine Farbe oder blendet ihn vorübergehend aus.

  • Der Einstellungsdialog (Zahnrad-Symbol) enthält den Standardkalender für neue Termine, die anzuzeigenden Zeitberichte (die eigenen oder, falls erlaubt, die anderer Benutzer), Pausen, den Urlaub von Gruppen und Benutzern (Urlaub von Gruppen, Urlaub von Benutzern), die Rastergröße, den Tagesbeginn und die Farben.

  • Verschiedene Kombinationen lassen sich als Favoriten speichern und mit zwei Klicks wechseln.

Feiertage und Wochenenden sind hervorgehoben.

3.3. Feiertage

ProjectForge® unterstützt die deutschen Feiertage von Haus aus (in der Grundkonfiguration zählen Heiligabend und Silvester als halbe Arbeitstage). Die Administration kann in config.xml eigene Feiertage ergänzen oder die eingebauten ändern.

3.4. Unterstützung verschiedener Zeitzonen

ProjectForge® unterstützt gleichzeitig verschiedene Zeitzonen. Alle Benutzer können ihre Zeitzone unter Mein Zugang wählen, z. B. auf Reisen.

3.5. Einträge anlegen und ändern

  • Anlegen: Einen Zeitraum im Kalender markieren oder auf + klicken (oder N drücken). Ist ein Standardkalender gewählt, entsteht ein neuer Termin, andernfalls ein neuer Zeitbericht.

  • Verschieben und Größe ändern: Einen Eintrag auf eine andere Uhrzeit ziehen oder seine Dauer ändern. ProjectForge® öffnet das Bearbeitungsformular mit den neuen Zeiten; die Änderung wird beim Speichern übernommen.

  • Kopieren: Klonen im Bearbeitungsformular eines Zeitberichts oder Termins verwenden.

  • Als andere Art bearbeiten: Ein Termin lässt sich als Zeitbericht bearbeiten (Als Zeitbuchung bearbeiten) und umgekehrt (Als Termin bearbeiten). Dabei öffnet sich ein neuer Eintrag mit den übernommenen Zeiten und Texten, der beim Speichern angelegt wird; ein bereits gespeicherter Eintrag bleibt unverändert.

  • Pausen: Lücken zwischen den Zeitberichten eines Tages können als Pausen angezeigt werden. Ein Klick auf eine Pause bucht einen Zeitbericht für diese Lücke.

3.6. Mehrere Tage buchen

Mehrere Tage buchen in der Werkzeugleiste bucht an jedem Arbeitstag eines Zeitraums einen Zeitbericht, z. B. für eine Schulung oder einen längeren Einsatz beim Kunden:

  1. Zeitraum (höchstens ein Monat), Startzeit, Stunden pro Tag, Strukturelement, Kostenträger, Ort und Beschreibung wählen (oder eine der eigenen Vorlagen bzw. einen der letzten Einträge verwenden).

  2. Die Vorschau prüfen: Wochenenden und Feiertage werden übersprungen. An einem bereits gebuchten Tag wird der Zeitbericht nur gebucht, wenn er nicht mit einem bestehenden kollidiert (eine Überschneidung mit einem Strukturelement mit geteilten Kosten ist erlaubt).

  3. Auf Buchen klicken.

Mit Urlaub übernehmen lässt sich einer der eigenen Urlaubsanträge wählen (abgestimmt oder in Abstimmung, ein Jahr zurück und voraus); seine Tage werden auf den von der Administration konfigurierten Urlaubs-Kostenträger gebucht. Ist kein Urlaubs-Kostenträger konfiguriert, werden Strukturelement und Kostenträger selbst gewählt.

3.7. Teamkalender

Unter Allgemein > Kalenderliste werden Teamkalender verwaltet. Jeder Kalender hat einen Eigentümer und kann mit Gruppen und Benutzern in drei Zugriffsarten geteilt werden:

  1. Vollzugriff
    Die zugeordneten Gruppen und Benutzer können alle Termine des Kalenders lesen, anlegen, ändern und löschen.

  2. Nur lesend
    Die zugeordneten Gruppen und Benutzer können alle Termine lesen, einschließlich Abonnement und Download.

  3. Minimalzugriff
    Die zugeordneten Gruppen und Benutzer sehen nur Beginn und Ende der Termine, einschließlich Abonnement und Download. Alle anderen Eigenschaften der Termine wie Titel, Ort, Notizen usw. werden entfernt.

Bild

Abbildung 1:

Der Zugriff auf jeden Kalender lässt sich für Gruppen und/oder Benutzer konfigurieren.

Ein Teamkalender kann auch den Urlaub ausgewählter Benutzer und Gruppen anzeigen (Abschnitt Urlaub).

3.8. Serientermine

ProjectForge® unterstützt Serientermine. Bei der Änderung eines Serientermins wird unter Alle Änderungen betreffen: gewählt, ob die Änderung für Nur dieses Ereignis, für Alle Ereignisse oder für Alle zukünftigen Ereignisse gilt.

Teilnehmende importierter Termine werden angezeigt, ProjectForge® verschickt aber keine Einladungen.

3.9. Kalenderabonnements (ics)

Die Kalender von ProjectForge® lassen sich in jeder Kalenderanwendung abonnieren, die ics-Abonnements unterstützt (z. B. Apple Kalender, Google Kalender, Microsoft Outlook oder Thunderbird):

  • Mehr > Abonnement im Kalender bietet Abonnements für die eigenen Zeitberichte (Zeitberichte exportieren), die Feiertage (Feiertage exportieren) und die Kalenderwochen (Kalenderwochen exportieren).

  • Die Bearbeitungsseite jedes Teamkalenders zeigt die Abonnement-URL dieses Kalenders, mit oder ohne Erinnerungen.

Die Dialoge zeigen die URL zum Kopieren und einen QR-Code für das Smartphone. Die Abonnements sind nur lesend: Änderungen erfolgen in ProjectForge®. (ProjectForge® bietet keinen CalDAV-Server.)

Hinweis

Die Abonnement-URL enthält deinen persönlichen, verschlüsselten Kalenderschlüssel. Halte sie geheim! Im Zweifel den Schlüssel für Kalenderexport unter Mein Zugang erneuern. Alle bisherigen Abonnement-URLs funktionieren danach nicht mehr.

Einzelne Termine lassen sich auch als ics-Datei herunterladen (Export ics).

Bild

Abbildung 2:

Beispiel für abonnierte Kalender von ProjectForge im Kalender von Apple.

3.10. Externe Kalender abonnieren

Ein Teamkalender kann einen externen Kalender abonnieren (z. B. von Google oder Apple iCloud): Auf der Bearbeitungsseite des Teamkalenders Externes Abonnement ankreuzen, die Kalender-URL eintragen und ein Aktualisierungsintervall wählen. Die Termine abonnierter Kalender sind nur lesend. Lässt sich der externe Kalender längere Zeit nicht lesen (Standard: 90 Tage), wird das Abonnement automatisch abgeschaltet und ein Hinweis in der Beschreibung des Kalenders ergänzt.

3.11. Termine importieren

Mehr > Ereignisse importieren im Kalender (oder auf der Bearbeitungsseite eines Teamkalenders) importiert Termine aus ics-Dateien:

  1. Den Zielkalender wählen und eine .ics-Datei ablegen oder auswählen. Dateien mit mehreren Terminen werden unterstützt.

  2. Die Vorschau prüfen: Neue und geänderte Termine sind markiert.

  3. Den Import Übernehmen.

Termine werden an ihrer eindeutigen Id (UID) erkannt: Ein bereits im Kalender vorhandener Termin wird aktualisiert statt doppelt importiert.

4. Urlaub

4.1. Urlaubsantrag

Unter Allgemein > Urlaubseinträge wird Urlaub beantragt; dort sind auch die Urlaubsanträge des Teams zu sehen.

  • Startdatum und Enddatum wählen. Der erste und der letzte Tag können halbe Urlaubstage sein (Halber Urlaubstag am ersten Tag, Halber Urlaubstag am letzten Tag). ProjectForge® zeigt die Anzahl der Arbeitstage und die verfügbaren Urlaubstage.

  • Unter Abstimmung die Person wählen, die den Antrag genehmigt, sowie die Vertretung (und optional Weitere Vertretungen).

  • Sonderurlaub ankreuzen für Urlaub, der nicht vom Urlaubskonto abgeht. Sonderurlaub wird von HR genehmigt.

Neue Anträge erhalten den Status In Abstimmung. Die genehmigende Person setzt den Status auf Abgestimmt oder Abgelehnt. ProjectForge® merkt sich die zuletzt verwendete genehmigende Person und Vertretung.

Die genehmigende Person, die Vertretungen und du selbst werden per E-Mail über neue und geänderte Anträge benachrichtigt (sofern ein Mailserver konfiguriert ist).

Ein versehentlich als Urlaub erfasster Antrag lässt sich als Verfügbarkeitseintrag bearbeiten (Als Abwesenheit bearbeiten) und ein Verfügbarkeitseintrag als Antrag (Als Urlaub bearbeiten). Person, Zeitraum, Kommentar und Vertretungen werden in einen neuen Eintrag übernommen, der beim Speichern angelegt wird; ein bereits gespeicherter Eintrag bleibt unverändert bestehen und kann danach gelöscht werden.

Regeln

  • Es können nicht mehr Urlaubstage beantragt werden als verfügbar sind (außer Sonderurlaub). Resturlaub aus dem Vorjahr kann bis zum konfigurierten Datum genommen werden (standardmäßig der 31. März).

  • Urlaubszeiträume derselben Person dürfen sich nicht überschneiden.

  • Ein Antrag lässt sich zurückziehen (Status Abgelehnt) oder ein genehmigter Antrag löschen, solange der Urlaub noch nicht begonnen hat.

  • Urlaub in der Vergangenheit kann nur von HR eingetragen werden.

Konflikte

ProjectForge® warnt, wenn es mindestens einen Tag gibt, an dem keine der Vertretungen verfügbar ist, weil sie selbst im Urlaub sind. In diesem Fall andere oder weitere Vertretungen wählen. Die Liste der Urlaubsanträge lässt sich nach Konflikten filtern.

4.2. Urlaubskonto

Unter Administration > Urlaubskonto (sichtbar für Mitarbeitende mit Jahresurlaub) befindet sich die Urlaubsstatistik für das Vorjahr und das laufende Jahr: Jahresurlaub, Urlaub aus dem Vorjahr, genehmigter Urlaub und Urlaub in Abstimmung, Sonderurlaub und die verfügbaren Urlaubstage. Korrekturen durch HR werden als Urlaubskontokorrekturen aufgeführt (gepflegt unter HR > Urlaubskontokorrekturen).

Das Urlaubskonto bietet außerdem eine Abonnement-URL für die Urlaubstage der Mitarbeitenden.

4.3. Automatische Buchung von Urlaub

ProjectForge® kann genehmigten Urlaub (einschließlich Sonderurlaub) jede Nacht automatisch als Zeitberichte buchen, wenn die Administration das Urlaubs-Strukturelement und den Urlaubs-Kostenträger konfiguriert und Urlaub als Zeitberichte buchen (Tage zurück beim ersten Lauf) auf einen Wert größer 0 gesetzt hat (unter Administration > Konfiguration; Standard 0, d. h. abgeschaltet, höchstens 7):

  • Gebucht werden nur vergangene Arbeitstage bis gestern, nie im Voraus, und nur Tage ohne jeden Zeitbericht.

  • Jeder Tag wird nur einmal verarbeitet: Ein Lauf bucht die Tage seit dem letzten erfolgreichen Lauf, höchstens aber die konfigurierte Anzahl Tage zurück; Nächte, in denen der Job nicht lief, werden so nachgeholt. Ein von Hand gelöschter Urlaubs-Zeitbericht wird nicht erneut gebucht.

  • Die Stunden pro Tag ergeben sich aus der Wochenarbeitszeit (halbe Urlaubstage erhalten die Hälfte der Stunden). Die Beschreibung lautet „Urlaub“.

  • Urlaub, der erst genehmigt wird, nachdem seine Tage bereits verarbeitet wurden, wird nicht automatisch gebucht. Stattdessen Mehrere Tage buchen mit Urlaub übernehmen verwenden.

Der Monatsbericht weist Arbeitstage und Urlaubstage ohne Zeitberichte getrennt aus.

5. HR

  • HR > Mitarbeitende enthält die Daten der Mitarbeitenden wie Personalnummer, Eintritts- und Austrittsdatum und die Werte mit Gültigkeitsdatum: Urlaubstage pro Jahr, Wochenstunden und Mitarbeiter:instatus.

  • HR > Gehälter enthält die monatlichen Gehälter der Mitarbeitenden. Sie werden für die Kostenträgerrechnung verwendet.

  • Projektmanagement > Personalplanung gibt einen Überblick über die geplanten Arbeitsstunden der Mitarbeitenden in Projekten pro Woche.

5.1. Import von Gehältern

Gehälter lassen sich über Gehälterimport aus einer Excel-Datei (.xlsx oder .xls) importieren. Folgende Spalten sind erforderlich:

  • Abrechnungsmonat: Monat des Gehalts im Format yyyy/MM,

  • Pers.Nr. (oder Personalnummer): Personalnummer der Mitarbeiterin bzw. des Mitarbeiters,

  • Gesamtkosten (oder bruttoMitAgAnteil): Bruttogehalt einschließlich des Arbeitgeberanteils.

Zeilen mit unbekannter Personalnummer werden als fehlerhaft markiert und übersprungen.

6. Adressbuch

6.1. Adressbücher

Adressen sind in Adressbüchern organisiert (Allgemein > Adressbücher). Jedes Adressbuch hat einen Eigentümer und kann mit Benutzern und Gruppen geteilt werden, mit Vollzugriff (Lese- und Schreibzugriff auf alle Adressen dieses Adressbuchs) oder Nur lesend. Eine Adresse kann zu mehreren Adressbüchern gehören. Adressen ohne Adressbuch gehören zum globalen Adressbuch.

6.2. Rückwärtssuche von Telefonnummern

ProjectForge® nimmt jede Telefonnummer ohne Sonderzeichen und Leerzeichen in den Suchindex auf. Die Eingabe eines beliebigen Teils der Telefonnummer findet die zugehörige Adresse (sofern vorhanden).

Hinweis

Manchmal hilft es, die Ländervorwahl wegzulassen, um die Adresse zu finden.

6.3. Persönliche Favoriten

Auf der Bearbeitungsseite einer Adresse markiert Favorit die Adresse als persönlichen Favoriten. Die eigenen Favoriten sind in der Liste hervorgehoben (und lassen sich über meine Favoriten filtern).

Favoriten sind die Grundlage für den Export von Adressen in das persönliche Adressbuch (z. B. Apple Kontakte) und für die Synchronisation mit Mobilgeräten:

  • Export vCards im Exportmenü der Adressliste lädt alle eigenen Favoriten als vCard-Datei (vcf) herunter. Eine einzelne Adresse lässt sich auf ihrer Bearbeitungsseite über Export vCard exportieren.

  • CardDAV (sofern von der Administration aktiviert) synchronisiert die Favoriten mit der Adressbuch-Anwendung. Einrichten des CardDAV-Services im Exportmenü zeigt Server, Pfad und Zugangsdaten. Wird ein Kontakt in der Adressbuch-Anwendung entfernt, wird er aus den Favoriten entfernt; über CardDAV lassen sich keine Kontakte anlegen oder ändern.

Hinweis

In der Adressbuch-Software bitte UTF-8 als Zeichenkodierung verwenden!

6.3.1. Hinweis für Apple Kontakte

Mehrfache Exporte von Adressen können zu mehrfachen Notizeinträgen führen. Das im Menü der Adressliste angebotene Apple-Script (Apple-Script) entfernt solche mehrfachen Notizeinträge:

1
2
3
4
5
6
7
8
9
tell application "Address Book"
repeat with thisPerson in every person
if (exists (note of thisPerson)) and ((note of thisPerson) contains "CLASS: WORK") then
log "Name: " & (name of thisPerson)
delete note of thisPerson
end if
end repeat
save
end tell
  1. Das Script lässt sich direkt im Apple-Script-Editor ausführen. (Das Ergebnis 'missing value' ist zu erwarten.)

  2. Anschließend den ProjectForge®-Download (vCard) erneut importieren.

6.4. Export der Adressliste

Die aktuell angezeigte Adressliste lässt sich als Excel-Datei exportieren (Excel-Export). Aus Datenschutzgründen werden nur die eigenen Favoriten exportiert. Mitglieder der Gruppen PF_Finance oder PF_Marketing können alle Adressen der Liste exportieren.

6.5. Direktwahl und SMS

Ist die Telefonanlage des Unternehmens angebunden (siehe Administrationshandbuch), lassen sich Telefonate direkt aus ProjectForge® starten (Allgemein > Direktwahl): Die Nummer eingeben oder einen Namen bzw. eine Organisation eintippen und die Adresse wählen. Telefonnummern in der Adressliste sind mit der Direktwahl verlinkt und werden vergrößert, wenn die Maus darüber fährt.

Vorher bitte die eigenen Telefon-Ids (kommagetrennt) unter Mein Zugang eintragen.

Ist ein SMS-Gateway konfiguriert, lassen sich über Allgemein > SMS senden Textnachrichten verschicken.

7. Strukturelemente in ProjectForge (früher Aufgaben)

Der Begriff 'Strukturelement' wird allgemein verwendet und steht für Kunden, Projekte, Releases, Arbeitspakete usw. Strukturelemente sind hierarchisch im Strukturbaum organisiert (Projektmanagement > Strukturbaum). Zugriffsrechte können von Strukturelementen abhängen (und werden, falls so konfiguriert, von übergeordneten Strukturelementen abgeleitet). Zeitberichte werden immer auf Strukturelemente gebucht.

Bild

Abbildung 3:

Hierarchie der Strukturelemente in ProjectForge®

Die folgende Tabelle beschreibt die Felder von Strukturelementen:

Feld Beschreibung

Übergeordnetes Strukturelement

Das Strukturelement ist ein untergeordnetes Strukturelement des übergeordneten Strukturelements. Das Strukturelement an der Spitze der Hierarchie ist der Wurzelknoten, das einzige Strukturelement ohne übergeordnetes Strukturelement.

Titel

Referenz

Mehrzweckfeld, optional. Dieses Feld wird an alle untergeordneten Strukturelemente vererbt, sofern es dort nicht überschrieben wird. Das ist z. B. für Exporte nützlich.

Status

Nicht geöffnet, geöffnet oder geschlossen. Auf geschlossene Strukturelemente kann nicht mehr gebucht werden.

Priorität

Kurzbeschreibung

Beschreibung

Maximalstunden

Falls angegeben, wird der Verbrauch im Strukturbaum und beim Buchen eines Zeitberichts angezeigt, siehe Verbrauch. Ist Maximalstunden haben Vorrang angekreuzt, werden die Maximalstunden auch dann verwendet, wenn Auftragspositionen zugeordnet sind.

Verantwortliche:r

ProjectForge®-Benutzer zur Information.

Kost2-Liste

Alle Kost2-Werte sind projektspezifisch, wenn diesem Strukturelement oder einem übergeordneten Strukturelement ein Projekt zugeordnet ist. Die Negativliste legt Kost2-Einträge fest, die vom zugeordneten Projekt ausgeschlossen werden. Ist kein Projekt zugeordnet, lassen sich die Kost2-Werte über eine Positivliste konfigurieren.

Zeitbuchungen

Erben (Standard), geöffnet, nur Blattknoten, keine Buchung oder vollständig geschlossen, siehe Buchung von Zeitberichten.

Zeitberichtsschutz bis

Falls gesetzt, lassen sich nur Zeitberichte mit einem Beginn nach dem angegebenen Datum anlegen und ändern, siehe Schutz.

Datenschutz

Falls angekreuzt, sind die Zeitberichte dieses Strukturelements und aller untergeordneten Strukturelemente für andere Benutzer unsichtbar (außer für die Mitglieder der Finanzbuchhaltung).

Strukturelement mit geteilten Kosten

Falls angekreuzt (wird an alle untergeordneten Strukturelemente vererbt), dürfen sich hier gebuchte Zeitberichte zeitlich mit Zeitberichten anderer Projekte überschneiden, siehe Strukturelement mit geteilten Kosten. Anders als die übrigen Felder dieses Abschnitts kann es von allen geändert werden, die das Strukturelement bearbeiten dürfen.

Ganttwerte

Beginn- und Endedatum, Dauer, Fortschritt und Vorgänger für das Gantt-Diagramm (Projektmanagement > Gantt).

Die Felder des Abschnitts Finanzbuchhaltung (außer Strukturelement mit geteilten Kosten) dürfen nur von der Finanzbuchhaltung geändert werden (Kost2-Liste und Buchungsstatus auch von den Projektleitungen des zugeordneten Projekts).

7.1. Verbrauch

Verbrauchsbalken werden im Strukturbaum und bei jeder Buchung von Zeitberichten angezeigt. Der Tooltip zeigt die gebuchten und die geplanten Personentage (1 Personentag = 8 Stunden) einschließlich aller untergeordneten Strukturelemente, den Prozentsatz und den Zeitraum der Buchungen. Ein Klick auf einen Balken zeigt die gebuchten Zeitberichte.

Der Planwert stammt aus den Maximalstunden des Strukturelements oder, falls Auftragspositionen zugeordnet sind, aus den beauftragten Personentagen.

Verbrauch Darstellung

Kein Budget angegeben

Nur gebuchte Personentage, kein Prozentsatz.

0-80%

Grüner Balken.

80%-90%

Gelber Balken.

90%-100%

Dunkelgelber Balken.

über 100%

Die Spur des Balkens wird rot: Das Budget ist überschritten.

Bei abgeschlossenen (geschlossenen) Strukturelementen bleibt der Balken bis 100% grün; von 100% bis 110% zeigt er eine leichte Budgetüberschreitung (rote Spur mit neutralem Balken), oberhalb von 110% die normale Budgetüberschreitung.

7.1.1. Status von Verbrauchsbalken unterdrücken

Wird 0 als Maximalstunden eines Strukturelements eingetragen, unterbleibt die Statusanzeige (Planwert und Prozentsatz) des Verbrauchsbalkens, auch wenn Auftragspositionen zugeordnet sind. Das ist sinnvoll, um ein Team nicht zu demotivieren, oder wenn nicht alle Aufträge mit Budgets einem Strukturelement zugeordnet sind.

7.2. Buchung von Zeitberichten

Zeitberichte müssen einem Strukturelement zugeordnet sein. Zur Verbesserung der Qualität der Zeitberichte prüft ProjectForge® die folgenden Regeln. Ist eine Regel nicht erfüllt, kann auf dieses Strukturelement keine Arbeitszeit gebucht werden:

  1. Der Benutzer benötigt Zugriff auf dieses Strukturelement oder ein übergeordnetes Strukturelement einschließlich des Rechts, Zeitberichte zu buchen.

  2. Das Strukturelement und seine übergeordneten Elemente dürfen nicht geschlossen oder gelöscht sein.

  3. Das Projekt des Strukturelements (das nächste zugeordnete Projekt im Strukturbaum) darf nicht beendet oder gelöscht sein.

  4. Das Strukturelement oder ein übergeordnetes Strukturelement kann einen Zeitberichtsschutz haben. Für Tage vor dem Schutzdatum lassen sich dann keine Zeitberichte ändern oder hinzufügen.

  5. Der Buchungsstatus des Strukturelements (oder des nächsten übergeordneten Elements mit einem anderen Buchungsstatus als 'erben') darf nicht 'keine Buchung' sein, und kein übergeordnetes Element darf 'vollständig geschlossen' sein.

  6. Ist das Strukturelement kein Blattelement (hat es untergeordnete Elemente), darf der Buchungsstatus nicht 'nur Blattknoten' sein.

  7. Kein untergeordnetes Strukturelement darf eine zugeordnete Auftragsposition haben. Diese Regel ist wichtig, weil ProjectForge® sonst den Verbrauch der durch Aufträge festgelegten Budgets nicht berechnen kann.

Weitere Prüfungen: Ein Zeitbericht muss eine Dauer haben (höchstens 14 Stunden) und darf sich nicht mit einem anderen Zeitbericht desselben Benutzers überschneiden, außer bei einem Strukturelement mit geteilten Kosten (siehe unten).

7.2.1. Strukturelement mit geteilten Kosten

Zeitberichte desselben Benutzers dürfen sich zeitlich überschneiden, wenn mindestens einer der beiden auf ein Strukturelement mit geteilten Kosten gebucht ist und beide nicht zum selben Projekt gehören. Ein Zeitbericht gilt als auf geteilte Kosten gebucht, wenn bei seinem Kost2 Geteilte Kosten auf Ja steht. Lässt der Kost2 das Feld leer (Wie Strukturelement) oder gibt es keinen Kost2, entscheidet die Checkbox Strukturelement mit geteilten Kosten des Strukturelements (oder eines übergeordneten Elements). Ein auf Nein gesetzter Kost2 hat Vorrang: Seine Zeitberichte zählen nicht als geteilt, auch nicht auf einem Strukturelement mit geteilten Kosten.

Niemals erlaubt, ob geteilt oder nicht, sind Überschneidungen:

  • auf demselben Kost2 oder, wenn keiner der beiden Zeitberichte einen Kost2 hat, auf demselben Strukturelement,

  • innerhalb desselben Projekts,

  • innerhalb derselben Überlappungsgruppe: Die Administration kann unter Administration > Konfiguration Gruppen von Kost2 festlegen (Überlappungsgruppen für Zeitberichte, z. B. 6 für alle Kost2 6.*); jede Gruppe zählt wie ein Projekt.

Überlappende Zeit wird in Anwesenheit, Statistiken und im Monatsbericht anteilig gezählt: z. B. zählen 1 Stunde auf Projekt A plus eine überlappende Stunde auf Projekt B je 0,5 Stunden. Für den Aufwand eines Projekts (z. B. Abrechnung und Projektexporte) zählt jeder Zeitbericht mit seiner vollen Dauer.

Ist ein Strukturelement geschützt, lassen sich weiterhin Felder ändern, die keine finanziellen Parameter betreffen (etwa Beschreibung und Ort, nicht aber Zeiten oder Kostenträger). Tippfehler usw. in Zeitberichten lassen sich also korrigieren.

8. Zeitberichte

Zeitberichte werden im Kalender oder unter Projektmanagement > Zeitberichte gebucht.

8.1. Vorlagen und letzte Einträge

Über dem Bearbeitungsformular eines Zeitberichts befinden sich die Vorlagen und die Zuletzt verwendet-Einträge. Sie übernehmen, was gebucht wurde (Strukturelement, Kostenträger, Ort, Beschreibung usw.), nicht aber die Zeit. Häufig gebuchte Zeitberichte lassen sich als benannte Vorlagen speichern.

8.2. Schutz

Zeitberichte lassen sich für Strukturelemente (einschließlich aller untergeordneten Strukturelemente) nach Datum schützen. Dieser Schutz stellt sicher, dass niemand Zeitberichte mit einem Datum vor dem Ende des Schutzes (Zeitberichtsschutz bis) ändern kann.
Das ist sinnvoll, wenn die Zeitberichte abgerechnet oder von anderen Buchhaltungssystemen übernommen wurden. Zeitberichte mit einem Datum vor dem Schutzdatum können nur von Mitgliedern der Finanzbuchhaltung geändert werden (was Zeiten und Kostenzuweisungen betrifft).

8.3. Kostenträger

  • Einem Strukturelement lassen sich Projekte und/oder Kost2 zuordnen.

  • Ist ein Projekt zugeordnet, werden alle vorhandenen Kost2 dieses Projekts automatisch diesem Strukturelement zugeordnet.

  • Ist einem Strukturelement weder ein Projekt noch ein Kostenträger zugeordnet, gelten alle Einstellungen des übergeordneten Strukturelements. Findet sich dort keine solche Einstellung, wird das darüberliegende Element verwendet usw.

  • Verwendet werden nur Kostenträger ohne Status oder mit dem Status 'aktiv'.

Ist einem Strukturelement (direkt oder abgeleitet) ein Kost2 zugeordnet, muss beim Buchen von Zeitberichten ein passender Kostenträger gewählt werden.

Hinweis

Fehlen Kostenträger, lassen sie sich über die Bearbeitungsseite des Projekts hinzufügen (mit Status 'aktiv').
Sollen Kostenträger deaktiviert werden, lässt sich ihr Status auf 'nicht aktiv' oder 'beendet' setzen, oder sie werden über die Negativ- oder Positivliste des Strukturelements entfernt.

8.4. Monatsbericht

Der Monatsbericht (Projektmanagement > Monatsbericht) fasst die Zeitberichte einer Person für einen Monat zusammen, ebenso die Arbeitstage und Urlaubstage ohne Zeitberichte. Er steht auch als PDF mit Feldern für die Unterschriften der Person und der Projektleitung zur Verfügung.

8.5. Meine Statistiken

Projektmanagement > Meine Statistiken vergleicht die gebuchten Stunden mit den Sollstunden und zeigt, wie zeitnah die Zeitberichte gebucht werden. Zeitnahes Buchen der Zeitberichte ist für ein erfolgreiches Projektmanagement unerlässlich!

8.6. JIRA-Unterstützung

JIRA-Issues werden unterstützt, sofern die Administration dies konfiguriert hat. Enthalten der Tätigkeitsbericht oder die Referenz von Zeitberichten JIRA-Issue-Schlüssel, werden diese als Links auf das konfigurierte JIRA-System angezeigt.

8.7. Kostenträgerrechnung

8.7.1. Arbeitszeitanteil

Für einzelne Kost2 oder Kost2-Arten lässt sich ein Anteil konfigurieren (Standard ist 1). Beispiel: Soll Reisezeit nur zur Hälfte als Arbeitszeit zählen, wird der Anteil auf 0,5 gesetzt. Der Monatsbericht berücksichtigt diesen Anteil.

9. Auftragsbuch

Angebote und Aufträge werden im Auftragsbuch verwaltet. Sie lassen sich Projektleitungen zuordnen, die dann Zugriff auf ihre Aufträge und Angebote haben. Mitglieder der Verwaltung können Zugriff auf alle Aufträge haben, wenn sie das entsprechende Recht besitzen (siehe Benutzerverwaltung von ProjectForge®).

  • Aufträge enthalten Positionen (Auftragsart, Zahlungsart, Personentage, Nettosumme, Leistungszeitraum, Strukturelement usw.) und optional einen Zahlungsplan.

  • Nur die Finanzbuchhaltung kann Positionen und Zahlungspläne als vollständig abgerechnet markieren.

  • Das Exportmenü bietet einen Forecast der gefilterten Aufträge als Excel-Datei. Weitere Statistiken wie Forecast und Deckungsbeitrag stehen unter Fibu > Statistiken zur Verfügung (bzw. unter Projektmanagement > Statistiken für Benutzer ohne Fibu-Menü).

9.1. E-Mail-Benachrichtigung

Beim Speichern eines Auftrags können die Ansprechpersonen und alle am Auftrag beteiligten Benutzer (sofern sie Zugriff darauf haben) per E-Mail mit einem Link auf den Auftrag benachrichtigt werden. Wird E-Mail-Benachrichtigung versenden? abgewählt, unterbleibt die Benachrichtigung.

10. Finanzbuchhaltung mit ProjectForge®

10.1. Rechnungen

ProjectForge® unterstützt die Verwaltung von Ausgangs- und Eingangsrechnungen (Debitoren und Kreditoren):

  • Rechnungen können beliebig viele Positionen enthalten.

  • Ist das Kostenmodul konfiguriert, lässt sich der Betrag jeder Position einem oder beliebig vielen Kostenträgern zuordnen.

  • Rechnung exportieren erzeugt aus einer gespeicherten Rechnung ein Word-Dokument auf Basis der Rechnungsvorlage des Unternehmens.

10.1.1. Zuordnung von Kostenträgern

Für ein besseres Verständnis empfiehlt es sich, diese Funktion einfach auszuprobieren.
Positionen von Rechnungen lassen sich Kost1 und Kost2 zuordnen (Kostzuweisungen). Eine Autovervollständigung hilft, die Kostenträger sehr schnell zu finden. Eingegeben werden können sowohl Nummern von Kostenträgern als auch Text (z. B. die Beschreibung, der Kunde oder die Art eines Kostenträgers).
Beliebig viele Zuordnungen werden unterstützt. Der Betrag lässt sich als Betrag oder als Prozentwert angeben (z. B. 10%). ProjectForge® hebt Positionen hervor, deren Betrag noch nicht vollständig zugeordnet ist (Kostzuweisungfehlbetrag).

Bereits gespeicherte Positionen und Zuordnungen werden zunächst als gelöscht markiert und lassen sich bis zum Speichern der Rechnung wiederherstellen.

10.1.2. Klonen und Stornieren

Vorhandene Rechnungen lassen sich klonen, um neue Rechnungen schneller zu erfassen:

  • Das Datum wird durch 'heute' ersetzt, die Fälligkeiten werden aus den Zahlungsbedingungen neu berechnet.

  • Die Positionen und alle vorhandenen Kostenzuweisungen werden kopiert.

  • Die Rechnungsnummer wird beim Speichern vergeben. Zahlungsdaten und Anhänge werden nicht kopiert.

Storno erzeugen bereitet für eine Ausgangsrechnung eine Stornorechnung mit negierten Beträgen vor. Beim Speichern erhält die ursprüngliche Rechnung den Status storniert.

10.2. E-Rechnungen (XRechnung und ZUGFeRD)

Ausgangsrechnungen lassen sich als elektronische Rechnungen exportieren (sofern die Administration die Verkäuferdaten konfiguriert hat):

  • Speichern und XRechnung speichert die Rechnung, validiert sie und lädt sie als XRechnung (XML) herunter.

  • Speichern und ZUGFeRD erzeugt eine ZUGFeRD-Rechnung (PDF/A-3 mit eingebettetem XML, Profil EN16931). Grundlage ist das hochgeladene Rechnungs-PDF oder, falls keines hochgeladen ist, das aus der Word-Vorlage erzeugte PDF.

Fehlende Daten (z. B. die Adresse des Kunden oder die Bankverbindung des Verkäufers) werden vor dem Export gemeldet. Aus Konto ergänzen übernimmt die E-Rechnungsdaten aus dem Konto des Kunden.

Der E-Rechnungs-Checker (Fibu > E-Rechnungs-Checker) zeigt den Inhalt beliebiger ZUGFeRD-PDF- oder XRechnung-XML-Dateien an (Verkäufer, Käufer, Positionen, Beträge, Anhänge) und prüft die wichtigsten Pflichtfelder. Eine vollständige offizielle Validierung ersetzt er nicht.

10.3. Kreditorenrechnungen

Kreditorenrechnungen lassen sich aus DATEV-CSV-Exporten importieren (Kreditorenrechnungen hochladen in der Liste der Kreditorenrechnungen). Der Hilfetext auf der Importseite beschreibt die erwarteten DATEV-Exporte. Wie bei allen Importen von ProjectForge® wird die Vorschau geprüft (neue, geänderte, unveränderte und fehlerhafte Einträge), die Einträge ausgewählt und übernommen.

Überweisungen exportieren erzeugt für eine oder mehrere Kreditorenrechnungen eine SEPA-Überweisungsdatei (pain.001).

10.4. Bankkonten

Unter Fibu > Bankkonten werden die eigenen Bankkonten verwaltet und ihre Umsätze aus CSV-Dateien importiert. Die Spaltenzuordnung wird je Bankkonto konfiguriert (Importeinstellungen). Bereits importierte Umsätze werden aktualisiert, nicht dupliziert; überlappende Zeiträume lassen sich also erneut importieren.

10.5. Liquiditätsplanung / Vorschau

Auf Basis der Rechnungen und zusätzlicher Liquiditätseinträge (außer Rechnungen) lässt sich mit ProjectForge® der Cashflow sehr einfach steuern, einschließlich einer Vorschau (Reporting > Liquidität).

10.5.1. Liquiditätseinträge und Serien

Liquiditätseinträge haben ein Zahlungsdatum, einen Betrag, einen Betreff und einen Kommentar. Sie lassen sich nach Ablauf des Zahlungsdatums automatisch als bezahlt markieren.

Wiederkehrende Zahlungen wie Miete oder Leasingraten werden einmal als Serie erfasst: Diesen Eintrag als Serie wiederholen ankreuzen, das Intervall (Alle N Monate) und optional die Anzahl Raten eingeben (leer bedeutet endlos).

  • Die Vorkommen einer Serie werden automatisch angezeigt, aber nicht gespeichert.

  • Wird ein einzelnes Vorkommen geöffnet und gespeichert (z. B. um seinen Betrag zu ändern oder es als bezahlt zu markieren) oder per Massenänderung geändert oder gelöscht, wird es zu einem eigenständigen Eintrag (Fixiert), der späteren Änderungen der Serie nicht mehr folgt.

  • Bei der Änderung einer Serie wird gewählt, ob die Änderung für die ganze Serie oder ab einem bestimmten Datum gilt (Ab einem Datum ändern). Im zweiten Fall behalten frühere Vorkommen ihre Werte, und das Intervall lässt sich nicht ändern (die Fortsetzung behält das Intervall der Serie).

10.5.2. Vorschau

Die Liquiditätsvorschau zeigt den erwarteten Kontostand für die nächsten Tage (bis zu 600) ausgehend von einem Startbetrag. Ein Stichtag in der Vergangenheit erlaubt es, eine frühere Vorschau mit der tatsächlichen Entwicklung zu vergleichen. Excel-Export lädt die Vorschau mit allen Einträgen und Rechnungen herunter.

10.5.3. Berechnung der erwarteten Zahlungstermine

ProjectForge® verwendet Fälligkeiten für die Vorschau von Cashflow und Kontostand. Für Rechnungen berechnet ProjectForge® zusätzlich die erwarteten Zahlungstermine auf Basis der bezahlten Rechnungen der letzten 12 Monate, in dieser Reihenfolge:

  1. Projekt: Gibt es bereits bezahlte Rechnungen für dasselbe Projekt?

  2. Kundennummer: Gibt es bereits bezahlte Rechnungen für denselben Kunden (gruppiert nach der Kundennummer)?

  3. Konto: Gibt es bereits bezahlte Rechnungen für dasselbe Konto?

  4. Kundentext: Gibt es bereits bezahlte Rechnungen für den Kunden (vollständiger Text)?

  5. Kundenkurztext: Gibt es bereits bezahlte Rechnungen für den Kunden (der Anfang des Kundentexts wird verwendet)?

Wird eine bezahlte Rechnung gefunden (beginnend beim Projekt), dient die mittlere Zahlungsdauer dieser Rechnungen (gewichtet nach Betrag) zur Berechnung des erwarteten Zahlungstermins. Für Kreditorenrechnungen gilt dasselbe.

Die Liquiditätsplanung ist ein Plugin, das bei der Einrichtung von ProjectForge® automatisch aktiviert wird; zur Verwaltung von Plugins siehe das Administrationshandbuch.

10.6. DATEV-Import

Die Konten (Kontenplan) und die Buchungssätze werden aus den Excel-Dateien importiert, die das Steuerbüro liefert (Reporting > Datev-Import). Die originale Excel-Datei (.xlsx oder .xls) kann unverändert hochgeladen werden; Auswertungsblätter wie BWA, SuSa oder USt werden ignoriert.

Die Importseite hat zwei Reiter:

  • Buchungssätze: Die Monatsblätter („01“, „02“, …​, „12“) enthalten die Buchungssätze des Buchungsmonats. Hat die Datei kein Monatsblatt, wird der Monat aus dem Dateinamen übernommen (z. B. 2026-07_…​). Buchungssätze mit einem Datum in einem späteren Monat werden dem Buchungsmonat zugeordnet, behalten aber ihr tatsächliches Datum. Das Kalenderjahr wird automatisch aus den Daten der Buchungssätze ermittelt.

  • Kontenplan: Das Blatt "Kontenplan" (auch mit vorangestelltem Monat, z. B. "07_Kontenplan") mit den Spalten "Konto" und "Beschriftung". Importiert werden nur die Kontenbezeichnungen, vorhandene Konten werden nicht gelöscht.

Spalten werden an ihren Überschriften erkannt, ihre Reihenfolge spielt keine Rolle und zusätzliche Spalten werden ignoriert. Für die Buchungssätze werden folgende Spalten verwendet:

  • "Satz-Nr.", "Betrag", "SH", "Konto", "Gegenkonto", "Datum", "Beleg", "Text", "Menge",

  • "Kostenstelle/-träger" (oder "Kst." oder "Kost2") wird als Kost2 interpretiert,

  • "Alt.-Kst." (oder "Kost1") wird als Kost1 interpretiert,

  • "Bemerkung" (oder "Kommentar") ist optional und kann zusätzliche Informationen oder Markierungen enthalten.

Bild

Abbildung 4:

Excel-Format für den DATEV-Import von Buchungssätzen

Der Import läuft in denselben Schritten ab wie alle Importe von ProjectForge®:

  1. Die Datei hochladen. Fehler (z. B. ein ungültiges Zahlenformat) werden mit Blatt, Zeile und Spalte angezeigt.

  2. Die Vorschau zeigt die neuen, geänderten, unveränderten und fehlerhaften Buchungssätze (bei geänderten auch den bisherigen Wert) sowie die daraus resultierende betriebswirtschaftliche Auswertung (BWA).

  3. Die zu übernehmenden Buchungssätze auswählen (oder Alle auswählen) und Übernehmen. Dieser Schritt lässt sich wiederholen, bis alle Buchungssätze übernommen sind.

Importierte Buchungssätze sind unter Reporting > Buchungssätze aufgeführt, einschließlich einer betriebswirtschaftlichen Auswertung (BWA) des gewählten Zeitraums.

10.7. Reporting über Report-Objectives

Unter Reporting > Report-Objectives wird eine XML-Datei mit der Beschreibung der Report-Objectives hochgeladen (oder eingefügt), ein Zeitraum gewählt und der Report erstellt. Das XML bleibt bis zum Logout erhalten. Beispiel:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<ReportObjective title="Customer ACME" id="ACME" suppressOther="true" suppressDuplicates="true">
  <kost1-include>3.*</kost1-include>
  <kost1-exclude>*.01</kost1-exclude>
  <kost1-exclude>*.12</kost1-exclude>
  <kost2-include>5.*</kost2-include>
  <kost2-exclude>*.02</kost2-exclude>
  <kost2-exclude>*.11</kost2-exclude>
  <ReportObjective title="Project ACME-WEB-Portal" id="ACME-WEB-Portal">
    <kost2-include>5.020.01.*</kost2-include>
  </ReportObjective>
  <ReportObjective title="Project ACME-Java-Migration" id="ACME-Java-Migration">
    <kost2-include>5.020.02.*</kost2-include>
  </ReportObjective>
</ReportObjective>
  1. Ist eine Include-Liste leer, passen alle Buchungssätze auf diese Include-Liste (Platzhalter).

  2. Ist eine Include-Liste nicht leer, muss mindestens ein Eintrag passen.

  3. Bei mehreren Include-Listen muss ein Buchungssatz zu allen Include-Listen passen (logisches 'und').

  4. Passt ein Buchungssatz auf mindestens einen Eintrag einer Exclude-Liste, wird er ausgeschlossen.

Zur Auswertung der regulären Ausdrücke wird die Methode String.matches(regExp) verwendet. Für ein besseres Verständnis hilft die Ausdruckssyntax der Java-Klasse java.util.regex.Pattern. Zur Vereinfachung verändert ProjectForge® die konfigurierten Ausdrücke vor der Verwendung automatisch: Alle Punkte ('.') werden maskiert und der Platzhalter '' wird durch '.' ersetzt. Ein vorangestellter Apostroph verhindert diese automatische Veränderung, z. B. wird "'^5\.510.*" nicht verändert (nur der Apostroph selbst wird vor der Auswertung entfernt).
Beispiele:

  • "3.*" → "3\..*" (passt auf alle Zeichenketten, die mit "3." beginnen).

  • "*.02" → ".*\.02" (passt auf alle Zeichenketten, die auf ".02" enden).

  • "'^5.02.*" → "^5.02.*" (passt auf alle Zeichenketten, die mit "5", einem beliebigen Zeichen und "02" beginnen).

(Diese Ersetzungsstrategie dient der Bequemlichkeit, denn '.' bedeutet normalerweise ein beliebiges Zeichen und '' ein mehrfaches Vorkommen des Zeichens vor dem Sternchen: "3.1" passt beispielsweise auf "3x1111", aber nicht auf "3.120.08.02".)

Hinweis

Ein untergeordnetes ReportObjective kann nur aus Einträgen des übergeordneten ReportObjective bestehen (nur eine Teilmenge)!

Die Buchungssätze jedes Report-Objectives lassen sich direkt aus dem Report öffnen.

11. Scripting in ProjectForge®

In ProjectForge® lassen sich Scripte bearbeiten, speichern und ausführen (Reporting > Scriptliste), um aus der Datenbank von ProjectForge® Excel-Dateien, Diagramme usw. zu erzeugen. Scripte werden in Kotlin oder Groovy geschrieben. Ein Script-Editor mit Syntaxhervorhebung, die Liste der verfügbaren Variablen und einige Beispiele sind eingebaut.

  • Scripte können bis zu 6 Parameter definieren (z. B. Zahlen, Texte, Datumswerte, Zeiträume, Strukturelemente oder Benutzer), die vor der Ausführung abgefragt werden.

  • Zu einem Script lässt sich eine Datei hochladen (z. B. eine Excel-Vorlage), um sie zu lesen oder zu verändern.

  • Scripte lassen sich mit Benutzern und Gruppen teilen. Diese finden sie unter Projektmanagement > Meine Scripte und können sie ausführen, ohne den Quellcode zu sehen.

11.1. Beispiele

Die vordefinierten Beispielscripte vermitteln einen Eindruck davon, wie leistungsfähig das Scripting in ProjectForge® ist.

11.1.1. Beispiel: Einfache Erzeugung einer Excel-Datei

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
// Simple Kotlin script
val users = userDao.list.filter { it.hasSystemAccess() }
val workbook = ExcelUtils.prepareWorkbook("Userlist.xlsx")
val sheet = workbook.createOrGetSheet("Users")
sheet.registerColumns(
  "Username|20", // Title Username is also property name, length = 20
  "Full name|fullname|30", // Title differs from property name
  "Email|30",
  "Id|10",
  "Description|50",
)
sheet.createRow().fillHeadRow()
users.forEach { user ->
  val row = sheet.createRow()
  ExcelUtils.autoFill(row, user)
}
sheet.setAutoFilter() // optional Excel auto filter
workbook

11.1.2. Beispiel: Verwendung von ProjectForge®-Filtern

1
2
3
4
5
6
val filter = TimesheetFilter()
filter.startTime = PFDateTime.withDate(2026, Month.JANUARY, 1).utilDate
filter.stopTime = PFDateTime.withDate(2026, Month.JUNE, 30).utilDate
val list = timesheetDao.select(filter)

"Number of found time sheets: ${list.size}"

PFDateTime und PFDay verwenden standardmäßig automatisch die Zeitzone des aktuell angemeldeten Benutzers.

11.2. Zugriffsrechte (DAOs)

Auf alle Datenbankeinträge lässt sich über die DAOs (Data Access Objects) von ProjectForge® zugreifen. Die DAOs stellen sicher, dass nur Entitäten zurückgegeben werden, auf die der Benutzer Zugriff hat. Alle Entitäten ohne Zugriff des Benutzers entfernen die DAOs aus den Ergebnislisten.

11.3. Erstellung von Diagrammen

Diagramme lassen sich mit JFreeChart erstellen.

Bild

Abbildung 5:

Beispiel für ein Script, das ein Diagramm erzeugt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import org.jfree.chart.*
import org.jfree.data.general.*
import org.projectforge.export.*

DefaultPieDataset dataset = new DefaultPieDataset()
dataset.setValue("Linux", 15)
dataset.setValue("Mac", 8)
dataset.setValue("Windows", 70)
dataset.setValue("Others", 7)
JFreeChart chart = ChartFactory.createPieChart("Operating systems of our users", dataset, true, true, false)

ExportJFreeChart export = new ExportJFreeChart(chart, 800, 600)
return export

11.4. Erstellung von Zip-Archiven mit mehreren Dateien

Es lassen sich Zip-Dateien mit mehreren Dateien (Excel-Tabellen und Diagramme) erstellen. Optional kann das Archiv mit einem Passwort verschlüsselt werden.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// org.projectforge.business.scripting.ExportZipArchive and ExcelUtils are imported by default.
import org.projectforge.export.ExportJFreeChart

val zip = ExportZipArchive("my-first-archive") // File name will be: my-first-archive.zip
val workbook = ExcelUtils.prepareWorkbook("sheet.xlsx")
// ... fill the workbook, see above
zip.add("sheet.xlsx", workbook)
val chart = ExportJFreeChart(...)
zip.add("chart.png", chart)
zip

Der optionale Parameter encryptionPassword (z. B. ExportZipArchive("my-first-archive", encryptionPassword = "…​")) verschlüsselt das Archiv.

11.5. Verschachtelte und indizierte Properties

Bean-Properties lassen sich in der üblichen Notation verwenden:

1
2
sheet.propertyNames = ["user.username", "description", "startTime", "stopTime",
         "kost2.kost2Art.fakturiert"]

Verschachtelte und indizierte Properties werden ebenfalls unterstützt: users[3].name oder result.userList[0].

11.6. Import von Excel-Dateien

Abbildung 6 zeigt eine Beispieldatei.

Bild

Abbildung 6:

Beispieldatei für einen Excel-Import

Die zum Script hochgeladene Datei steht als Variable file (Byte-Array) zur Verfügung, ihr Name als filename. Das folgende Groovy-Beispiel liest sie mit ExportWorkbook, das nur das .xls-Format unterstützt.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import java.text.*
import org.projectforge.business.excel.*
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.UK)

ExportWorkbook workbook = new ExportWorkbook(file) // The file uploaded to this script.
ExportSheet sheet = workbook.getSheet("Sheet-1") // Gets sheet with the given title.
result = ""
total = 0.0

for (int i = 1; i < sheet.rows.size(); i++) {
  row = sheet.getRow(i)
  no = row.getCell(0).getNumericCellValue()
  name = row.getCell(1).getStringCellValue()
  amount = row.getCell(2).getNumericCellValue()
  total += amount
  result += (int)no + ". The amount of " + name + " is: " + nf.format(amount) + "\n"
}
result += "The total amount is: " + nf.format(total)
return result

Die Ausgabe lautet:

1
2
3
4
5
1. The amount of Susan is: £50.23
2. The amount of Hugo is: £17.00
3. The amount of Lisa is: £15.00
4. The amount of Mona is: £10.00
The total amount is: £92.23

12. Verschiedenes

12.1. Datentransfer

Verschiedenes > Datentransfer ist der einfache Weg, Dateien mit Kolleg:innen und externen Partnern auszutauschen:

  • Die Persönliche Box dient dazu, Dateien an einen einzelnen anderen Benutzer zu senden. Dateien werden nach 60 Tagen gelöscht.

  • Gemeinsame Bereiche sind für die zugeordneten Admins, Benutzer und Gruppen zugänglich. Beobachter werden per E-Mail über Uploads und externe Downloads benachrichtigt.

  • Ein gemeinsamer Bereich lässt sich für externe Downloads und/oder Uploads freigeben: Externe Partner erhalten einen Link und ein Passwort (beide lassen sich jederzeit erneuern).

  • Jeder Bereich hat eine Ablauffrist (z. B. 7 Tage), nach der Dateien automatisch gelöscht werden. Bei längeren Ablauffristen wird vorab über Dateien informiert, die gelöscht werden. Die maximale Dateigröße wird je Bereich konfiguriert.

  • Alles herunterladen lädt alle Dateien eines Bereichs als Zip-Archiv herunter.

12.2. Weitere Funktionen

  • Umfragen (Verschiedenes > Umfragen): Umfragen mit Einfachauswahl-, Mehrfachauswahl- und Textfragen erstellen, Teilnehmende einladen und die Ergebnisse exportieren.

  • Merlin-Word®-Vorlagen (Verschiedenes > Merlin-Word®-Vorlagen): Word-Dokumente wie Verträge oder Briefe aus Vorlagen mit Variablen erzeugen, auch als Serienbriefe aus einer Excel-Tabelle.

  • Lizenzen / Hardware (Verschiedenes > Lizenzen / Hardware): Softwarelizenzen, Lizenzschlüssel und ihre Nutzung verwalten.

  • Skillmatrix (Projektmanagement): eigene Fähigkeiten und Interessen bewerten und die Fähigkeiten der Kolleg:innen sehen.

13. Datenschutz

13.1. Passwörter

Passwörter werden in der Datenbank nur als gesalzene und gepfefferte Hashes gespeichert. Direkt nach der Verwendung von Passwörtern (etwa auf der Anmeldeseite) werden alle Passwortvariablen gelöscht. Passwörter erscheinen in keinem Eintrag einer Logdatei.

13.2. Änderungshistorie

Alle Änderungen an Entitäten (Anlegen, Ändern, Löschen) werden mit Zeitstempel, dem auslösenden Benutzer und den geänderten Feldern mit altem und neuem Wert gespeichert. Die Änderungshistorie wird auf der Bearbeitungsseite einer Entität angezeigt. Einzelne spezielle Felder sind nicht Teil dieses Historienmechanismus.

13.3. Protokollierung

Zugriffsverletzungen und Aktionen von Benutzern (etwa Änderungen an Entitäten) sowie alle Fehlermeldungen werden in Logdateien gespeichert. Die Logdatei ist wichtig für die Analyse von Fehlern usw.

13.4. Telefonate und SMS

Über ProjectForge® gestartete Telefonate und versendete SMS werden protokolliert, einschließlich des Benutzers und der beteiligten Telefonnummern.

14. Glossar

Die Entwickler von ProjectForge® haben für einige Finanzbegriffe die deutsche Sprache verwendet. Heute ist Englisch die Hauptsprache der Entwicklung (für Klassen, Dokumentation usw.). Hier finden sich Übersetzungen und Beschreibungen häufig verwendeter Begriffe.

Deutsch Englisch Beschreibung

Aufgabe

task

Der Begriff Aufgabe wurde durch 'Strukturelement' ersetzt, weil solche Elemente nicht nur Aufgaben darstellen, sondern Kunden, Projekte, Releases, Aufgaben usw.

Auftrag

order

Beleg

receipt

Betrag

amount

Brutto

gross (amount)

Buchungssatz

accounting record

Buchungssätze sind Entitäten, die aus externen Finanzsystemen importiert werden (z. B. DATEV in Deutschland). Der empfohlene Ablauf ist, Rechnungen, Gehälter der Mitarbeitenden usw. mit ProjectForge® zu verwalten und die Daten dann in das externe Finanzsystem zu übernehmen. Die zurückimportierten Buchungssätze sollten mit den Daten in ProjectForge® übereinstimmen.
ProjectForge® und die Scripte funktionieren auch ohne Buchungssätze; die ursprünglichen Entitäten wie Rechnungen usw. lassen sich direkt in Scripten verwenden.
Der Plural von Buchungssatz lautet: Buchungssätze

BWA

business assessment

Begriff im Finanzmodul von ProjectForge® (betriebswirtschaftliche Auswertung).

DATEV

In Deutschland verbreitete Software für die Finanzbuchhaltung. ProjectForge® bietet Importschnittstellen.

Datum

date

Eingangsrechnung

incoming invoice

Wird für Eingangsrechnungen (Kreditoren) verwendet.

fakturiert

invoiced

Fibu

financial administration

Fibu ist die Abkürzung des deutschen Begriffs 'Finanzbuchhaltung'.

Gegenkonto

contra account

Begriff im Finanzmodul von ProjectForge®.

Kontenplan

chart of accounts

Begriff im Finanzmodul von ProjectForge®.

Konto

account

Begriff im Finanzmodul von ProjectForge®.

Kost

cost

Begriff im Finanzmodul von ProjectForge®. Kost1/Kost2 → cost 1/cost 2 ist die Kurzform von 'Kostenträger' (cost unit).

Kostenträger

cost unit

Begriff im Finanzmodul von ProjectForge®.

Kostenträgerart

type of cost unit

Begriff im Finanzmodul von ProjectForge®. Beispiele für Kostenträgerarten sind: 'Reisen', 'Akquise', 'Meetings' usw. Die Arten sind anpassbar und dienen dazu, verschiedene Kostenarten in Projekten und/oder unternehmensweit festzulegen.

Kostenzuweisung

cost assignment

Begriff im Finanzmodul von ProjectForge®. Kosten wie Gehälter der Mitarbeitenden, Positionen von Rechnungen (eingehend und ausgehend) usw. werden Kostenträgern zugewiesen.

Kunde

customer

Menge

quantity

Netto

net (amount)

Projekt

project

Rechnung

invoice

Wird für Ausgangsrechnungen (Debitoren) verwendet.

Sonderurlaub

special leave

Urlaub, der nicht vom Urlaubskonto abgeht.

Urlaub

vacation, leave