Eine erfundene Beratungsfirma führt PSA ein
Beispiel Fiktiver Fall: Firma und Zahlen sind erfunden, um den Ablauf zu zeigen.
Estudio Ribera ist eine erfundene Beratungsfirma, die gerade Professional Services Automation (PSA) for Odoo installiert hat. Marta, ihre Leiterin Operations, möchte die Tarife laden, einen Vertrag mit Meilensteinen anlegen und mit der Arbeit für einen Kunden beginnen. Unterwegs begegnet ihr ein guter Teil der Fehlermeldungen des Moduls. Wir gehen sie in der Reihenfolge durch, in der sie auftauchen: der genaue Wortlaut, was er bedeutet und was sie tut, um weiterzukommen.
Zuerst öffnet Marta die Einstellungen des Moduls. Dort erscheint kein Fehler.

WIP Account.Welche Menüs das Modul hinzufügt und welche Schritte jeder Datensatz durchläuft, lesen Sie unter wie PSA intern funktioniert.
Tarife: wer sie importieren und wer sie ändern darf
Als Erstes versucht Marta, den Tarif der Beratungsfirma zu importieren. Das Modul stoppt sie mit Only Operations Directors can import rate cards. Die Meldung ist eindeutig: Der Import von Rate Cards ist Sache der Rolle Operations Directors, und Martas Benutzer hat sie nicht. Es gibt zwei Wege: Jemand mit dieser Rolle übernimmt den Import, oder wer die Benutzer in ihrem Odoo verwaltet, weist ihr die Rolle zu, sofern das passt.

Mit geladenem Tarif möchte Marta einem Kunden einen abweichenden Tarif geben. Sie erhält Only PSA Operations users can override billing rates.: Das Ändern von Abrechnungstarifen ist Benutzern von PSA Operations vorbehalten. Ein Kollege mit dieser Rolle versucht es, lässt die Begründung leer und bekommt A reason is mandatory for rate overrides. Die Lösung: den Grund der Änderung eintragen und erneut speichern.
Sehen Sie irgendwann ein bloßes Access denied, verrät die Meldung nicht, welche Berechtigung fehlt. Praktisch ist es, zu notieren, was Sie gerade getan haben, und die Person, die die Berechtigungen verwaltet, um Prüfung zu bitten.

Meilensteine: was jeder verlangt, bevor er als erreicht gilt
Der Vertrag von Estudio Ribera hat einen ersten Meilenstein, „Analyse“. Marta markiert ihn als erreicht, und das Modul antwortet mit Milestone '%s' requires a deliverable attachment before it can be marked as reached. (auf dem Bildschirm steht statt %s der Name des Meilensteins). Dieser Meilenstein verlangt ein angehängtes Arbeitsergebnis, bevor er abgeschlossen werden kann: Marta hängt das Dokument an und markiert ihn erneut.
Der zweite Versuch ergibt Milestone '%s' requires internal approval before it can be marked as reached. Jetzt fehlt die interne Freigabe des Meilensteins. Solange sie nicht vorliegt, lässt er sich nicht als erreicht markieren.
Nach der internen Freigabe erscheint Milestone '%s' requires client acceptance before it can be marked as reached. Current state: %s. Es fehlt die Abnahme durch den Kunden, und die Meldung nennt zusätzlich den aktuellen Status (Current state).
Als Marta diese Freigabe beim Kunden anfordern will, stößt sie auf The customer of milestone '%s' has no portal access: grant it first, the approval page needs a login. Die Freigabeseite setzt voraus, dass sich der Kunde anmeldet, und dieser Kunde hat keinen Portalzugang. Zuerst muss ihm Portalzugang gewährt und dann die Aktion wiederholt werden.
Die letzte Meilenstein-Meldung funktioniert umgekehrt: Milestone '%s' does not wait for a client approval. Sie erscheint, wenn jemand eine Kundenfreigabe für einen Meilenstein erfassen will, der keine erwartet. Prüfen Sie, ob Sie den falschen Meilenstein gewählt haben.

