Przejdź do głównej treści
Professional Services Automation (PSA)

Błędy PSA for Odoo: przykład krok po kroku, komunikat po komunikacie

Poza ogólnym Access denied każdy komunikat błędu w Professional Services Automation (PSA) for Odoo mówi, czego brakuje: roli (np. Operations Directors do importu stawek), wymogu kamienia milowego (załącznik, akceptacja wewnętrzna lub akceptacja klienta) albo konkretnego stanu umowy, zlecenia zmiany lub wniosku. Naprawiasz to, spełniając ten warunek, a nie próbując ponownie. Poniżej zobaczysz to na przykładzie fikcyjnej firmy doradczej, która przechodzi przez cały proces i trafia na każdy z komunikatów.

FlexigoTech · Odpowiada: Víctor Gómez · Aktualizacja: 4 listopada 2026

Najważniejsze

Wersje
Odoo 17, 18 i 19
Sprawdzone
w kodzie źródłowym modułu, wersja 19.0 · w źródłach podanych na końcu
Czas czytania
6 min

Fikcyjna firma doradcza wdraża PSA

Przykład Przypadek poglądowy: firma i jej dane są zmyślone, żeby pokazać przebieg.

Estudio Ribera to fikcyjna firma doradcza, która właśnie zainstalowała Professional Services Automation (PSA) for Odoo. Marta, kierowniczka operacyjna, chce wczytać stawki, przygotować umowę z kamieniami milowymi i zacząć pracę dla klienta. Po drodze trafia na sporą część komunikatów błędów modułu. Omawiamy je w kolejności, w jakiej się jej pojawiają: dosłowny tekst, co oznacza i co Marta robi, żeby iść dalej.

Na początek Marta otwiera ustawienia modułu. Tam nie pojawia się żaden błąd.

Ustawienia Odoo w sekcji PSA z pustym polem WIP Account i niezaznaczonym polem konfiguracji
Ustawienia PSA w stanie, w jakim zastaje je Marta, z pustym WIP Account.

Jeśli chcesz przejrzeć, jakie menu dodaje moduł i przez co przechodzi każdy rekord, zajrzyj do artykułu jak PSA działa od środka.

Stawki: kto może je importować, a kto zmieniać

Najpierw Marta próbuje zaimportować cennik stawek firmy. Moduł zatrzymuje ją komunikatem Only Operations Directors can import rate cards. Sprawa jest jasna: import rate cards należy do roli Operations Directors, a użytkownik Marty jej nie ma. Są dwa wyjścia: import wykonuje ktoś z tą rolą albo osoba zarządzająca użytkownikami w Odoo nadaje jej tę rolę, jeśli jest to uzasadnione.

Lista Rate Cards w module PSA z jednym aktywnym rekordem, Standard Rate Card 2024 (Demo), w EUR
Lista Rate Cards z danymi demonstracyjnymi: widać tylko Standard Rate Card 2024 (Demo).

Po wczytaniu stawek Marta chce zastosować dla jednego klienta inną stawkę. Dostaje Only PSA Operations users can override billing rates.: zmiana stawek rozliczeniowych jest zarezerwowana dla użytkowników PSA Operations. Współpracownik z tą rolą próbuje, zostawia pusty powód i dostaje A reason is mandatory for rate overrides. Rozwiązanie: wpisać powód zmiany i zapisać ponownie.

Jeśli kiedyś zobaczysz samo Access denied, komunikat nie mówi, którego uprawnienia brakuje. W praktyce warto zanotować, co wtedy robiłeś, i poprosić osobę zarządzającą uprawnieniami o sprawdzenie.

Lista Utilization w module PSA z kolumnami daty, pracownika, projektu, godzin, stawki, kwoty do zafakturowania, stanu WIP i akceptacji klienta
Lista Utilization ze stawką i kwotą do zafakturowania w kolumnach.

Kamienie milowe: czego wymaga każdy z nich, zanim zostanie osiągnięty

Umowa Estudio Ribera ma pierwszy kamień milowy, «Analiza». Marta oznacza go jako osiągnięty, a moduł odpowiada Milestone '%s' requires a deliverable attachment before it can be marked as reached. (na ekranie zamiast %s widać nazwę kamienia milowego). Ten kamień milowy wymaga załączonego produktu prac przed zamknięciem: Marta dołącza dokument i oznacza go ponownie.

Druga próba daje Milestone '%s' requires internal approval before it can be marked as reached. Teraz brakuje akceptacji wewnętrznej. Dopóki jej nie ma, kamienia milowego nie można oznaczyć jako osiągniętego.

Po akceptacji wewnętrznej pojawia się Milestone '%s' requires client acceptance before it can be marked as reached. Current state: %s. Brakuje akceptacji klienta, a komunikat podaje bieżący stan (Current state).

Gdy Marta próbuje poprosić klienta o tę akceptację, trafia na The customer of milestone '%s' has no portal access: grant it first, the approval page needs a login. Strona akceptacji wymaga zalogowania się klienta, a ten klient nie ma dostępu do portalu. Najpierw trzeba nadać mu dostęp do portalu i powtórzyć czynność.

Ostatni komunikat dotyczący kamieni milowych działa odwrotnie: Milestone '%s' does not wait for a client approval. Pojawia się przy próbie zarejestrowania akceptacji klienta dla kamienia milowego, który jej nie oczekuje. Sprawdź, czy nie wybrałeś złego kamienia milowego.

Przegląd listy Milestones Roll-up, kategorii niefakturowanych, ustawień PSA i listy Utilization
Ekrany modułu, przez które przechodzi Marta: kamienie milowe z polem osiągnięcia, kategorie niefakturowane, ustawienia i Utilization.

