Conectați-vă la orice ERP

REST API-ul deschis al SkyPlanner se conectează la sisteme ERP, MES și operaționale, inclusiv ERP-uri interne. Construiți integrarea pe cont propriu sau lăsați echipa noastră să vă ajute.

Funcționează și independent — o integrare ERP este opțională, nu obligatorie.

Discutați un proiect de integrare

Se conectează cu sisteme ERP și MES precum

Integrări / ERP / Oracle NetSuite

Ghid de integrare cu NetSuite pentru programarea producției în SkyPlanner APS

Acest ghid le arată partenerilor NetSuite, administratorilor și cumpărătorilor cu profil tehnic cum se conectează SkyPlanner APS la Oracle NetSuite pentru programarea producției cu capacitate finită. SkyPlanner se integrează bidirecțional cu NetSuite, prin servicii web REST și SuiteQL:

  • Sunt preluate comenzile de producție, fluxurile tehnologice, centrele de lucru, articolele și comenzile de achiziție.
  • Datele și orele planificate de început și de sfârșit sunt înscrise în sarcinile aferente operațiilor de producție.
  • Orele înregistrate și cantitățile produse sunt trimise înapoi ca Work Order Completions sau Assembly Builds.
  • Webhook-urile SkyPlanner transmit modificările programului pe măsură ce apar.
Diagramă Gantt în SkyPlanner APS, cu operații programate pe centre de lucru și o listă de comenzi dedesubt.

NetSuite gestionează articolele, listele de materiale (BOM), fluxurile tehnologice, comenzile de producție, stocurile și calculul costurilor. SkyPlanner construiește programul cu capacitate finită folosind motorul Arcturus. Echipa SkyPlanner configurează integrarea pentru contul dumneavoastră în etapa de implementare inițială și asigură suportul după lansarea în producție. Integrarea folosește înregistrările standard NetSuite și nu depinde de Advanced Manufacturing SuiteApp.

SkyPlanner funcționează deja integrat cu NetSuite la UTU, un producător de tablouri electrice și echipamente de comutație din Ulvila, Finlanda. UTU a trecut la utilizarea în producție în septembrie 2025, cu SkyPlanner integrat cu Oracle NetSuite și cu sistemul său de salarizare. Pentru argumentele economice, începeți cu pagina despre programarea producției pentru NetSuite și cu articolul Oferă NetSuite programare cu capacitate finită?.

Decizia care definește proiectul: REST și OAuth 2.0

Oracle a stabilit direcția. Începând cu 2026.1, noile integrări ar trebui dezvoltate folosind serviciile web SuiteTalk REST cu OAuth 2.0. Din 2027.1, nu se mai pot crea integrări noi pe SOAP sau Token-Based Authentication (TBA). Endpoint-urile SOAP sunt dezactivate în 2028.2. Orice integrare pentru programarea producției începută astăzi trebuie să folosească REST.

Opțiune NetSuiteCe esteRol în integrarea cu un sistem APS
API-ul SuiteTalk REST pentru înregistrări/services/rest/record/v1/<recordType>, cu versiuni corelate cu versiunile NetSuite; !transform pentru raportarea producției realizate, a consumurilor și a asamblărilor aferente comenzilor de producțieScriere: datele calendaristice ale operațiilor și comenzilor de producție (PATCH), raportări ale producției realizate, consumuri și asamblări (transform)
SuiteQL prin RESTPOST /services/rest/query/v1/suiteql cu Prefer: transient, până la 100.000 de rezultate per interogare, paginare cu limit/offsetCitire în bloc: articole, fluxuri tehnologice, centre de lucru, comenzi de producție deschise, stocuri
RESTlet-uri SuiteScript 2.1Endpoint-uri personalizate get/post/put/deleteAcoperirea funcționalităților care lipsesc din REST, gruparea datelor într-un singur mesaj, de exemplu o comandă de producție cu toate operațiile sale
SuiteScript User Event / Map-ReduceScripturi executate pe server în NetSuiteNotificări de modificare trimise către sisteme externe
CSV Import AssistantMapări salvate pentru importÎncărcări punctuale; nu pentru sincronizare continuă
SuiteTalk SOAPTehnologie veche, doar cu TBANu începeți integrări noi pe această tehnologie

Autentificare

