How-to: Aufgabenwiederholungen in Odoo

Die technischen Feinheiten der Odoo-Projekt-Funktion

In der dynamischen Welt der Unternehmensführung ist es der Schlüssel zum Erfolg, organisiert zu bleiben. Für Unternehmen, die mit Odoo arbeiten, ist die Einführung von wiederkehrenden Aufgaben im Jahr 2020 ein entscheidender Schritt. Wiederkehrende Aufgaben ermöglichen es den Benutzern, Routinetätigkeiten zu automatisieren und sicherzustellen, dass wichtige Aktionen nicht übersehen werden. Diese Funktion ist nahtlos in die Odoo v16-Plattform integriert und bietet einen flexiblen und benutzerfreundlichen Ansatz für die Verwaltung laufender Aufgaben.

Die derzeit verfügbare Dokumentation (siehe https://www.odoo.com/documentation/16.0/applications/services/project/tasks/recurring_tasks.html) gibt jedoch nur einen groben Überblick über diese Funktion und lässt die Details außen vor - etwa wann und wie genau Aufgaben erstellt werden. In diesem Blog-Artikel werden wir auf genau diese Details eingehen. Beachten Sie, dass dies keine Einführung zu wiederkehrenden Aufgaben ist, sondern eher für versierte Power-User:innen oder Entwickler:innen gedacht ist.

Hinter den Kulissen der wiederkehrenden Aufgaben

Wenn Sie die Wiederholung auf Aufgabenebene aktivieren (Aufgabe öffnen und auf Wiederkehrend => Wiederkehrend klicken), können Sie das Wiederholungsintervall auswählen. Wenn Sie diese Information speichern, speichert Odoo diese Information nicht nur im project.task-Modell, sondern auch in einem neu angelegten Datensatz vom Typ "project.task.recurrence". Von nun an wird dieses Modell alle Informationen über Ihre Wiederholung enthalten und auch alle Aufgaben gruppieren, die aus dieser Wiederholung heraus erstellt worden sind. Der Endbenutzer wird sich wahrscheinlich nie direkt mit dem Modell project.task.recurrence befassen müssen, da Änderungen in jeder wiederkehrenden Aufgabe vorgenommen werden können, und automatisch auf die Wiederholung übertragen werden.

Wie und wann werden wiederkehrende Aufgaben erstellt?

Odoo verwendet eine geplante Aktion, um wiederkehrende Aufgaben zu erstellen. Um die geplante Aktion zu öffnen, aktivieren Sie den Entwicklermodus in Odoo, und navigieren Sie zu Einstellungen => Technisch => Geplante Aktionen => "Projekt: Serienaufgaben anlegen":

Hier können Sie die geplante Aktion aktivieren oder deaktivieren, und auch das Intervall und die Zeit, zu der die geplante Aktion läuft, ändern. In unserem Beispiel wird die geplante Aktion jeden Tag um ca. 4 Uhr morgens ausgeführt. Die geplante Aktion ruft die Funktion "_cron_create_recurring_tasks" des Modells "task.recurrence" auf.

Was genau passiert, wenn _cron_create_recurring_tasks ausgelöst wird?

Wie bereits erwähnt, wird die geplante Aktion im Modell "task.recurrence" ausgeführt. Wenn die Aktion ausgeführt wird:

  • Es werden alle Aufgabenwiederholungen (task.recurrence) mit einem "next_recurrent_date", das kleiner oder gleich dem aktuellen Datum ist, gesucht.
  • Für alle gefundenen wiederkehrenden Aufgabenwiederholungen wird eine Methode namens _create_next_task aufgerufen. Diese Methode erstellt die nächste Aufgabe, indem sie die letzte Aufgabe einer task.recurrence abruft und alle Felder kopiert, die in der Methode "_get_recurring_fields()" definiert sind. Aktuell sind diese Felder wie folgt definiert:

  • Es werden auch alle Unteraufgaben der wiederkehrenden Aufgabe kopiert. Wenn Unteraufgaben ihre eigene Wiederholung haben, wird die Wiederholung kopiert, wodurch ihr "Eigenleben" entsteht und sie von der ursprünglichen Unteraufgabe entkoppelt wird.
  • Darüber hinaus wird die Aufgabenstufe auf die erste verfügbare Stufe innerhalb des Projekts gesetzt. Ist keine Stufe verfügbar, wird sie auf die Stufe der letzten Aufgabe gesetzt, von der sie kopiert wurde.
  • Nachdem die Erstellung der nächsten Aufgabe abgeschlossen ist, wird das "next_recurrent_date" gesetzt, wenn:
    • es noch offene Wiederholungen gibt
    • das aktuelle Datum immer noch kleiner ist als das "bis"-Datum, das in der Aufgaben-Wiederholungs-Definition festgelegt wurde, oder auf "für immer" gesetzt wird

Key takeaways aus diesem Prozess:

  • Wiederkehrende Aufgaben werden nicht im Voraus erstellt, sondern erst dann, wenn das "next_recurrent_date" einer task.recurrence kleiner oder gleich dem aktuellen Datum ist.
  • Alle Informationen werden von der "letzten" verfügbaren Aufgabe (maximale Datenbank-Id) innerhalb einer Wiederholung übernommen.
  • Ob eine neue Aufgabe erstellt wird oder nicht, hängt nicht von der Stufe der Aufgabe ab (erledigt oder nicht).
  • Selbst wenn die geplante Aktion mehrmals am Tag ausgeführt wird, hat dies keinen Einfluss auf die Anzahl der erstellten Aufgaben, da das "next_recurrence_date" nach der ersten Erstellung einer Aufgabe festgelegt wird.

Zusätzlich good-to-know:

  • Bei der Bearbeitung einer bestehenden Aufgabe, bei der die Wiederholung aktiviert ist, wird der Benutzer gefragt, ob er "diese Aufgabe", "diese und folgende Aufgaben" oder "alle Aufgaben" bearbeiten möchte.
    Mit dieser Einstellung wird Odoo lediglich mitgeteilt, wie es mit bereits im System vorhandenen Aufgaben verfahren soll. Bei neu erstellten Aufgaben werden immer die Informationen aus der Aufgabe mit der höchsten Datenbank-ID (normalerweise die zuletzt erstellte) übernommen.
  • Odoo zeigt in der Aufgabe ein Informations-Snippet an, das die nächsten Erstellungsdaten der Wiederholung anzeigt. Dieses Snippet ist nur zum Zeitpunkt der Erstellung dieser Aufgabe gültig, da immer das aktuelle Datum als Startdatum für diese Simulation verwendet wird (siehe Funktion _get_recurrence_start_date() in der Funktion _compute_recurrence_message()). Wenn Sie eine bestehende Aufgabe öffnen (z.B. mit Wiederholung alle 3 Monate), könnte diese Information nicht korrekt sein.

  • Um genau zu sehen, wann die nächste Erstellung ausgelöst wird, muss man das entsprechende task.recurrence-model öffnen. Leider ist es nicht möglich, dies direkt über die Benutzeroberfläche in Odoo Standard zu tun. Ein Workaround wäre, das Feld recurrence-id in der Task-Form-Ansicht sichtbar zu machen. Das können Sie tun, indem Sie
    • den Entwicklermodus aktivieren
    • zu einer Aufgabe mit aktivierter Wiederholung navigieren
    • Klicken Sie auf das Käfer-Symbol (rechts oben) und wählen Sie "Ansicht bearbeiten: Form".
    • Suchen Sie nach einem xml-Tag mit dem Namen "recurrence_id", und setzen Sie invisible="1" auf invisible="0".

    • Speichern Sie und aktualisieren Sie die Seite. Ein Link zur task.recurrency sollte nun oben in der Formularansicht sichtbar sein:
    • Beachten Sie, dass diese Änderung für alle Benutzer sichtbar ist, daher sollten Sie Ihre Änderung so schnell wie möglich rückgängig machen. Beachten Sie ebenfalls, dass diese Änderung nur vorübergehend ist, da wir die Ansicht nicht korrekt überschrieben haben, um update-resistent zu sein. Wenn Sie das Projektmodul aktualisieren, wird diese Änderung überschrieben.
  • Wenn Sie die Wiederholung öffnen, sehen Sie alle zugewiesenen Aufgaben und auch das "Next recurrence Date", das Sie darüber informiert, wann die geplante Aktion wieder eine neue Aufgabe erstellen wird:

Conclusio

Wiederkehrende Aufgaben in Odoo definieren die Art und Weise, wie Unternehmen ihre Arbeitsabläufe verwalten, neu. Durch die Automatisierung von Routinetätigkeiten, die Rationalisierung von Planungsprozessen und die Bereitstellung aufschlussreicher Berichte ermöglicht Odoo v16 Unternehmen eine beispiellose Effizienz. Nutzen Sie die Macht der wiederkehrenden Aufgaben und heben Sie Ihr Unternehmensmanagement mit Odoo v16 auf ein neues Niveau.


Sollten Sie weitere Informationen zur Nutzung von Odoo benötigen, hilft Ihnen unter Expert:innen-Team natürlich gerne weiter!


Kontaktieren Sie uns


Bitte beachten Sie, dass Odoo ein sich schnell veränderndes System ist, an dem jeden Tag viele Verbesserungen vorgenommen werden. In diesem Blog-Artikel wird die Funktionalität der Aufgabenwiederholungsfunktion im November 2023 beschrieben.


Inventarverwaltung in Odoo
Verwalten und Warten Sie Ihr Inventar in Odoo.