Zlecenia zmiany: o tym, co możesz zrobić, decyduje stan

W połowie projektu klient prosi o rozszerzenie zakresu i Marta tworzy zlecenie zmiany. Wysyła je, a potem nieświadomie wysyła ponownie: Only draft change orders can be submitted. Wysłać można tylko zlecenia w wersji roboczej, a to już nią nie było.

Następnie współpracownik próbuje je zaakceptować i dostaje User %(name)s has no pending approval step on this change order. Komunikat podaje nazwę użytkownika i informuje, że nie ma on żadnego oczekującego kroku akceptacji w tym zleceniu. Zaakceptować musi osoba, która ma ten krok oczekujący.

Na koniec Marta chce wprowadzić zlecenie, zanim klient odpowie: Only client-accepted change orders can be implemented. Wprowadzić można tylko zlecenia zaakceptowane już przez klienta, więc trzeba poczekać na tę akceptację.

Trzy logi, których nie można zmieniać

Marta zauważa wpis w jednym z logów modułu i próbuje go poprawić. Są trzy komunikaty tego typu:

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

Komunikat mówi wszystko: ten log jest niezmienny. To nie problem z uprawnieniami, który rozwiąże inna rola.

Umowy i eksporty: stany, które sprawdza moduł

Na koniec roku Marta chce rozwiązać jedną umowę i zarchiwizować drugą. Pierwsza daje Only active or suspended contracts can be terminated.: rozwiązać można tylko umowy aktywne lub zawieszone. Druga Only terminated or suspended contracts can be archived.: zarchiwizować można tylko rozwiązane lub zawieszone. Umowa, którą chciała zarchiwizować, była nadal aktywna, więc najpierw ją rozwiązuje, a potem archiwizuje.

Zostaje jeszcze jeden komunikat: Export can only be generated for pending or processing requests. Eksport generuje się tylko dla wniosków oczekujących lub w trakcie przetwarzania. Jeśli wniosek nie jest w jednym z tych stanów, moduł go nie wygeneruje.

Czego uczy przypadek Estudio Ribera

Każde potknięcie Marty rozwiązało się po przeczytaniu końcówki komunikatu: tam jest brakująca rola, wymóg kamienia milowego lub wymagany stan. Oto podsumowanie:

KomunikatKiedy się pojawiaCo zrobić
Only Operations Directors can import rate cardsPrzy imporcie rate cards bez tej roliZlecić to Operations Director lub poprosić o rolę
Only PSA Operations users can override billing rates.Przy zmianie stawki rozliczeniowej bez tej roliZlecić to użytkownikowi PSA Operations
A reason is mandatory for rate overrides.Przy zmianie stawki bez powoduWpisać powód
Milestone '%s' requires a deliverable attachment...Przy oznaczaniu kamienia milowego bez produktu pracDołączyć produkt prac
Milestone '%s' requires internal approval...Przy oznaczaniu kamienia milowego bez akceptacji wewnętrznejUzyskać akceptację wewnętrzną
Milestone '%s' requires client acceptance...Przy oznaczaniu kamienia milowego bez akceptacji klientaPoczekać na akceptację; komunikat podaje bieżący stan
The customer of milestone '%s' has no portal access...Klient kamienia milowego nie ma dostępu do portaluNadać dostęp do portalu i powtórzyć
Only draft change orders can be submitted.Przy wysyłaniu zlecenia, które nie jest w wersji roboczejSprawdzić stan zlecenia
Only client-accepted change orders can be implemented.Przy wprowadzaniu zlecenia bez akceptacji klientaPoczekać, aż klient je zaakceptuje
Only active or suspended contracts can be terminated.Przy rozwiązywaniu umowy w innym stanieSprawdzić stan umowy
Only terminated or suspended contracts can be archived.Przy archiwizacji aktywnej umowyNajpierw ją rozwiązać

Aby przygotować role, kamienie milowe i umowy, zanim pojawią się te komunikaty, zajrzyj do artykułu o wdrożeniu modułu.

Jak pomoże Ci FlexigoTech

W FlexigoTech wdrażamy Odoo 17, 18, 19 i 20 oraz tworzymy konektory i integracje na zamówienie, więc możemy pomóc Ci rozdzielić role, przygotować kamienie milowe i przeanalizować komunikaty, które pojawiają się w Twojej instalacji. Moduł jest dostępny w Odoo Apps dla wersji 17, 18 i 19 w cenie 9 € za wersję Odoo, jednorazowo, netto (bez VAT); lokalna usługa FlexigoTech Cloud kosztuje 29 €/mies. lub 290 €/rok netto (bez VAT) (Pro: 58 €/mies. lub 580 €/rok). Wszystkie szczegóły znajdziesz na stronie modułu i na jego karcie w Odoo Apps.

Czytaj dalej

Jak działa Professional Services Automation (PSA) for Odoo od środkaMenu, zaplanowane akcje i usługa zewnętrzna Professional Services Automation (PSA) for Odoo, omówione pojęcie po pojęciu dla osób, które już używają Odoo.Wdrożenie PSA for Odoo: ustawienia, pola projektu i pierwszy tydzieńJak uruchomić Professional Services Automation (PSA) w Odoo 17, 18 i 19: ustawienia, pola projektu i co sprawdzić w pierwszym tygodniu pracy.Professional Services Automation (PSA) for Odoo: jak sprawdzić, czy pasuje do Twojej firmyCo obejmuje, a czego nie Professional Services Automation (PSA) for Odoo według karty aplikacji, co sprawdzić przed instalacją i dla jakich wersji Odoo jest dostępny.
Sprawdzone w kodzie źródłowym modułu (wersja 19.0) i w podlinkowanych źródłach

Źródła