Naar hoofdinhoud
Professional Services Automation (PSA)

Foutmeldingen in PSA for Odoo: een voorbeeld, melding voor melding

Op de algemene Access denied na vertelt elke foutmelding van Professional Services Automation (PSA) for Odoo wat er ontbreekt: een rol (zoals Operations Directors voor het importeren van tarieven), een vereiste van de mijlpaal (bijlage, interne goedkeuring of acceptatie door de klant) of een bepaalde status van het contract, de wijzigingsopdracht of het verzoek. Je lost het op door aan die voorwaarde te voldoen, niet door het opnieuw te proberen. Hieronder zie je het aan de hand van een verzonnen adviesbureau dat de flow doorloopt en elke melding tegenkomt.

FlexigoTech · Verantwoordelijk: Víctor Gómez · Bijgewerkt op 4 november 2026

In het kort

Versies
Odoo 17, 18 en 19
Gecontroleerd
in de broncode van de module, versie 19.0 · in de bronnen onderaan
Leestijd
7 min

Een verzonnen adviesbureau dat PSA in gebruik neemt

Voorbeeld Fictief geval: het bedrijf en de cijfers zijn verzonnen om de werkwijze uit te leggen.

Estudio Ribera is een verzonnen adviesbureau dat net Professional Services Automation (PSA) for Odoo heeft geïnstalleerd. Marta, verantwoordelijk voor operations, wil de tarieven inladen, een contract met mijlpalen klaarzetten en aan de slag gaan voor een klant. Onderweg krijgt ze een flink deel van de foutmeldingen van de module te zien. We lopen ze door in de volgorde waarin ze verschijnen: de letterlijke tekst, wat die betekent en wat ze doet om verder te kunnen.

Als eerste opent Marta de instellingen van de module. Daar krijgt ze geen foutmelding.

Odoo-instellingen in de sectie PSA met het veld WIP Account leeg en het configuratievakje niet aangevinkt
De PSA-instellingen zoals Marta ze aantreft, met WIP Account leeg.

Wil je nalezen welke menu's de module toevoegt en welke stappen elk record doorloopt, kijk dan bij hoe PSA van binnen werkt.

Tarieven: wie ze mag importeren en wie ze mag wijzigen

Het eerste wat Marta probeert, is het tarief van het bureau importeren. De module houdt haar tegen met Only Operations Directors can import rate cards. De melding is duidelijk: rate cards importeren is voorbehouden aan de rol Operations Directors, en Marta's gebruiker heeft die niet. Ze heeft twee opties: iemand met die rol doet de import, of degene die de gebruikers in haar Odoo beheert kent haar de rol toe, als dat bij haar past.

Lijst Rate Cards van de PSA-module met één actief record, Standard Rate Card 2024 (Demo), in EUR
De lijst Rate Cards met demodata: alleen Standard Rate Card 2024 (Demo) staat erin.

Met het tarief ingeladen wil Marta een klant een ander tarief geven. Ze krijgt Only PSA Operations users can override billing rates.: factuurtarieven aanpassen is voorbehouden aan gebruikers van PSA Operations. Een collega met die rol probeert het, laat de reden leeg en krijgt A reason is mandatory for rate overrides. De oplossing: vul de reden van de wijziging in en sla opnieuw op.

Zie je ooit alleen Access denied, dan zegt de melding niet welk recht ontbreekt. Praktisch is het om te noteren waar je op dat moment mee bezig was en degene die de rechten beheert te vragen het na te kijken.

Lijst Utilization van de PSA-module met kolommen voor datum, werknemer, project, uren, tarief, factureerbaar bedrag, WIP-status en goedkeuring door de klant
De lijst Utilization, met het tarief en het factureerbare bedrag als kolommen.

Mijlpalen: wat elke mijlpaal vraagt voordat hij als bereikt telt

Het contract van Estudio Ribera heeft een eerste mijlpaal, «Analyse». Marta markeert hem als bereikt en de module antwoordt met Milestone '%s' requires a deliverable attachment before it can be marked as reached. (op het scherm staat de naam van de mijlpaal op de plek van %s). Die mijlpaal vraagt om een bijgevoegd opleveringsdocument voordat hij gesloten kan worden: Marta voegt het document toe en markeert hem opnieuw.