Pentru un sistem de programare care comunică de la server la server, folosiți OAuth 2.0 Client Credentials (machine-to-machine). Calea din interfața de administrare este Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup. Încărcați un certificat public și îl asociați cu o entitate, un rol și înregistrarea integrării. Fiecare înregistrare de integrare poate avea cel mult cinci certificate active.

Creați un rol dedicat integrării: drepturi de vizualizare pentru articole, revizii BOM, fluxuri tehnologice și centre de lucru; drepturi de editare pentru comenzi de producție, raportări de finalizare și eliberări de materiale. API-ul REST SkyPlanner (documentația API) folosește JWT, astfel încât middleware-ul păstrează ambele seturi de credențiale.

Evenimente: nu există un webhook standard

Documentația Oracle nu descrie niciun webhook nativ pentru notificări către sisteme externe. Soluția este un script SuiteScript User Event pe Work Order (afterSubmit), care pune în coadă un apel extern prin N/task sau printr-un script Map/Reduce și îl execută folosind N/https. Nu efectuați niciodată apeluri externe sincrone în afterSubmit: apelul se execută în cadrul salvării inițiate de utilizator, deci un endpoint lent încetinește salvarea sau o face să eșueze.

Evenimentele User Event nu acoperă toate modurile în care pot fi modificate datele. Actualizările în masă și importurile CSV le pot ocoli. Completați scriptul de eveniment cu o interogare SuiteQL periodică de reconciliere pe lastmodifieddate, pentru a nu omite nicio modificare. În sens invers, webhook-urile proprii SkyPlanner declanșează scrierea datelor înapoi în NetSuite, astfel încât acesta primește noile date calendaristice imediat ce se modifică programul de producție.

Maparea datelor din NetSuite în SkyPlanner

Înregistrare NetSuite (ID REST)Obiect SkyPlannerSensFrecvență
Assembly Item (assemblyItem), Inventory Item (inventoryItem)Produs / materialNetSuite → SkyPlannerÎncărcare inițială, apoi zilnic sau la modificare
BOM Revision (bomRevision), componente BOMStructura produsului pe mai multe niveluri, necesar de materialeNetSuite → SkyPlannerLa modificare
Manufacturing Routing (manufacturingRouting, sublistele routingStep, routingComponent)Etape ale procesului: succesiune, centru de lucru, timp de reglaj, timp de execuțieNetSuite → SkyPlannerLa modificare
Manufacturing Work Center (Group marcat drept centru de lucru): Machine Resources, Labor Resources, Work CalendarCentre de lucru, grupuri de centre de lucru, schimburiNetSuite → SkyPlanner, apoi gestionare în SkyPlannerÎncărcare inițială
Work Order (workOrder): articol, cantitate, locație, Production Start/End Date, stare; Sales Order asociată pentru termenul de livrareComandă / operație cu termen și prioritateNetSuite → SkyPlannerAproape în timp real prin User Event, plus interogări periodice de reconciliere
Manufacturing Operation Task (manufacturingOperationTask)Operație programatăNetSuite → SkyPlanner, date calendaristice SkyPlanner → NetSuiteAproape în timp real
Stoc fizic pe locație (SuiteQL), Item Receipts (itemReceipt)Solduri de stoc pentru programarea în funcție de disponibilitatea materialelorNetSuite → SkyPlannerLa intervale de 15 până la 60 de minute sau la recepție
Linii Purchase Order (purchaseOrder): articol, cantitate, data estimată a recepției, stareComenzi de achiziție / materiale în curs de aprovizionare (data estimată a livrării). Materialele sunt considerate disponibile la data livrării; stocul se actualizează când comanda de achiziție este marcată ca DeliveredNetSuite → SkyPlannerLa intervale de 15 până la 60 de minute sau la modificare
Începutul și sfârșitul planificate pentru fiecare operațiePATCH manufacturingOperationTask/{id} (startDate, endDate) și PATCH workOrder/{id} (Production Start/End Date)SkyPlanner → NetSuiteLa modificarea programului de producție, prin webhook SkyPlanner
Mobile Confirmations, înregistrări de timp, Production TimerPOST workOrder/{id}/!transform/workOrderCompletion: intervalul startOperation/endOperation, cantitatea realizată, timpul de muncă pe liniile operation, ID-ul înregistrării de timp din SkyPlanner ca ID externSkyPlanner → NetSuiteLa fiecare confirmare sau în loturi
Consum de materialePOST workOrder/{id}/!transform/workOrderIssue sau isBackflush la raportarea producției realizateSkyPlanner → NetSuiteLa fiecare confirmare
Comandă finalizată (conturi fără WIP)POST workOrder/{id}/!transform/assemblyBuildSkyPlanner → NetSuiteLa finalizarea comenzii
Comandă închisăWork Order Close (workOrderClose)În NetSuite, de către departamentul financiarNu se automatizează implicit

