Integracje / ERP / Odoo
Przewodnik po integracji Odoo ze SkyPlanner APS do harmonogramowania produkcji
Ten przewodnik pokazuje partnerom Odoo, programistom i osobom odpowiedzialnym za IT, jak połączyć Odoo Manufacturing ze SkyPlanner APS. Uzasadnienie biznesowe oraz opis możliwości przycisku Plan w Odoo znajdziesz na stronach Harmonogramowanie produkcji w Odoo i Czy Odoo obsługuje harmonogramowanie produkcji z uwzględnieniem rzeczywistych możliwości maszyn i pracowników?.
Odoo pozostaje systemem źródłowym dla produktów, zestawień materiałowych, operacji, zleceń wytwarzania, stanów magazynowych i kalkulacji kosztów. SkyPlanner tworzy harmonogram na podstawie tych danych, korzystając z silnika Arcturus. Integracja z Odoo działa w obu kierunkach:
- Do SkyPlanner trafiają zlecenia wytwarzania, zlecenia produkcyjne, operacje BoM, gniazda produkcyjne i zamówienia zakupu.
- Planowane terminy rozpoczęcia i zakończenia oraz gniazda produkcyjne są zapisywane z powrotem w
mrp.workorder. - Postęp prac i zarejestrowany czas wracają do Odoo jako Time Logs.
- Webhooki SkyPlanner przesyłają zmiany harmonogramu na bieżąco.
Podczas wdrożenia zespół SkyPlanner konfiguruje integrację przez standardowe zewnętrzne API Odoo, dostosowując ją do używanej wersji, hostingu i modyfikacji. Zapewnia też wsparcie po uruchomieniu produkcyjnym. Ten przewodnik jest przeznaczony dla partnerów i programistów, którzy chcą uczestniczyć w tych pracach lub samodzielnie tworzyć rozwiązania oparte na udokumentowanym REST API SkyPlanner (dokumentacja API). Obsługę produktów, materiałów i zamówień zakupu opisuje publiczna dokumentacja SkyPlanner.
Krok zerowy: sprawdź plan Odoo i hosting
Najpierw ustal, z jakiego wariantu Odoo korzysta klient. Od tego zależy sposób integracji.
| Środowisko | Zewnętrzne API | Moduły niestandardowe | Sposób integracji |
|---|---|---|---|
| Odoo Online, One App Free lub Standard | Nie | Nie | CSV/XLSX lub przejście na plan Custom |
| Odoo Online, plan Custom | Tak | Nie | Zewnętrzne API |
| Odoo.sh (plan Custom) | Tak | Tak | Zewnętrzne API, opcjonalnie moduł |
| Instalacja lokalna, Community lub Enterprise | Tak | Tak | Zewnętrzne API, opcjonalnie moduł |
Dokumentacja API Odoo podaje, że dostęp do zewnętrznego API jest „only available on Custom Odoo pricing plans” (dostępny tylko w planach Custom Odoo), a nie w One App Free ani Standard. Na stronie z cennikiem plan Standard opisano jako hostowany w Odoo Online „without custom modules” (bez modułów niestandardowych). Ustal to podczas rozpoznania potrzeb, a nie w połowie prac.
Możliwości integracji z Odoo
| Opcja | Wersje | Uwierzytelnianie | Rola w integracji z systemem harmonogramowania |
|---|---|---|---|
Zewnętrzne API JSON-2: POST /json/2/<model>/<method> | Nowość w wersji 19.0 | Klucz API w Authorization: bearer <key>, opcjonalnie nagłówek X-Odoo-Database | Domyślny wybór dla nowych integracji: search_read do odczytu, write do zapisu terminów z powrotem w Odoo |
Zewnętrzne XML-RPC / JSON-RPC: /xmlrpc/2, /jsonrpc, usługi common, object | Do wersji 19.0 włącznie; zaplanowane wycofanie | common.authenticate z loginem i hasłem lub kluczem API, następnie execute_kw | Wymagane u klientów korzystających z wersji od 16.0 do 18.0 |
| Własne kontrolery w module | Wszystkie | Osobno dla każdej trasy, np. auth='bearer' | Łączenie danych: MO wraz ze zleceniami produkcyjnymi w jednym wywołaniu |
| Reguły automatyzacji: „Send Webhook Notification” (wyślij powiadomienie webhook) | W dokumentacji od wersji 17.0 | Wychodzące żądanie POST pod adres URL | Wysyłanie danych po utworzeniu lub edycji MO i zleceń produkcyjnych |
| Import rekordów (CSV, XLSX) i eksport | Wszystkie | Sesja użytkownika | Dane do testów i jednorazowe wczytywanie danych podstawowych |
Już teraz przygotuj się na wycofanie tych interfejsów. Odoo zaplanowało wycofanie XML-RPC i JSON-RPC w Odoo 22 (jesień 2028) i Odoo Online 21.1 (zima 2027). Dla wersji 19.0 buduj integrację na JSON-2, a obsługę RPC dla starszych baz wydziel do jednego adaptera. Dzięki temu aktualizacja będzie wymagała zmiany tylko w jednym miejscu. Wycofanie nie obejmuje własnych kontrolerów z @route(type='jsonrpc').
Uwierzytelnianie
Utwórz osobne konto użytkownika do integracji z prawem odczytu w modułach Manufacturing i Inventory oraz prawem zapisu zleceń produkcyjnych. Wygeneruj dla niego klucz w Preferences > Account Security > New API Key. W wersji 19.0 klucze są ważne najwyżej trzy miesiące, więc warstwa pośrednia musi obsługiwać rotację kluczy i alerty o błędach uwierzytelniania. Bez tego wygaśnięcie klucza niezauważenie zatrzyma synchronizację. Po stronie SkyPlanner REST API korzysta z JWT, dlatego warstwa pośrednia przechowuje dane uwierzytelniające obu systemów.
Każde wywołanie JSON-2 odbywa się w osobnej transakcji SQL, więc zapis rozłożony na kilka wywołań nie jest atomowy. Zapisuj każde zlecenie produkcyjne osobno i rejestruj wynik każdej operacji.
Zdarzenia
Odoo wysyła zmiany za pomocą reguł automatyzacji. Reguła dla mrp.production lub mrp.workorder z wyzwalaczem On create and edit oraz akcją „Send Webhook Notification” (wyślij powiadomienie webhook) wysyła żądanie POST z wybranymi polami pod wskazany adres URL. Utwórz regułę w Studio lub w trybie deweloperskim, w formularzu Automation Rules. Uzupełnij ją o cykliczne odpytywanie przez search_read na podstawie write_date, aby wychwycić importy i wszystko, co pominęła reguła. W przeciwnym kierunku webhooki SkyPlanner wysyłają zmiany harmonogramu i statusów na bieżąco.
Nazwy pól różnią się między wersjami. W wersji 19.0 każda baza udostępnia listę swoich modeli, pól i metod pod /doc; w starszych wersjach wywołaj fields_get. Na tej podstawie przygotuj mapowanie — nie z pamięci.
Mapowanie danych z Odoo do SkyPlanner
| Model Odoo | Obiekt SkyPlanner | Kierunek | Częstotliwość |
|---|---|---|---|
product.product / product.template (default_code, uom_id, qty_available) | Produkt lub materiał | Odoo → SkyPlanner | Wczytanie początkowe, następnie codziennie lub po zmianie |
mrp.bom (product_tmpl_id, product_qty, produce_delay), mrp.bom.line (product_id, product_qty, operation_id), mrp.bom.byproduct | Produkt o strukturze wielopoziomowej, zapotrzebowanie materiałowe dla każdego etapu | Odoo → SkyPlanner | Po zmianie |
mrp.routing.workcenter (zakładka Operations: workcenter_id, sequence, time_mode, time_cycle_manual, blocked_by_operation_ids) | Etapy procesu wraz z kolejnością i czasem wykonania | Odoo → SkyPlanner | Po zmianie |
mrp.workcenter (resource_calendar_id, time_efficiency, time_start, time_stop, alternative_workcenter_ids) | Stanowisko robocze, wydajność, przygotowanie i sprzątanie, alternatywne stanowiska robocze | Odoo → SkyPlanner, następnie utrzymywane w SkyPlanner | Wczytanie początkowe |
mrp.workcenter.capacity (capacity) | Liczba sztuk na cykl, czasy przygotowania i sprzątania właściwe dla produktu | Odoo → SkyPlanner | Wczytanie początkowe |
resource.calendar, resource.calendar.attendance, resource.calendar.leaves | Zmiany robocze i nieobecności | Odoo → SkyPlanner | Wczytanie początkowe, nieobecności po zmianie |
mrp.production (product_id, product_qty, date_deadline, priority, state, workorder_ids) | Zlecenie z terminem realizacji i priorytetem | Odoo → SkyPlanner | Webhook po zatwierdzeniu oraz odpytywanie |
mrp.workorder (operation_id, workcenter_id, duration_expected, state) | Operacja na stanowisku roboczym | Odoo → SkyPlanner | Webhook oraz odpytywanie |
stock.quant, stock.move (ruchy magazynowe komponentów) | Stan magazynowy i zapotrzebowanie materiałowe do harmonogramowania według dostępności materiałów | Odoo → SkyPlanner | Cyklicznie, np. w odstępach od 15 do 60 minut |
purchase.order (partner_id, state), purchase.order.line (product_id, product_qty, date_planned, qty_received) | Zamówienia zakupu i materiały w drodze, dostępne w oczekiwanym terminie dostawy | Odoo → SkyPlanner | Webhook po zatwierdzeniu lub edycji zamówienia zakupu oraz to samo cykliczne odpytywanie |
| Planowane terminy rozpoczęcia i zakończenia oraz stanowisko robocze | mrp.workorder.date_start, date_finished, workcenter_id | SkyPlanner → Odoo | Po zmianie harmonogramu, przez webhook SkyPlanner |
| Mobile Confirmations, wpisy czasu pracy | mrp.workcenter.productivity (Time Logs: workcenter_id, workorder_id, date_start, date_end, loss_id) | SkyPlanner → Odoo | Przy każdym potwierdzeniu |
| Wykonana ilość, zakończenie operacji | qty_producing na zleceniu produkcyjnym, następnie button_finish; button_mark_done na MO | SkyPlanner → Odoo lub rejestracja w Odoo Shop Floor | Przy każdym potwierdzeniu |
Wzorce integracji
Najpierw dane podstawowe.
Wczytaj gniazda produkcyjne i kalendarze, a następnie produkty, BoM i operacje, które odwołują się do gniazd produkcyjnych. Podczas 30-dniowego okresu próbnego te same listy wczytuje się z plików wyeksportowanych do CSV. Narzędzie do importu i eksportu w Odoo działa w każdym widoku listy.
Synchronizacja zleceń.
Pobieraj MO w statusach confirmed i progress wraz z ich zleceniami produkcyjnymi. Pomiń robocze MO lub traktuj je jako wstępne zapotrzebowanie. Podzespoły z własnym BoM mogą trafiać do integracji jako oddzielne podrzędne MO, a Odoo planuje każde MO niezależnie. Zmapuj je na podprodukty w SkyPlanner, aby produkcja podzespołów kończyła się przed rozpoczęciem zlecenia nadrzędnego.
Zapis harmonogramu z powrotem do Odoo.
Po zmianie harmonogramu webhook SkyPlanner uruchamia integrację, która wywołuje metodę ORM write dla każdego objętego zmianą rekordu mrp.workorder. W Odoo 19.0 oznacza to jedno żądanie JSON-2 na zlecenie produkcyjne:
„ POST /json/2/mrp.workorder/write Authorization: bearer <api-key> {"ids": [4711], "vals": {"date_start": "2026-11-03 06:00:00", "date_finished": "2026-11-03 09:30:00", "workcenter_id": 7}} „
JSON-2 przyjmuje każdy argument metody po nazwie, a dodatkowo ids i context, więc argument z write(vals) trafia pod klucz vals. W wersjach od 16.0 do 18.0 to samo wywołanie ma postać execute_kw(db, uid, key, 'mrp.workorder', 'write', [[4711], vals]) przez XML-RPC lub JSON-RPC, a w wersji 16.0 klucze to date_planned_start i date_planned_finished. Daty i godziny przesyłaj w UTC. Kilka zasad pozwala uniknąć błędów przy zapisie:
- Przesyłaj obie daty w jednym wywołaniu.
- Dodawaj
workcenter_idtylko wtedy, gdy silnik wybrał alternatywną maszynę. - Zapisuj tylko pola związane z harmonogramowaniem — nigdy ilości ani BoM.
Zapis dat przesuwa rezerwację gniazda produkcyjnego w Odoo, dzięki czemu widoki planowania w Odoo pokazują plan ze SkyPlanner.
Dane z hali produkcyjnej z powrotem w Odoo. Operatorzy rejestrują pracę w SkyPlanner Mobile Confirmations. Dla każdego potwierdzenia integracja wywołuje create na mrp.workcenter.productivity (JSON-2: POST /json/2/mrp.workcenter.productivity/create z vals_list). Wypełnia pola workorder_id, workcenter_id, date_start, date_end oraz loss_id typu Productive, a czas pracy i koszty są rejestrowane w Odoo.
Po zakończeniu operacji integracja ustawia wyprodukowaną ilość i wywołuje button_finish na zleceniu produkcyjnym. Zakończenie ostatniego zlecenia produkcyjnego przygotowuje MO do wywołania button_mark_done. Każde potwierdzenie jest zapisywane raz, a identyfikator jego rekordu w Odoo jest przechowywany przy wpisie czasu pracy w SkyPlanner. Dzięki temu ponowienie webhooka nigdy nie tworzy drugiego wpisu Time Logs.
W zakładach korzystających z aplikacji Enterprise Shop Floor kierunek jest odwrotny: SkyPlanner odczytuje status zlecenia produkcyjnego i qty_produced, a Autopilot automatycznie aktualizuje harmonogram po zmianach w produkcji.
Odpowiedzialność za dane. Spisz zasady przed uruchomieniem produkcyjnym:
| Dane | System odpowiedzialny |
|---|---|
| Produkty, BoM, operacje, ilości, status MO | Odoo |
| Kolejność zleceń produkcyjnych, terminy rozpoczęcia i zakończenia, wybór gniazda produkcyjnego | SkyPlanner |
| Macierz czasów przezbrojeń, wymagania dotyczące narzędzi i operatorów, zasoby alternatywne | SkyPlanner |
| Kalendarze gniazd produkcyjnych i Time Off | Jeden system, wybrany na etapie określania zakresu |
| Time Logs, stany magazynowe i kalkulacja kosztów | Odoo, zasilane potwierdzeniami ze SkyPlanner |
Planiści przestają używać przycisków Plan i Unplan w Odoo dla MO harmonogramowanych przez SkyPlanner. W przeciwnym razie Odoo rezerwuje własne przedziały czasowe, nadpisując terminy ze SkyPlanner.
Typowe etapy projektu
Realizacja zwykle kończy się w ciągu kilku tygodni od rozpoczęcia wdrożenia. Wcześniej można skorzystać z 30-dniowego bezpłatnego okresu próbnego na własnych danych z Odoo wyeksportowanych do CSV. Sam projekt obejmuje:
- Mapowanie danych podstawowych: modele i pola Odoo dla danej wersji (sprawdź
/doclubfields_get), jednostki miary oraz ustalenie, który system zarządza kalendarzami i Time Off. - Uporządkowanie danych: uporządkowanie kalendarzy gniazd produkcyjnych i pól Setup Time oraz Cleanup Time, a także ustawienie czasów operacji BoM na Fixed zamiast Computed.
- Pierwsze wczytanie danych: produktów, gniazd produkcyjnych z kalendarzami, BoM i ich operacji.
- Synchronizacja zleceń i zamówień zakupu: zatwierdzone i realizowane MO wraz z ich zleceniami produkcyjnymi oraz pozycje
purchase.orderz oczekiwanymi terminami dostawy. - Zapis harmonogramu z powrotem w Odoo: terminy i gniazda produkcyjne w
mrp.workorderoraz rotacja kluczy API po stronie Odoo. - Potwierdzenia z hali produkcyjnej: przesyłanie Time Logs i informacji o zakończeniu zleceń produkcyjnych z powrotem do Odoo.
- Testy równolegle z bieżącym planem, a następnie uruchomienie produkcyjne.
Pułapki w Odoo
- Zmiany nazw pól dat. Do wersji 16.0 włącznie pola
date_planned_startidate_planned_finishedprzechowywały plan, adate_start/date_finished— rzeczywiste terminy. Od wersji 17.0 poladate_startidate_finishedoznaczają terminy planowane. Mapowanie skopiowane z projektu dla wersji 16.0 w wersjach 17+ odczytuje rzeczywiste terminy jako planowane, nie sygnalizując błędu. - Terminy zleceń produkcyjnych są rezerwacjami. W wersji 19.0 pola
date_startidate_finishedwmrp.workordersą obliczane na podstawie rekorduresource.calendar.leaves(leave_id) w kalendarzu gniazda produkcyjnego. Zapis terminów na zleceniu produkcyjnym aktualizuje tę rezerwację. Nigdy nie zapisuj danych bezpośrednio w tabeli nieobecności. - Rozpoczęte zlecenia produkcyjne blokują Unplan. Odoo odmawia wycofania MO z planu, gdy „Some work orders have already started” (niektóre zlecenia produkcyjne zostały już rozpoczęte). Przy zapisie do Odoo pomijaj zlecenia produkcyjne w statusach
progressidone. Przesuwaj tylko te, których jeszcze nie rozpoczęto. - Czasy trwania się zmieniają. Operacje ustawione na Computed pobierają czas trwania z ostatnich zleceń produkcyjnych (domyślnie 10), z uwzględnieniem współczynnika Time Efficiency. Na czas okresu próbnego ustaw Fixed lub zaakceptuj zmienność danych wejściowych. Operacje są definiowane w każdym BoM osobno, bez wspólnej kartoteki marszrut technologicznych, dlatego każdy BoM wymaga oddzielnego uporządkowania.
- Błędne kalendarze. Każde gniazdo produkcyjne potrzebuje kalendarza godzin pracy. Mechanizm planowania Odoo szuka wolnego terminu do 700 dni naprzód, a następnie zatrzymuje się z komunikatem „Impossible to plan the workorder” (Nie można zaplanować zlecenia produkcyjnego). Popraw kalendarze przed pierwszym wczytaniem danych.
- Jednostki miary.
mrp.bom.linema własne poleproduct_uom_id, które może wskazywać inną jednostkę niż magazynowa jednostka produktu. Przelicz jednostki przed sprawdzeniem dostępności materiałów.
Kto konfiguruje integrację z Odoo
Każdy zakład korzysta z Odoo inaczej: ma własne operacje BoM, kalendarze gniazd produkcyjnych, alternatywne gniazda i moduły niestandardowe. Zespół SkyPlanner wnosi wiedzę potrzebną do prawidłowego dopasowania mapowania do tej konfiguracji.
- Zespół SkyPlanner konfiguruje integrację podczas wdrożenia, dopasowując ją do Twojego środowiska Odoo, i zapewnia wsparcie po uruchomieniu produkcyjnym. Integracja korzysta z REST API i webhooków SkyPlanner oraz API JSON-2 lub RPC w Odoo. To standardowy sposób realizacji.
- Twój partner Odoo może uczestniczyć w pracach. Zna Twoją konfigurację i moduły niestandardowe, więc może tworzyć rozwiązania oparte na tym samym udokumentowanym REST API. API umożliwia odczyt i zapis zleceń, produktów, materiałów, etapów procesu i zapisów czasu pracy. Korzysta z uwierzytelniania JWT i ma dokumentację Swagger/OpenAPI.
- Twoi programiści mogą zrobić to samo — zwykle w postaci niewielkiej warstwy pośredniej obok Odoo albo modułu w Odoo.sh lub instalacji lokalnej. Do rozpoczęcia wystarczy klucz API (poradnik integracji), a zespół SkyPlanner pomaga w razie potrzeby.
Ten sam model działa produkcyjnie z innymi systemami ERP. W Laboratory & Allied wewnętrzny zespół IT zbudował integrację z SAP Business One w dużej mierze samodzielnie, przy wsparciu SkyPlanner. Firma UTU korzysta ze SkyPlanner obok swojego systemu ERP NetSuite.
Dlaczego integracja się opłaca
To zapis danych z powrotem do Odoo sprawia, że integracja przynosi korzyści w codziennej pracy. Gdy już działa:
- Zlecenia produkcyjne Odoo mają wykonalne terminy. Silnik Arcturus AI w kilka sekund ustala kolejność wszystkich otwartych MO. Wyznaczone terminy i wybrane stanowiska robocze trafiają do
mrp.workorderi są widoczne w widokach planowania Odoo. - Bez ręcznego przeplanowywania. Autopilot automatycznie zmienia harmonogram, gdy zmienia się sytuacja na produkcji, a webhook przesyła nowe terminy do Odoo.
- Dane z hali wracają do systemu. Operatorzy rejestrują pracę na telefonie lub tablecie za pomocą Mobile Confirmations, Production Timer i Quick Log Mode, a Time Logs trafiają do Odoo na potrzeby aktualizacji stanów magazynowych i kalkulacji kosztów. Harmonogramowanie i realizacja produkcji odbywają się w jednym narzędziu, zarówno w Community, jak i Enterprise.
- Harmonogram uwzględnia ograniczenia, których nie obsługuje Odoo. Macierz czasów przezbrojenia określa czas zmiany dla każdej pary produktów, zależnie od ich kolejności. Narzędzia to zasoby produkcyjne o ograniczonej dostępności, współdzielone przez maszyny, a operacja może wymagać kilku operatorów jednocześnie. Gdy podstawowa maszyna lub pracownik są niedostępni, silnik wybiera alternatywne maszyny lub personel. Terminy zapisywane z powrotem w
mrp.workorderuwzględniają wszystkie te ograniczenia. - Plan uwzględnia dostawy materiałów. Bieżące stany magazynowe i otwarte zamówienia zakupu w Odoo zasilają harmonogramowanie oparte na dostępności materiałów. Zamówione komponenty są uznawane za dostępne w terminie dostawy PO, a stan magazynowy aktualizuje się po oznaczeniu PO jako Delivered. Dla każdej operacji sprawdzane są materiały w magazynie oraz te, które są w drodze.
Możesz ocenić harmonogram jeszcze przed rozpoczęciem prac integracyjnych. Rozpocznij 30-dniowy bezpłatny okres próbny, korzystając z eksportów CSV, i zobacz własne zlecenia produkcyjne z Odoo na wykresie Gantta — do 20 stanowisk, bez karty kredytowej. Ceny zaczynają się od 199 € miesięcznie za 5 stanowisk, z rozliczeniem miesięcznym i możliwością rezygnacji w dowolnym momencie. Integrację wyceniamy z góry, zgodnie z Twoim procesem i potrzebami, razem z wybranym planem. Dzięki temu znasz pełny koszt przed rozpoczęciem. Zobacz funkcje i historie klientów lub umów prezentację.
Opinie producentów o SkyPlanner
2 hoszczędności co tydzień
„Dzięki SkyPlanner przeszliśmy od planowania produkcji w arkuszach Excel do optymalizacji produkcji w czasie rzeczywistym.”
Kalle Kalliomäki, specjalista ds. łańcucha dostaw
UTU · Rozdzielnice i aparatura rozdzielcza
Planowanie produkcji pozwala zaoszczędzić 2 godziny pracy tygodniowo, a nowa kolejka zadań trafia na linię w ciągu kilku sekund.
+90%wydajności produkcji
„Wydajność produkcji wzrosła o 90%.”
Abdul Rucyinga, szef działu IT
Laboratory & Allied · Produkcja farmaceutyczna
Wydajność produkcji wzrosła o 90%, a przygotowanie zoptymalizowanego planu na trzy miesiące dla wszystkich stanowisk zajmuje mniej niż 30 minut.
1 000+zleceń produkcyjnych harmonogramowanych automatycznie
„Mamy teraz zupełnie inną kontrolę nad produkcją, a nasza wiedza o zdolnościach produkcyjnych jest na całkiem innym poziomie.”
Hannu Ryynänen, prezes
Mamec · Mieszalniki przemysłowe, pompy i zaawansowana technologicznie produkcja kontraktowa
Tysiące zleceń produkcyjnych są harmonogramowane automatycznie, a cała organizacja ma wgląd w produkcję w czasie rzeczywistym.
99,2%terminowości dostaw
„SkyPlanner pozwolił nam dostrzec wąskie gardła i uporządkował zarządzanie produkcją.”
Toni Tuori, kierownik produkcji
Piristeel · Systemy bezpieczeństwa dachowego i odprowadzania wody deszczowej
Terminowość dostaw osiągnęła w tym roku 99,2%, a harmonogramowanie pozwala zaoszczędzić do czterech godzin pracy dziennie.
Najczęściej zadawane pytania
Czy integracja działa w Odoo Online?
Tak, w planie Custom, za pośrednictwem zewnętrznego API. Plany One App Free i Standard nie zapewniają dostępu do zewnętrznego API, a Standard nie obsługuje modułów niestandardowych. W tych planach można więc korzystać jedynie z importu i eksportu plików CSV/XLSX.
Wybrać JSON-2 czy XML-RPC?
W Odoo 19.0 i nowszych wersjach należy korzystać z JSON-2. W wersjach od 16.0 do 18.0 nadal potrzebne są XML-RPC i JSON-RPC, ale ich usunięcie zaplanowano na Odoo 22.
Jak harmonogram trafia z powrotem do Odoo?
Przez metodę ORM write dla każdego rekordu mrp.workorder: w wersji 19.0 jest to POST /json/2/mrp.workorder/write z ids i vals, a w wersjach od 16.0 do 18.0 — execute_kw z write przez XML-RPC lub JSON-RPC. Zapisywane pola to date_start, date_finished (date_planned_start i date_planned_finished w wersji 16.0) oraz workcenter_id, jeśli się zmieniło. Odoo przesuwa przy tym rezerwację gniazda produkcyjnego, więc jego widoki planowania pokazują terminy ze SkyPlanner.
Jak potwierdzenia od operatorów trafiają do Odoo?
Jako wpisy Time Logs: integracja tworzy rekordy mrp.workcenter.productivity powiązane ze zleceniem produkcyjnym, z czasem rozpoczęcia i zakończenia oraz przyczyną straty Productive. Następnie, po zakończeniu operacji, wywołuje button_finish. Każde potwierdzenie jest zapisywane raz, więc ponowienia nie powodują podwójnego naliczenia czasu.
Kto utrzymuje integrację po uruchomieniu produkcyjnym?
Zespół SkyPlanner konfiguruje integrację podczas wdrożenia i zapewnia wsparcie po uruchomieniu produkcyjnym, w tym dostosowania do zmian w konfiguracji Odoo. Jeśli integrację tworzy partner lub własny zespół programistów, korzysta z udokumentowanego REST API i dokumentacji SkyPlanner, a zespół SkyPlanner pomaga w razie potrzeby.
Co dzieje się ze zleceniami produkcyjnymi, których realizacja już się rozpoczęła?
Przy zapisie zwrotnym nie należy ich zmieniać. Odoo blokuje usunięcie MO z harmonogramu, gdy zlecenie produkcyjne jest w toku lub zostało zakończone. SkyPlanner odczytuje ich status i postęp, a następnie układa harmonogram pozostałych prac z ich uwzględnieniem.
Ile trwa integracja z Odoo?
Wdrożenie zwykle kończy się w ciągu kilku tygodni od jego rozpoczęcia. Zacznij od 30-dniowego okresu próbnego z danymi wyeksportowanymi do CSV. Dzięki temu sprawdzisz harmonogram na własnych danych z Odoo, zanim rozpoczną się prace nad API.