De tweede poging geeft Milestone '%s' requires internal approval before it can be marked as reached. Nu ontbreekt de interne goedkeuring van de mijlpaal. Zolang die er niet is, kan hij niet als bereikt worden gemarkeerd.

Als de interne goedkeuring rond is, verschijnt Milestone '%s' requires client acceptance before it can be marked as reached. Current state: %s. De acceptatie door de klant ontbreekt, en de melding vermeldt ook de huidige status (Current state).

Als Marta die goedkeuring bij de klant wil aanvragen, stuit ze op The customer of milestone '%s' has no portal access: grant it first, the approval page needs a login. De goedkeuringspagina vereist dat de klant inlogt, en die klant heeft geen portaaltoegang. Geef eerst portaaltoegang en herhaal dan de actie.

De laatste melding over mijlpalen werkt andersom: Milestone '%s' does not wait for a client approval. Die verschijnt als iemand een goedkeuring van de klant probeert vast te leggen op een mijlpaal die daar niet op wacht. Controleer of je de verkeerde mijlpaal hebt gekozen.

Rondleiding door de lijst Milestones Roll-up, de niet-factureerbare categorieën, de PSA-instellingen en de lijst Utilization
De schermen van de module die Marta doorloopt: mijlpalen met hun vakje voor bereikt, niet-factureerbare categorieën, instellingen en Utilization.

Wijzigingsopdrachten: de status bepaalt wat je kunt doen

Halverwege het project vraagt de klant om een grotere scope en Marta maakt een wijzigingsopdracht aan. Ze dient hem in en doet dat ongemerkt nog een keer: Only draft change orders can be submitted. Alleen opdrachten in concept kunnen worden ingediend, en deze was dat niet meer.

Daarna probeert een collega hem goed te keuren en krijgt User %(name)s has no pending approval step on this change order. De melding noemt de naam van de gebruiker en zegt dat die geen openstaande goedkeuringsstap heeft op deze opdracht. De goedkeuring moet komen van degene die die stap wel open heeft staan.

Tot slot wil Marta de opdracht doorvoeren voordat de klant heeft gereageerd: Only client-accepted change orders can be implemented. Alleen opdrachten die de klant al heeft geaccepteerd, kunnen worden doorgevoerd, dus ze moet op die acceptatie wachten.

Drie logs die je niet kunt wijzigen

Marta ziet een regel in een van de logs van de module en probeert die te corrigeren. Er zijn drie meldingen van dit type:

  • NTE audit log is immutable.
  • Portal action log is immutable.
  • Rate override log is immutable.

De melding zegt het al: die log is onveranderlijk. Het is geen rechtenprobleem dat je met een andere rol oplost.

Contracten en exports: de statussen die de module controleert

Aan het eind van het jaar wil Marta het ene contract beëindigen en een ander archiveren. Het eerste geeft Only active or suspended contracts can be terminated.: alleen actieve of opgeschorte contracten kunnen worden beëindigd. Het tweede Only terminated or suspended contracts can be archived.: alleen beëindigde of opgeschorte contracten kunnen worden gearchiveerd. Het contract dat ze wilde archiveren was nog actief, dus ze beëindigt het eerst en archiveert het daarna.

Er is nog één melding: Export can only be generated for pending or processing requests. De export wordt alleen gegenereerd voor verzoeken die openstaan of in behandeling zijn. Staat het verzoek niet in een van die statussen, dan genereert de module hem niet.

Wat je leert van het geval Estudio Ribera

Elk struikelblok van Marta was op te lossen door het eind van de melding te lezen: daar staat de ontbrekende rol, de vereiste van de mijlpaal of de benodigde status. Dit is het overzicht:

MeldingWanneer verschijnt hijWat doe je
Only Operations Directors can import rate cardsBij het importeren van rate cards zonder die rolLaat een Operations Director het doen of vraag de rol aan
Only PSA Operations users can override billing rates.Bij het wijzigen van een factuurtarief zonder die rolLaat een gebruiker van PSA Operations het doen
A reason is mandatory for rate overrides.Bij het wijzigen van een tarief zonder redenVul de reden in
Milestone '%s' requires a deliverable attachment...Bij het markeren van een mijlpaal als bereikt zonder opleveringVoeg de oplevering toe
Milestone '%s' requires internal approval...Bij het markeren van een mijlpaal als bereikt zonder interne goedkeuringRegel de interne goedkeuring
Milestone '%s' requires client acceptance...Bij het markeren van een mijlpaal als bereikt zonder acceptatie door de klantWacht op de acceptatie; de melding toont de huidige status
The customer of milestone '%s' has no portal access...De klant van de mijlpaal heeft geen portaaltoegangGeef portaaltoegang en herhaal
Only draft change orders can be submitted.Bij het indienen van een opdracht die niet in concept staatControleer de status van de opdracht
Only client-accepted change orders can be implemented.Bij het doorvoeren van een opdracht zonder acceptatie door de klantWacht tot de klant hem accepteert
Only active or suspended contracts can be terminated.Bij het beëindigen van een contract in een andere statusControleer de status van het contract
Only terminated or suspended contracts can be archived.Bij het archiveren van een actief contractBeëindig het eerst

Wil je rollen, mijlpalen en contracten goed voorbereiden voordat deze meldingen opduiken, kijk dan bij het in gebruik nemen van de module.

Hoe FlexigoTech je helpt

Bij FlexigoTech implementeren we Odoo 17, 18, 19 en 20 en ontwikkelen we connectoren en integraties op maat, dus we kunnen je helpen rollen te verdelen, mijlpalen voor te bereiden en de meldingen te bekijken die je in jouw situatie krijgt. De module staat in Odoo Apps voor 17, 18 en 19, voor € 9 per Odoo-versie, eenmalige betaling, excl. btw; de lokale dienst van FlexigoTech Cloud kost € 29 per maand of € 290 per jaar excl. btw (Pro: € 58 per maand of € 580 per jaar). Alle details vind je op de pagina van de module en op de pagina in Odoo Apps.

Lees verder

Hoe Professional Services Automation (PSA) for Odoo vanbinnen werktMenu's, geplande acties en de externe dienst van Professional Services Automation (PSA) for Odoo, term voor term uitgelegd voor wie Odoo al gebruikt.PSA for Odoo instellen: instellingen, projectvelden en de eerste weekZo zet je Professional Services Automation (PSA) op in Odoo 17, 18 en 19: de instellingen, de projectvelden en wat je de eerste week controleert.Professional Services Automation (PSA) for Odoo: zo weet je of het bij je bedrijf pastWat Professional Services Automation (PSA) for Odoo volgens de appvermelding wel en niet dekt, wat je vooraf controleert en voor welke Odoo-versies het er is.
Gecontroleerd in de broncode van de module (versie 19.0) en in de gelinkte bronnen

Bronnen

  • Broncode van de module: flexigo_psa_premium 19.0 (9670343f): controllers/portal.py
  • Broncode van de module: flexigo_psa_premium 19.0 (9670343f): controllers/rate_card_import.py
  • Broncode van de module: flexigo_psa_premium 19.0 (9670343f): models/account_analytic_line_ext.py
  • Broncode van de module: flexigo_psa_premium 19.0 (9670343f): models/project_milestone_ext.py
  • Broncode van de module: flexigo_psa_premium 19.0 (9670343f): models/psa_change_order.py
  • Broncode van de module: flexigo_psa_premium 19.0 (9670343f): models/psa_dsar_request.py
  • Broncode van de module: flexigo_psa_premium 19.0 (9670343f): models/psa_nte_audit_log.py
  • Broncode van de module: flexigo_psa_premium 19.0 (9670343f): models/psa_portal_action_log.py
  • Broncode van de module: flexigo_psa_premium 19.0 (9670343f): models/psa_rate_override_log.py
  • Broncode van de module: 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