Modele de integrare

1. Încărcarea inițială a nomenclatoarelor. Citiți prin SuiteQL mai întâi centrele de lucru, apoi articolele, reviziile BOM și fluxurile tehnologice. Fluxurile tehnologice fac referire la centrele de lucru, deci ordinea contează. În perioada de testare, exportați aceleași date în CSV și importați-le în SkyPlanner. Programul este validat înainte de a scrie cod.

2. Sincronizarea comenzilor. Preluați comenzile de producție cu starea Released și In Process. Decideți de la început dacă le includeți și pe cele cu starea Planned. Dacă da, tratați-le ca cerere provizorie. Sincronizați comenzile de achiziție deschise în același ciclu, astfel încât programarea să verifice fiecare operație atât în raport cu stocul, cât și cu materialele care urmează să sosească, nu doar cu stocul.

3. Scrierea programului de producție înapoi în NetSuite. Când programul de producție se modifică, un webhook SkyPlanner trimite noile date calendaristice ale operațiilor către middleware. Pentru fiecare operație modificată, middleware-ul trimite PATCH /services/rest/record/v1/manufacturingOperationTask/{id} (documentația Oracle pentru înregistrare) cu startDate și endDate. Un apel PATCH suplimentar pe antetul workOrder setează câmpurile Production Start și End Date. Scrieți doar datele calendaristice și, dacă folosiți unul, un câmp personalizat pentru succesiune. Nu scrieți niciodată înapoi cantități sau date BOM. Pentru a actualiza mai multe operații într-o singură tranzacție, un mic RESTlet salvează întreaga listă de operații printr-un singur apel. API-ul pentru înregistrări rămâne opțiunea implicită.

4. Confirmări din secția de producție. Operatorii înregistrează munca efectuată în SkyPlanner Mobile Confirmations. Middleware-ul transmite fiecare confirmare prin transformările Work Order, folosind POST /services/rest/record/v1/workOrder/{id}/!transform/workOrderCompletion, cu startOperation, endOperation, cantitatea realizată și timpul înregistrat pe liniile operațiilor. Comenzile de producție fără WIP se închid în schimb cu !transform/assemblyBuild. Work Order Completion prin REST necesită funcționalitatea Manufacturing Work In Process. Înregistrările de stoc și de costuri rămân în NetSuite.

5. Idempotență și reîncercări. Fiecare raportare de finalizare folosește ID-ul înregistrării de timp din SkyPlanner ca ID extern în NetSuite. ID-urile externe sunt unice pentru fiecare tip de înregistrare, astfel încât un webhook retransmis este respins ca duplicat, în loc să înregistreze de două ori cantitățile și costurile. Operațiile de scriere trec printr-o coadă. Un apel eșuat (limită de concurență, înregistrare blocată, certificat expirat) este reîncercat și consemnat în jurnal. Orice eroare care persistă este vizibilă echipei SkyPlanner care asigură suportul integrării.

6. Reguli privind responsabilitatea pentru date. NetSuite stabilește ce se produce: articolul, cantitatea, BOM, fluxul tehnologic și locația. SkyPlanner stabilește când și unde: succesiunea operațiilor, centrul de lucru, începutul și sfârșitul. Datele modificate în NetSuite sunt suprascrise la următoarea actualizare transmisă de SkyPlanner, așa că blocați Production Start/End Date prin personalizarea formularului sau printr-un flux de lucru.

Etapele obișnuite ale proiectului