Änderungsaufträge: der Status entscheidet, was möglich ist
Mitten im Projekt wünscht der Kunde einen größeren Umfang, und Marta legt einen Änderungsauftrag an. Sie reicht ihn ein und reicht ihn versehentlich noch einmal ein: Only draft change orders can be submitted. Nur Aufträge im Entwurf lassen sich einreichen, und dieser war es nicht mehr.
Danach versucht ein Kollege, ihn freizugeben, und erhält User %(name)s has no pending approval step on this change order. Die Meldung nennt den Benutzer und besagt, dass er bei diesem Auftrag keinen offenen Freigabeschritt hat. Freigeben muss, wer diesen Schritt tatsächlich offen hat.
Schließlich möchte Marta den Auftrag umsetzen, bevor der Kunde geantwortet hat: Only client-accepted change orders can be implemented. Umgesetzt werden nur Aufträge, die der Kunde bereits angenommen hat, also heißt es, auf diese Annahme zu warten.
Drei Protokolle, die keine Änderungen zulassen
Marta sieht einen Eintrag in einem der Protokolle des Moduls und versucht, ihn zu korrigieren. Es gibt drei Meldungen dieser Art:
NTE audit log is immutable.Portal action log is immutable.Rate override log is immutable.
Die Meldung sagt es: Dieses Protokoll ist unveränderlich. Es ist kein Berechtigungsproblem, das sich mit einer anderen Rolle lösen ließe.
Verträge und Exporte: die Status, die das Modul prüft
Zum Jahresende möchte Marta einen Vertrag beenden und einen anderen archivieren. Der erste liefert Only active or suspended contracts can be terminated.: Nur aktive oder ausgesetzte Verträge lassen sich beenden. Der zweite Only terminated or suspended contracts can be archived.: Archiviert werden nur beendete oder ausgesetzte. Der Vertrag, den sie archivieren wollte, war noch aktiv, also beendet sie ihn zuerst und archiviert ihn danach.
Eine Meldung bleibt noch: Export can only be generated for pending or processing requests. Der Export wird nur für ausstehende oder in Bearbeitung befindliche Anfragen erzeugt. Ist die Anfrage in keinem dieser Status, erzeugt das Modul ihn nicht.
Was der Fall Estudio Ribera lehrt
Jedes von Martas Hindernissen ließ sich lösen, indem sie das Ende der Meldung las: Dort stehen die fehlende Rolle, die Voraussetzung des Meilensteins oder der nötige Status. Hier die Zusammenfassung:
| Meldung | Wann sie erscheint | Was zu tun ist |
|---|---|---|
Only Operations Directors can import rate cards | Beim Import von Rate Cards ohne diese Rolle | Von einem Operations Director erledigen lassen oder die Rolle anfordern |
Only PSA Operations users can override billing rates. | Beim Ändern eines Abrechnungstarifs ohne diese Rolle | Von einem Benutzer von PSA Operations erledigen lassen |
A reason is mandatory for rate overrides. | Beim Ändern eines Tarifs ohne Begründung | Die Begründung eintragen |
Milestone '%s' requires a deliverable attachment... | Beim Markieren eines Meilensteins als erreicht ohne Arbeitsergebnis | Das Arbeitsergebnis anhängen |
Milestone '%s' requires internal approval... | Beim Markieren eines Meilensteins als erreicht ohne interne Freigabe | Die interne Freigabe einholen |
Milestone '%s' requires client acceptance... | Beim Markieren eines Meilensteins als erreicht ohne Abnahme durch den Kunden | Auf die Abnahme warten; die Meldung nennt den aktuellen Status |
The customer of milestone '%s' has no portal access... | Der Kunde des Meilensteins hat keinen Portalzugang | Portalzugang gewähren und wiederholen |
Only draft change orders can be submitted. | Beim Einreichen eines Auftrags, der nicht im Entwurf ist | Den Status des Auftrags prüfen |
Only client-accepted change orders can be implemented. | Beim Umsetzen eines Auftrags ohne Annahme durch den Kunden | Warten, bis der Kunde ihn annimmt |
Only active or suspended contracts can be terminated. | Beim Beenden eines Vertrags in einem anderen Status | Den Status des Vertrags prüfen |
Only terminated or suspended contracts can be archived. | Beim Archivieren eines aktiven Vertrags | Ihn vorher beenden |
Wie Sie Rollen, Meilensteine und Verträge vorbereiten, bevor diese Meldungen auftauchen, lesen Sie unter Einrichtung des Moduls.
Wie FlexigoTech Sie unterstützt
Bei FlexigoTech implementieren wir Odoo 17, 18, 19 und 20 und entwickeln individuelle Konnektoren und Integrationen. Daher können wir Ihnen helfen, Rollen zu verteilen, Meilensteine vorzubereiten und die Meldungen zu prüfen, die in Ihrem Fall auftreten. Das Modul ist in Odoo Apps für 17, 18 und 19 erhältlich, für 9 € pro Odoo-Version, Einmalzahlung, zzgl. MwSt.; der lokale Service von FlexigoTech Cloud kostet 29 €/Monat oder 290 €/Jahr zzgl. MwSt. (Pro: 58 €/Monat oder 580 €/Jahr). Alle Details finden Sie auf der Modulseite und in seinem Eintrag in Odoo Apps.
Weiterlesen
Geprüft im Quellcode des Moduls (Version 19.0) und in den verlinkten Quellen
Quellen
- Quellcode des Moduls: flexigo_psa_premium 19.0 (9670343f): controllers/portal.py
- Quellcode des Moduls: flexigo_psa_premium 19.0 (9670343f): controllers/rate_card_import.py
- Quellcode des Moduls: flexigo_psa_premium 19.0 (9670343f): models/account_analytic_line_ext.py
- Quellcode des Moduls: flexigo_psa_premium 19.0 (9670343f): models/project_milestone_ext.py
- Quellcode des Moduls: flexigo_psa_premium 19.0 (9670343f): models/psa_change_order.py
- Quellcode des Moduls: flexigo_psa_premium 19.0 (9670343f): models/psa_dsar_request.py
- Quellcode des Moduls: flexigo_psa_premium 19.0 (9670343f): models/psa_nte_audit_log.py
- Quellcode des Moduls: flexigo_psa_premium 19.0 (9670343f): models/psa_portal_action_log.py
- Quellcode des Moduls: flexigo_psa_premium 19.0 (9670343f): models/psa_rate_override_log.py
- Quellcode des Moduls: flexigo_psa_premium 19.0 (9670343f): models/psa_retainer_contract.py
- apps.odoo.com/apps/modules/19.0/flexigo_psa_premium
- apps.odoo.com/apps/modules/17.0/flexigo_psa_premium
- apps.odoo.com/apps/modules/18.0/flexigo_psa_premium
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
