Integracje / ERP / Xero
Przewodnik po integracji Xero ze SkyPlanner APS do planowania produkcji
Ten przewodnik pokazuje doradcom Xero, konsultantom i zespołom IT, jak połączyć Xero ze SkyPlanner APS. SkyPlanner integruje się z Xero dwukierunkowo przez Xero Accounting API i Projects API:
- Do SkyPlanner trafiają kontakty, pozycje objęte ewidencją magazynową wraz ze stanami magazynowymi, zaakceptowane oferty oraz zamówienia zakupu z terminami dostaw.
- Planowany termin zakończenia wraca do Xero jako notatka w historii każdej oferty.
- Zakończone zlecenia wracają jako wersje robocze faktur sprzedaży z pozycjami i numerem referencyjnym oferty, a oferta otrzymuje status Invoiced.
- Godziny zarejestrowane przy pracach projektowych wracają jako wpisy czasu pracy w Xero Projects.
- Webhooki Xero informują o zmianach kontaktów i faktur, a webhooki SkyPlanner przekazują zmiany harmonogramu na bieżąco.
Xero to oprogramowanie księgowe, więc nie przechowuje zestawień materiałowych, marszrut technologicznych, maszyn ani zleceń produkcyjnych. Stanowiska robocze, etapy procesu, zmiany robocze i czasy przezbrojeń są definiowane w SkyPlanner. Podczas wdrożenia zespół SkyPlanner konfiguruje integrację z organizacją w Xero i zapewnia jej wsparcie po uruchomieniu. Ten przewodnik jest przeznaczony dla doradców i programistów, którzy chcą uczestniczyć w tych pracach lub samodzielnie tworzyć rozwiązania oparte na udokumentowanym REST API SkyPlanner (dokumentacja API).
Xero Accounting API
Xero to jeden produkt chmurowy w architekturze wielodostępnej, a wszystkie organizacje korzystają z tego samego API. Accounting API to REST API dostępne pod adresem https://api.xero.com/api.xro/2.0/, obsługujące JSON lub XML. Każde wywołanie wskazuje organizację w nagłówku Xero-tenant-id. (źródło)
Endpointy potrzebne do harmonogramowania:
- Dane podstawowe:
/Contacts(klienci i dostawcy),/Items(Code, IsTrackedAsInventory, QuantityOnHand). - Zapotrzebowanie:
/Quotes(Status ACCEPTED, LineItems), a dla zakładów, które najpierw wystawiają fakturę —/Invoicesz wartością ACCREC w polu Type. - Zaopatrzenie:
/PurchaseOrders(DeliveryDate, ExpectedArrivalDate, LineItems z ItemCode). - Zapis zwrotny:
/Quotes/{QuoteID}/History,/Invoices,/Quotesoraz Projects API pod adresemhttps://api.xero.com/projects.xro/2.0/projects/{projectId}/time.
Każdy endpoint zwracający listę obsługuje nagłówek If-Modified-Since, więc każda synchronizacja odczytuje tylko zmienione dane. Tworzenie i aktualizowanie rekordów odbywa się zbiorczo. Nie ma endpointów dla zestawień materiałowych, marszrut technologicznych ani zleceń produkcyjnych.
Uwierzytelnianie, zakresy uprawnień i limity
Xero korzysta z OAuth 2.0. Administrator Xero loguje się raz, zatwierdza aplikację i wybiera organizację. Aplikacja prosi o zakres offline_access, aby utrzymywać połączenie za pomocą tokenów odświeżania. (źródło)
Xero zastępuje szerokie zakresy uprawnień bardziej szczegółowymi i przydziela je nowym aplikacjom. Integracja do harmonogramowania wymaga następujących zakresów:
accounting.invoices— oferty, faktury, zamówienia zakupu i pozycjeaccounting.contacts— klienci i dostawcyaccounting.settings.read— ustawienia pozycjiprojects— wpisy czasu pracyoffline_access
Xero ogranicza liczbę wywołań dla każdej organizacji (równoczesnych, na minutę i na dzień) oraz dla każdej aplikacji. Po przekroczeniu limitu przez aplikację zwraca HTTP 429 z nagłówkiem Retry-After. Dzienny limit oraz liczba połączonych organizacji zależą od poziomu partnerskiego aplikacji. Obie wartości podano na stronie limitów API Xero. Webhooki, odczyty z If-Modified-Since i zapis zbiorczy pozwalają integracji do harmonogramowania działać z dużym zapasem względem tych limitów.
Po stronie SkyPlanner REST API używa do uwierzytelniania tokenu API w nagłówku Authorization-Token (SkyPlanner Settings > API). Dokumentacja jest dostępna w Swagger/OpenAPI. Samouczek integracji prowadzi przez pierwsze wywołania.
Webhooki
„Webhooks allow you to subscribe to certain events that happen in Xero.” (Webhooki umożliwiają subskrybowanie określonych zdarzeń w Xero.) (źródło) Dla harmonogramowania istotne są zdarzenia Contact i Invoice, w obu przypadkach z typami CREATE i UPDATE.
Jak działają:
- Jeden webhook na aplikację obsługuje wszystkie połączone organizacje.
- Każda dostarczona wiadomość zawiera tablicę zdarzeń z identyfikatorem zasobu i typem zdarzenia. Odbiorca następnie odczytuje zasób.
- Każda wiadomość jest podpisana za pomocą nagłówka
x-xero-signature, utworzonego na podstawie klucza webhooka aplikacji. Przed rozpoczęciem dostarczania Xero wysyła żądanie weryfikacyjne „Intent to receive”. - Xero ponawia nieudane próby dostarczenia i wyłącza webhook, jeśli błędy się powtarzają. Dlatego odbiorca odpowiada szybko, a przetwarzanie wykonuje później.
Oferty, pozycje i zamówienia zakupu nie mają zdarzeń webhook. SkyPlanner odpytuje je w krótkich odstępach z użyciem If-Modified-Since. Jeśli nic się nie zmieniło, wymaga to jednego wywołania na typ obiektu.
Mapowanie danych
| Obiekt Xero (endpoint) | Obiekt SkyPlanner | Kierunek | Częstotliwość |
|---|---|---|---|
Contact, IsCustomer (/Contacts) | Customer (external_identifier, delivery_priority) | Xero → SkyPlanner | Import początkowy, następnie po otrzymaniu webhooka |
Item, z ewidencją magazynową i bez niej, z QuantityOnHand (/Items) | Produkty i materiały, stany magazynowe | Xero → SkyPlanner | Import początkowy, następnie odczyt z If-Modified-Since |
Quote z wartością ACCEPTED w polu Status i z LineItems (/Quotes) | Order (external_order_number, delivery_date), operacje dla każdej pozycji | Xero → SkyPlanner | Cykliczne odpytywanie z If-Modified-Since |
Invoice z wartością ACCREC w polu Type (zakłady wystawiające fakturę przed realizacją) (/Invoices) | Order i operacje | Xero → SkyPlanner | W czasie rzeczywistym przez webhook |
PurchaseOrder z ExpectedArrivalDate lub DeliveryDate (/PurchaseOrders) | Oczekiwana dostawa materiału (estimated_delivery_date) | Xero → SkyPlanner | Cykliczne odpytywanie z If-Modified-Since |
Notatka w historii oferty (PUT /Quotes/{QuoteID}/History) | Planowany termin zakończenia | SkyPlanner → Xero | Po zmianie harmonogramu |
Invoice, Type ACCREC, Status DRAFT, Reference = numer oferty (POST /Invoices) | Zakończone zlecenie | SkyPlanner → Xero | Po zakończeniu zlecenia |
Quote z wartością INVOICED w polu Status (POST /Quotes) | Zakończone zlecenie | SkyPlanner → Xero | Po utworzeniu faktury |
Wpis czasu pracy w Projects (POST /projects/{projectId}/time) | Mobile Confirmations, rejestry czasu pracy | SkyPlanner → Xero | Na bieżąco przy rejestrowaniu pracy |
| Brak w Xero | Stanowiska robocze, etapy procesu, zmiany robocze, nieobecności, macierz czasów przezbrojeń, narzędzia, liczba operatorów, alternatywne stanowiska robocze | Utrzymywane w SkyPlanner | Konfigurowane podczas wdrożenia |
Warianty integracji
1. Początkowy import danych podstawowych. Pobierz kolejne strony kontaktów i pozycji, a następnie otwarte zamówienia zakupu i zaakceptowane oferty. Utwórz klientów w SkyPlanner, używając ContactID z Xero jako external_identifier, a produkty i materiały — używając kodu pozycji jako klucza. Następnie zdefiniuj to, czego nie przechowuje Xero: stanowiska robocze, etapy procesu dla każdego produktu, zmiany robocze, urlopy i czasy przezbrojeń. Etapy procesu najszybciej zaimportujesz z pliku CSV lub Excel.
2. Synchronizacja zleceń. Odpytuj oferty z użyciem If-Modified-Since. Gdy oferta otrzyma status ACCEPTED, SkyPlanner tworzy zlecenie z numerem oferty w polu external_order_number. Wartość delivery_date pochodzi z pola, w którym zakład zapisuje obiecany termin; mapowanie ustala się podczas wdrożenia. Każda pozycja oferty jest przekształcana w operacje zgodnie z etapami procesu danego produktu. Pozycje zamówień zakupu stają się oczekiwanymi dostawami materiałów z przewidywanym terminem przybycia, więc operacje czekają na dostawę. Pełny odczyt otwartych ofert i zamówień zakupu każdej nocy wychwytuje pominięte zmiany.
3. Zapis zwrotny informacji o harmonogramie i zakończeniu zleceń. Trzy wywołania zapisują wyniki w Xero:
- PUT
/Quotes/{QuoteID}/Historydodaje notatkę z planowanym terminem zakończenia. W zaakceptowanej ofercie można zmieniać tylko kontakt i notatki, dlatego termin zapisuje się w notatce w historii. (źródło) - Po zakończeniu zlecenia POST
/Invoicestworzy fakturę sprzedaży z wartością ACCREC w polu Type i DRAFT w polu Status, kontaktem i pozycjami z oferty oraz numerem oferty w polu Reference. Osoba odpowiedzialna za księgowość zatwierdza ją i wysyła w Xero. - POST
/Quotesz identyfikatorem QuoteID i wartością INVOICED w polu Status zamyka ofertę. Przejście ze statusu Accepted do Invoiced jest dozwolone w Accounting API.
4. Potwierdzenia z hali produkcyjnej i czas pracy przy projektach. Operatorzy rejestrują pracę za pomocą SkyPlanner Mobile Confirmations, Production Timer lub Quick Log Mode. Postęp prac natychmiast aktualizuje harmonogram, a Autopilot przeplanowuje pozostałą pracę. W przypadku prac projektowych SkyPlanner zapisuje godziny jako wpisy czasu pracy przy zadaniu projektowym, wskazując użytkownika Xero, datę i czas trwania. (źródło)
5. Odpowiedzialność za dane i zasady rozstrzygania konfliktów. Spisz je przed uruchomieniem:
| Dane | System nadrzędny |
|---|---|
| Kontakty, pozycje, ceny, oferty, zamówienia zakupu, faktury, księgowość | Xero |
| Stanowiska robocze, etapy procesu, zmiany robocze, nieobecności, macierz czasów przezbrojeń, narzędzia, alternatywne zasoby produkcyjne | SkyPlanner |
| Kolejność operacji, terminy rozpoczęcia i zakończenia, stanowisko robocze przypisane do każdej operacji | SkyPlanner |
| Notatka o planowanym terminie zakończenia w ofercie | SkyPlanner, z zapisem do Xero |
| Wersja robocza faktury za ukończone zlecenia, czas pracy przy projektach | Tworzy SkyPlanner, po zatwierdzeniu zarządza Xero |
Typowe etapy projektu
Wdrożenie zwykle kończy się w ciągu kilku tygodni od rozpoczęcia onboardingu. Wcześniej możesz skorzystać z 30-dniowego bezpłatnego okresu próbnego na własnych danych: kontaktach, produktach i otwartych ofertach wyeksportowanych z Xero do pliku CSV.
Sam projekt obejmuje:
- Połączenie. Administrator Xero zatwierdza dostęp dla SkyPlanner i wybiera organizację.
- Źródło zapotrzebowania. Ustal, czy produkcję uruchamiają zaakceptowane oferty, czy faktury sprzedaży.
- Mapowanie. Ustal tabelę mapowania, kody pozycji, konta księgowe dla faktur, domyślne ustawienia podatków oraz zasady odpowiedzialności za dane.
- Wstępne ładowanie danych. Kontakty, pozycje, otwarte zamówienia zakupu i zaakceptowane oferty.
- Model produkcji. Stanowiska robocze, operacje dla poszczególnych produktów, zmiany robocze, macierz czasów przezbrojeń, narzędzia i liczba operatorów w SkyPlanner.
- Synchronizacja. Webhooki dla kontaktów i faktur, cykliczne odpytywanie ofert, pozycji i zamówień zakupu z użyciem
If-Modified-Sinceoraz nocna kontrola zgodności danych. - Zapis zwrotny. Najpierw notatki do ofert, następnie wersje robocze faktur i statusy ofert, a na końcu czas pracy przy projektach, jeśli jest ewidencjonowany.
- Testy równoległe i uruchomienie. Porównaj terminy w SkyPlanner z obecnym planem, zleć księgowości sprawdzenie pierwszych wersji roboczych faktur, a następnie włącz zapis zwrotny.
Co uwzględnić przy integracji z Xero
- Brak obiektów produkcyjnych w Xero. Przechowuj operacje dla poszczególnych produktów w SkyPlanner i powiąż je z kodem pozycji w Xero. Nie zmieniaj kodów pozycji.
- Oferty nie obsługują webhooków. Odpytuj je w krótkich odstępach za pomocą
If-Modified-Since, przestrzegając limitów minutowych i dziennych. - Zaakceptowane oferty są zablokowane. Po akceptacji można zmieniać tylko dane kontaktowe i notatki. Dlatego zadeklarowany termin jest odczytywany jednorazowo w chwili akceptacji, a planowany termin jest zapisywany jako notatka w historii.
- Stany magazynowe wynikają z faktur sprzedaży i zakupu. Xero aktualizuje ilość na stanie na podstawie faktur sprzedaży, faktur zakupu i korekt dla pozycji objętych ewidencją magazynową. Ustal z księgowością, jak rozliczać wyroby gotowe i zużyte materiały.
- Ewidencja czasu projektów wymaga użytkowników Xero. Wpisy czasu pracy są przypisane do użytkownika Xero. Zdecyduj, którzy operatorzy mają rejestrować czas w Xero Projects, a ewidencję pozostałych pozostaw w SkyPlanner.
- Szczegółowe zakresy uprawnień. Wnioskuj o szczegółowe zakresy uprawnień od samego początku, ponieważ szerokie zakresy są wycofywane.
- Poziom partnerski aplikacji. Poziom partnerski określa, z iloma organizacjami aplikacja może się połączyć i ile wywołań dziennie może wykonać. Dobierz go do liczby zakładów.
Integracja z Xero: kto ją konfiguruje i zapewnia wsparcie
Prace obejmują pozycje, oferty, zamówienia zakupu oraz sposób przekazywania ukończonych zleceń do fakturowania. Uzupełniają też dane, których Xero nie przechowuje: stanowiska robocze, operacje, zmiany robocze, macierz czasów przezbrojeń, narzędzia, liczbę operatorów i alternatywne zasoby produkcyjne.
- Zespół SkyPlanner konfiguruje integrację podczas onboardingu i zapewnia wsparcie po uruchomieniu. Każdy zakład inaczej konfiguruje pozycje, oferty i stany magazynowe w Xero. Ta wiedza jest wykorzystywana właśnie na tym etapie.
- Integrację może zbudować Twój doradca Xero lub partner integracyjny. SkyPlanner udostępnia REST API, dokumentację Swagger/OpenAPI i webhooki.
- Twoi programiści mogą samodzielnie zbudować integrację, korzystając z tokenu API. Do rozpoczęcia pracy wystarczy token API, a zespół SkyPlanner pomaga w razie potrzeby. Dokumentację produktu, w tym zamówień zakupu oraz API produktów i materiałów, znajdziesz w dokumentacji SkyPlanner.
Cena SkyPlanner zaczyna się od 199 € miesięcznie i obejmuje 5 stanowisk roboczych, przy rozliczeniu miesięcznym. Integracja jest wyceniana z góry, razem z wybranym planem, stosownie do Twojego procesu i potrzeb. Dzięki temu znasz pełny koszt przed rozpoczęciem. Sprawdź cennik, funkcje oraz zakres możliwości samego Xero w artykule Czy Xero obsługuje planowanie produkcji? Ogólne informacje znajdziesz na stronie Xero, a pozostałe systemy w zestawieniu wszystkich integracji.
Opinie firm produkcyjnych 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 łączeniowa
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 roboczych zajmuje mniej niż 30 minut.
Mniejprzestojów z powodu braków materiałowych
„Wartość SkyPlanner polega dla nas na tym, że to narzędzie sprawdza się w codziennej pracy, zwłaszcza przy ustalaniu terminów dostaw.”
Tommi Männistö, kierownik ds. planowania produkcji
Eskomatic · Usługowa obróbka skrawaniem
Automatyczne harmonogramowanie obciążenia pozwala precyzyjniej określać terminy dostaw, a liczba przestojów produkcji spowodowanych brakami materiałowymi znacznie spadła.
1 000 i więcejzleceń 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, dyrektor generalny
Mamec · Mieszadła 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.
Najczęściej zadawane pytania
Czy Xero udostępnia API do danych produkcyjnych?
Xero udostępnia Accounting API i Projects API — oba oparte na REST z OAuth 2.0. Obejmują one kontakty, pozycje, oferty, faktury, zamówienia zakupu i wpisy czasu pracy. Dane produkcyjne, takie jak stanowiska robocze i operacje, są przechowywane w SkyPlanner.
Czy SkyPlanner może przekazywać dane z powrotem do Xero?
Tak. SkyPlanner dodaje planowany termin zakończenia do historii każdej oferty. Po ukończeniu zlecenia tworzy wersję roboczą faktury sprzedaży z pozycjami z oferty, zmienia status oferty na Invoiced i przesyła wpisy czasu pracy przy projektach.
Czy Xero przesyła zmiany w czasie rzeczywistym?
Webhooki Xero obejmują kontakty i faktury. SkyPlanner odczytuje oferty, pozycje i zamówienia zakupu zmienione od ostatniej synchronizacji za pomocą If-Modified-Since, a co noc uzgadnia dane. Dzięki temu nowa zaakceptowana oferta szybko trafia do harmonogramu.
Skąd pochodzą zestawienia materiałowe, marszruty technologiczne i maszyny, skoro Xero ich nie przechowuje?
Ze SkyPlanner. Stanowiska robocze, operacje dla poszczególnych produktów, zmiany robocze i czasy przezbrojeń konfigurujesz jednorazowo — ręcznie lub przez import z pliku CSV albo Excel. Każdy produkt jest powiązany z kodem pozycji w Xero, dzięki czemu nowe zaakceptowane oferty automatycznie trafiają do harmonogramu produkcji.
Czy możemy przetestować SkyPlanner przed zbudowaniem integracji?
Tak. W ramach 30-dniowego bezpłatnego okresu próbnego możesz korzystać z maksymalnie 20 stanowisk roboczych i importować dane z Xero przez CSV. Karta kredytowa nie jest wymagana. Rozpocznij okres próbny lub porozmawiaj z działem sprzedaży, aby ustalić zakres integracji.