Implementarea se finalizează de regulă în câteva săptămâni de la începerea configurării inițiale, chiar și în companiile mari. Un proiect NetSuite cuprinde:

  • Testare cu datele proprii: exporturi CSV ale centrelor de lucru, fluxurilor tehnologice și comenzilor de producție deschise, obținute din căutări salvate și importate în SkyPlanner în perioada de testare de 30 de zile.
  • Maparea nomenclatoarelor: corespondența dintre înregistrările NetSuite și obiectele SkyPlanner, câmpurile personalizate, unitățile de măsură și modelul WIP sau non-WIP pentru fiecare articol.
  • Încărcarea inițială: articole, revizii BOM, fluxuri tehnologice și centre de lucru prin SuiteQL, urmate de configurarea schimburilor, operatorilor și centrelor de lucru alternative în SkyPlanner.
  • Sincronizarea comenzilor de producție și de achiziție: comenzi de producție cu starea Released și In Process, plus comenzi de achiziție deschise cu datele estimate de recepție, sincronizate prin scripturi User Event și interogări periodice de reconciliere.
  • Transmiterea programului în NetSuite: datele planificate ale operațiilor sunt înscrise în comenzile de producție și în sarcinile aferente operațiilor, cu OAuth 2.0 M2M configurat în sandbox și în mediul de producție.
  • Confirmări din secția de producție: Work Order Completions, eliberări de materiale sau Assembly Builds generate din Mobile Confirmations și înregistrările de timp.
  • Testare în paralel cu planul curent: rulați programul SkyPlanner în paralel cu procesul actual de lansare în producție și comparați rezultatele.
  • Lansare în producție: mutați planificarea în SkyPlanner și blocați câmpurile de dată în NetSuite.

Fluxurile tehnologice bine definite și o singură filială mențin proiectul la dimensiuni reduse. Mai multe filiale, consumul retroactiv în WIP și formularele personalizate implică muncă suplimentară de mapare.

Capcane specifice NetSuite

  • Comenzi de producție fără flux tehnologic. O comandă de producție fără Manufacturing Routing nu are operații de programat. Oracle spune același lucru despre propriul sistem de programare cu capacitate finită: “Work orders not associated with a NetSuite routing should not be scheduled.” (Comenzile de producție care nu sunt asociate cu un flux tehnologic NetSuite nu ar trebui programate.) Identificați-le prin SuiteQL înainte de lansarea în producție.
  • Centrele de lucru au informații limitate. Un centru de lucru NetSuite este un Group cu două valori numerice, Machine Resources și Labor Resources (ambele au valoarea implicită 0), și un Work Calendar, de obicei “Default Work Calendar”. Încărcați centrele de lucru o singură dată, apoi gestionați în SkyPlanner centrele de lucru individuale, schimburile fiecărei persoane, sculele, matricea timpilor de pregătire și centrele de lucru alternative.
  • Corectitudinea valorilor Setup Time și Run Rate. Programarea cu capacitate infinită din NetSuite folosește aceste câmpuri, dar, deoarece ignoră capacitatea, valorile greșite trec neobservate. Un program cu capacitate finită le scoate la iveală din prima zi.
  • WIP sau non-WIP. Cu Manufacturing WIP, producția realizată se înregistrează prin Work Order Issue, Work Order Completion și Work Order Close. Fără WIP, se folosește Assembly Build. Integrarea înregistrează finalizări pentru articolele WIP și asamblări pentru celelalte, astfel încât modelul fiecărui articol face parte din mapare.
  • Advanced Manufacturing în același cont. Dacă în cont este folosit și Advanced Manufacturing SuiteApp, înregistrările sale Manufacturing Work Bench trebuie să corespundă exact fluxului tehnologic: succesiunea operațiilor, denumirea operației și centrul de lucru. Decideți ce sistem stabilește datele operațiilor. Două sisteme care programează aceleași comenzi de producție înseamnă două planuri concurente.
  • Limite de concurență. Serviciile web și apelurile RESTlet împart aceeași limită de apeluri simultane la nivel de cont, stabilită în funcție de nivelul de servicii, la care se adaugă 10 pentru fiecare licență SuiteCloud Plus. Interogarea periodică în paralel a fiecărei înregistrări atinge rapid această limită. Folosiți SuiteQL cu paginare pentru citiri și o coadă pentru scrieri.
  • Reîmprospătarea sandbox-ului șterge configurarea M2M. Asocierile OAuth 2.0 Client Credentials sunt șterse la reîmprospătarea sandbox-ului și nu sunt copiate între conturi. Un certificat expirat sau revocat oprește sincronizarea până la crearea unei noi asocieri. Configurați alerte pentru erorile de autentificare.

Integrarea cu NetSuite: cine o configurează și cine asigură suportul

Lucrările includ maparea înregistrărilor, fluxurilor tehnologice și centrelor de lucru, precum și configurarea constrângerilor pe care NetSuite nu le păstrează ca date utilizabile în programare: matricea timpilor de pregătire, sculele, numărul de operatori și resursele alternative. Webhook-urile SkyPlanner transmit înapoi modificările programului pe măsură ce apar, inclusiv pe cele făcute de Autopilot.

  1. Echipa SkyPlanner configurează integrarea în etapa inițială și asigură suportul după lansarea în producție. Fiecare fabrică folosește NetSuite diferit: WIP sau non-WIP, formulare personalizate, scripturi, convenții pentru fluxurile tehnologice. Echipa mapează înregistrările dumneavoastră și conectează API-ul REST și webhook-urile SkyPlanner la NetSuite REST, SuiteQL și RESTlets. Suportul acoperă scriptul User Event și middleware-ul și ține cont de modificările configurației NetSuite.
  2. Partenerul dumneavoastră NetSuite poate participa. Partenerii cunosc formularele personalizate, scripturile și rolurile pe care le folosiți. Ei lucrează cu API-ul REST SkyPlanner, care acoperă comenzi, produse, materiale, comenzi de achiziție, etape de proces și înregistrări de timp. Acesta are documentație Swagger/OpenAPI și autentificare JWT. Documentație publică: documentația SkyPlanner.
  3. Dezvoltatorii dumneavoastră pot construi pe această bază. O împărțire frecventă: scriptul User Event în NetSuite și un mic serviciu middleware în afara lui. O cheie API este suficientă pentru a începe (tutorial de integrare), iar echipa SkyPlanner oferă ajutor la nevoie.

Validați mai întâi programul în perioada de testare gratuită de 30 de zile, cu date CSV și până la 20 de centre de lucru, fără card de credit. Integrarea pornește astfel de la un program deja potrivit fabricii.

După conectare, motorul Arcturus programează producția pe baza comenzilor actualizate din NetSuite și verifică materialele din stoc și din comenzile de achiziție care urmează să sosească. Operatorii își înregistrează activitatea cu Mobile Confirmations, Production Timer și Quick Log Mode, iar NetSuite reflectă situația din secția de producție fără introducere manuală de date. SkyPlanner pornește de la 199 € pe lună, cu 5 centre de lucru incluse, facturare lunară și posibilitatea de a anula oricând. Primiți în avans o ofertă pentru integrare, adaptată procesului și nevoilor dumneavoastră, împreună cu abonamentul, astfel încât să cunoașteți costul total înainte de a începe. Discutați cu echipa de vânzări pentru definirea domeniului integrării cu NetSuite sau consultați funcționalitățile și clienții.

Părerile producătorilor despre SkyPlanner

Kalle Kalliomäki, specialist în lanțul de aprovizionare la UTU, în secția de producție a tablourilor electrice din Ulvila

2 heconomisite în fiecare săptămână

„Cu SkyPlanner, am trecut de la planificarea producției în foi de calcul Excel la optimizarea producției în timp real.”

Kalle Kalliomäki, specialist în lanțul de aprovizionare
UTU · Tablouri electrice și aparataj de comutație

Planificarea producției economisește 2 ore de lucru în fiecare săptămână, iar o nouă coadă de operații ajunge pe linia de producție în câteva secunde.

Citiți mărturia UTU

Operatori în costume pentru camere curate la o linie de umplere a flacoanelor din fabrica de produse farmaceutice Laboratory & Allied din Nairobi

+90%eficiență în producție

„Eficiența în producție a crescut cu 90%.”

Abdul Rucyinga, director IT
Laboratory & Allied · Producție farmaceutică

Eficiența în producție a crescut cu 90%, iar realizarea unui plan optimizat pe trei luni pentru toate centrele de lucru durează mai puțin de 30 de minute.

Citiți mărturia Laboratory & Allied

Vedere aeriană a fabricii Piristeel de sisteme de siguranță pentru acoperișuri din Kauhava

99,2%respectarea termenelor de livrare

„SkyPlanner ne-a oferit vizibilitatea necesară pentru a identifica blocajele și a adus mai multă claritate în gestionarea producției.”

Toni Tuori, director de producție
Piristeel · Sisteme de siguranță pentru acoperișuri și sisteme pluviale

Anul acesta, rata de respectare a termenelor de livrare a ajuns la 99,2%, iar programarea producției economisește până la patru ore de lucru pe zi.

Citiți mărturia Piristeel

Anu Järvinen, director de producție la Fredman Operations, lângă o celulă robotizată de paletizare din Rauma

6 luniîn avans: echipa de vânzări vede capacitatea disponibilă

„SkyPlanner oferă o bază solidă și siguranță pentru întreaga planificare a producției.”

Anu Järvinen, director de producție
Fredman Operations · Hârtie pentru ambalaje destinate contactului cu alimentele

Echipa de vânzări vede capacitatea disponibilă cu șase luni în avans, iar solicitările de modificare a programului, care înainte necesitau o oră sau mai mult, primesc acum răspuns în câteva secunde.

Citiți mărturia Fredman Operations

Întrebări frecvente

Cum se conectează SkyPlanner APS la NetSuite?

În ambele sensuri, prin API-ul NetSuite REST pentru înregistrări, SuiteQL și, unde este nevoie, RESTlet-uri. Datele calendaristice ale operațiilor sunt scrise cu PATCH pe manufacturingOperationTask. Timpul de muncă și cantitățile realizate sunt înregistrate prin transformarea workOrderCompletion sau assemblyBuild. Echipa SkyPlanner configurează integrarea în etapa de implementare și asigură asistența după punerea în funcțiune, iar partenerul dumneavoastră NetSuite sau propriii dezvoltatori o pot extinde folosind API-ul REST documentat.

Avem nevoie de Advanced Manufacturing SuiteApp pentru a utiliza SkyPlanner?

Nu. SkyPlanner realizează singur programarea cu capacitate finită, folosind înregistrările standard Work Orders, Manufacturing Routings și Work Centers. Dacă în cont este utilizat și Advanced Manufacturing, în etapa de definire a domeniului se stabilește care sistem va fixa datele operațiilor.

Cum se evită înregistrările duplicate dacă un eveniment este trimis de două ori?

Fiecare Work Order Completion folosește ID-ul înregistrării de timp din SkyPlanner ca ID extern. NetSuite impune unicitatea ID-urilor externe pentru fiecare tip de înregistrare, astfel încât un eveniment retrimis este respins, în loc să înregistreze din nou cantitatea și costul. Operațiunile de scriere eșuate sunt puse în coadă, reîncercate și consemnate în jurnal.

Putem folosi TBA sau SOAP în loc de REST și OAuth 2.0?

Pentru integrările noi, alegeți REST cu OAuth 2.0. Oracle nu mai permite integrări noi prin TBA și SOAP începând cu versiunea 2027.1 și dezactivează toate endpointurile SOAP în versiunea 2028.2. O integrare SkyPlanner bazată pe REST și OAuth 2.0 continuă să funcționeze și după ambele termene.

Cum află SkyPlanner despre noile comenzi de producție din NetSuite?

NetSuite nu are un webhook standard documentat pentru notificări de ieșire. Un script User Event pe Work Order pune o notificare în coadă la salvare. O interogare periodică SuiteQL detectează modificările pe care scriptul nu le surprinde, cum ar fi importurile CSV și actualizările în masă.

Putem testa SkyPlanner cu date din NetSuite înainte de a realiza integrarea?

Da. Exportați centrele de lucru, fluxurile tehnologice și comenzile de producție deschise în format CSV, importați-le în SkyPlanner în perioada de probă de 30 de zile și comparați programul de producție calculat ținând cont de capacitatea finită cu planul actual. Începeți proba gratuită sau programați o demonstrație.

Cât durează un proiect de integrare cu NetSuite?

Implementarea se finalizează de obicei în câteva săptămâni de la începerea procesului de configurare inițială, chiar și în companiile mari. Programarea producției funcționează deja cu date CSV în perioada de probă, iar UTU utilizează în prezent SkyPlanner împreună cu NetSuite (mărturia UTU).