Integrasi / ERP / Oracle NetSuite
Panduan Integrasi NetSuite untuk Penjadwalan Produksi dengan SkyPlanner APS
Panduan ini menjelaskan kepada mitra NetSuite, administrator, dan pembeli teknis cara menghubungkan SkyPlanner APS ke Oracle NetSuite untuk penjadwalan produksi yang memperhitungkan kapasitas nyata mesin dan tenaga kerja. SkyPlanner terintegrasi dua arah dengan NetSuite melalui REST web services dan SuiteQL:
- Work order, routing, work center, item, dan pesanan pembelian diimpor ke SkyPlanner.
- Waktu mulai dan selesai yang direncanakan dituliskan ke tugas operasi manufaktur.
- Jam kerja yang tercatat dan jumlah hasil produksi dikirim kembali sebagai Work Order Completions atau Assembly Builds.
- Webhook SkyPlanner mengirim perubahan jadwal begitu perubahan terjadi.
NetSuite menjadi sumber acuan untuk item, BOM, routing, work order, persediaan, dan perhitungan biaya. SkyPlanner menyusun jadwal produksi sesuai kapasitas nyata mesin dan tenaga kerja dengan mesin Arcturus. Tim SkyPlanner mengonfigurasi integrasi untuk akun Anda selama proses orientasi dan memberikan dukungan setelah sistem mulai digunakan. Integrasi ini menggunakan record standar NetSuite dan tidak bergantung pada Advanced Manufacturing SuiteApp.
SkyPlanner sudah beroperasi dengan integrasi NetSuite di UTU, produsen panel distribusi dan perangkat hubung listrik di Ulvila, Finlandia. UTU mulai menggunakan sistem ini pada September 2025, dengan SkyPlanner yang terintegrasi ke Oracle NetSuite dan sistem penggajiannya. Untuk memahami manfaat bisnisnya, mulai dari halaman penjadwalan produksi NetSuite dan Apakah NetSuite mendukung penjadwalan produksi sesuai kapasitas nyata?.
Satu keputusan yang menentukan arah proyek: REST dan OAuth 2.0
Oracle telah menetapkan arahnya. Mulai versi 2026.1, integrasi baru sebaiknya dibangun menggunakan SuiteTalk REST web services dengan OAuth 2.0. Mulai versi 2027.1, tidak ada lagi integrasi baru yang menggunakan SOAP atau Token-Based Authentication (TBA). Endpoint SOAP dinonaktifkan pada versi 2028.2. Setiap integrasi penjadwalan yang dimulai saat ini harus menggunakan REST.
| Opsi NetSuite | Penjelasan | Peran dalam integrasi APS |
|---|---|---|
| SuiteTalk REST record API | /services/rest/record/v1/<recordType>, dengan versi yang mengikuti rilis NetSuite; !transform untuk pencatatan penyelesaian work order, pengeluaran material, dan hasil perakitan | Penulisan data: tanggal tugas operasi dan work order (PATCH), penyelesaian, pengeluaran material, dan hasil perakitan (transform) |
| SuiteQL melalui REST | POST /services/rest/query/v1/suiteql dengan Prefer: transient, hingga 100.000 hasil per kueri, paginasi limit/offset | Pembacaan data massal: item, routing, work center, work order terbuka, stok |
| SuiteScript 2.1 RESTlets | Endpoint get/post/put/delete kustom | Menangani kebutuhan yang belum dicakup REST dan payload gabungan, seperti work order beserta seluruh operasinya |
| SuiteScript User Event / Map-Reduce | Skrip yang berjalan di sisi server dalam NetSuite | Notifikasi perubahan ke sistem eksternal |
| CSV Import Assistant | Pemetaan impor yang tersimpan | Pemuatan data sekali saja; bukan untuk sinkronisasi berkelanjutan |
| SuiteTalk SOAP | Teknologi lama, hanya mendukung TBA | Jangan gunakan untuk pengembangan baru |
Autentikasi
Untuk sistem penjadwalan yang berkomunikasi antarserver, gunakan OAuth 2.0 Client Credentials (machine-to-machine). Jalur menu administratornya adalah Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup. Unggah sertifikat publik, lalu petakan ke entitas, peran, dan record integrasi. Setiap record integrasi dapat menyimpan paling banyak lima sertifikat aktif.
Buat peran khusus untuk integrasi: berikan hak lihat untuk item, revisi BOM, routing, dan work center; serta hak edit untuk work order, pencatatan penyelesaian, dan pengeluaran material. SkyPlanner REST API (referensi API) menggunakan JWT, sehingga middleware menyimpan kedua kredensial tersebut.
Event: tidak ada webhook standar
Dokumentasi Oracle tidak menjelaskan adanya webhook keluar bawaan. Pola yang digunakan adalah skrip SuiteScript User Event pada Work Order (afterSubmit) yang mengantrekan panggilan keluar melalui N/task atau skrip Map/Reduce, lalu melakukan panggilan dengan N/https. Jangan pernah melakukan panggilan keluar secara sinkron di afterSubmit: panggilan tersebut berjalan di dalam proses penyimpanan pengguna, sehingga endpoint yang lambat akan memperlambat atau menggagalkan penyimpanan.
User Event tidak mencakup semua jalur perubahan data. Pembaruan massal dan impor CSV dapat melewatinya. Lengkapi skrip event dengan polling rekonsiliasi SuiteQL terjadwal berdasarkan lastmodifieddate agar tidak ada perubahan yang terlewat. Untuk arah sebaliknya, webhook SkyPlanner sendiri memicu penulisan balik, sehingga NetSuite menerima tanggal baru segera setelah rencana berubah.
Pemetaan data: dari NetSuite ke SkyPlanner
| Record NetSuite (ID REST) | Objek SkyPlanner | Arah | Frekuensi |
|---|---|---|---|
Assembly Item (assemblyItem), Inventory Item (inventoryItem) | Produk / material | NetSuite → SkyPlanner | Pemuatan awal, lalu setiap hari atau saat ada perubahan |
BOM Revision (bomRevision), komponen BOM | Struktur produk bertingkat, kebutuhan material | NetSuite → SkyPlanner | Saat ada perubahan |
Manufacturing Routing (manufacturingRouting, subdaftar routingStep, routingComponent) | Tahapan proses: urutan, stasiun kerja, waktu setup, waktu proses | NetSuite → SkyPlanner | Saat ada perubahan |
| Manufacturing Work Center (Group yang ditandai sebagai work center): Machine Resources, Labor Resources, Work Calendar | Stasiun kerja, kelompok stasiun kerja, sif | NetSuite → SkyPlanner, selanjutnya dikelola di SkyPlanner | Pemuatan awal |
Work Order (workOrder): item, kuantitas, lokasi, Production Start/End Date, status; Sales Order terkait untuk tanggal jatuh tempo | Pesanan / job dengan tanggal jatuh tempo dan prioritas | NetSuite → SkyPlanner | Mendekati real-time melalui User Event, dilengkapi polling rekonsiliasi |
Manufacturing Operation Task (manufacturingOperationTask) | Operasi terjadwal | NetSuite → SkyPlanner, tanggal dari SkyPlanner → NetSuite | Mendekati real-time |
Stok fisik per lokasi (SuiteQL), Item Receipts (itemReceipt) | Saldo stok untuk penjadwalan berdasarkan ketersediaan material | NetSuite → SkyPlanner | Setiap 15 hingga 60 menit atau saat penerimaan barang |
Baris Purchase Order (purchaseOrder): item, kuantitas, perkiraan tanggal penerimaan, status | Pesanan pembelian / material masuk (perkiraan tanggal penerimaan). Dihitung tersedia pada tanggal penerimaan; stok diperbarui saat PO ditandai Delivered | NetSuite → SkyPlanner | Setiap 15 hingga 60 menit atau saat ada perubahan |
| Jadwal mulai dan selesai per operasi | PATCH manufacturingOperationTask/{id} (startDate, endDate) dan PATCH workOrder/{id} (Production Start/End Date) | SkyPlanner → NetSuite | Saat jadwal berubah, melalui webhook SkyPlanner |
| Mobile Confirmations, catatan waktu, Production Timer | POST workOrder/{id}/!transform/workOrderCompletion: rentang startOperation/endOperation, kuantitas yang selesai, waktu kerja pada baris operation, ID catatan waktu SkyPlanner sebagai ID eksternal | SkyPlanner → NetSuite | Per konfirmasi atau secara batch |
| Pemakaian material | POST workOrder/{id}/!transform/workOrderIssue, atau isBackflush pada pencatatan penyelesaian | SkyPlanner → NetSuite | Per konfirmasi |
| Pesanan selesai (akun non-WIP) | POST workOrder/{id}/!transform/assemblyBuild | SkyPlanner → NetSuite | Saat pesanan selesai |
| Pesanan ditutup | Work Order Close (workOrderClose) | Di NetSuite, oleh bagian keuangan | Tidak diotomatiskan secara default |
Pola integrasi
1. Pemuatan awal master data. Baca work center terlebih dahulu, lalu item, revisi BOM, dan routing menggunakan SuiteQL. Routing merujuk ke work center, jadi urutannya penting. Selama uji coba, ekspor data yang sama ke CSV dan impor ke SkyPlanner. Jadwal divalidasi sebelum kode apa pun dibuat.
2. Sinkronisasi pesanan. Ambil work order yang berstatus Released dan In Process. Tentukan sejak awal apakah work order berstatus Planned juga akan disertakan. Jika disertakan, perlakukan sebagai permintaan sementara. Sinkronkan pesanan pembelian yang masih terbuka dalam siklus yang sama agar penjadwalan memeriksa setiap job berdasarkan stok dan material yang akan datang, bukan hanya stok.
3. Penulisan balik jadwal. Saat jadwal berubah, webhook SkyPlanner mengirim tanggal operasi yang baru ke middleware. Middleware mengirim PATCH /services/rest/record/v1/manufacturingOperationTask/{id} (referensi record Oracle) dengan startDate dan endDate untuk setiap operasi yang berubah. Satu PATCH tambahan pada header workOrder menetapkan Production Start dan End Date. Tulis hanya tanggal dan, jika digunakan, field urutan kustom. Jangan pernah menulis balik kuantitas atau data BOM. Untuk memperbarui banyak operasi dalam satu transaksi, RESTlet sederhana menyimpan seluruh daftar operasi dalam satu panggilan. Record API tetap menjadi pilihan default.
4. Konfirmasi dari lantai produksi. Operator mencatat pekerjaan di SkyPlanner Mobile Confirmations. Middleware mengirim setiap konfirmasi melalui transformasi Work Order dengan POST /services/rest/record/v1/workOrder/{id}/!transform/workOrderCompletion, yang memuat startOperation, endOperation, kuantitas yang selesai, dan waktu yang dicatat pada baris operasi. Untuk work order non-WIP, penutupan dilakukan dengan !transform/assemblyBuild. Work Order Completion melalui REST memerlukan fitur Manufacturing Work In Process. Pembukuan persediaan dan biaya tetap dilakukan di NetSuite.
5. Idempotensi dan percobaan ulang. Setiap pencatatan penyelesaian menggunakan ID catatan waktu SkyPlanner sebagai ID eksternal di NetSuite. ID eksternal bersifat unik untuk setiap jenis record, sehingga webhook yang dikirim ulang ditolak sebagai duplikat, bukan mencatat jumlah dan biaya dua kali. Penulisan data dilakukan melalui antrean. Panggilan yang gagal (karena batas konkurensi, record terkunci, atau sertifikat kedaluwarsa) dicoba ulang dan dicatat dalam log. Kegagalan yang masih terjadi dapat dilihat oleh tim SkyPlanner yang mendukung integrasi.
6. Aturan kewenangan data. NetSuite menentukan apa yang dibuat: item, jumlah, BOM, routing, dan lokasi. SkyPlanner menentukan kapan dan di mana: urutan operasi, stasiun kerja, serta waktu mulai dan selesai. Tanggal yang diedit di NetSuite akan ditimpa saat penulisan balik berikutnya, jadi kunci Production Start/End Date melalui penyesuaian formulir atau alur kerja.
Tahapan proyek pada umumnya
Implementasi biasanya selesai dalam hitungan minggu setelah proses orientasi dimulai, bahkan untuk perusahaan besar. Proyek NetSuite mencakup:
- Uji coba dengan data Anda sendiri: ekspor CSV berisi work center, routing, dan work order yang masih terbuka dari pencarian tersimpan, lalu impor ke SkyPlanner selama masa uji coba 30 hari.
- Pemetaan master data: petakan record NetSuite ke objek SkyPlanner, termasuk kolom kustom, satuan, dan model WIP atau non-WIP untuk setiap item.
- Pemuatan awal: muat item, revisi BOM, routing, dan work center melalui SuiteQL, lalu atur sif, operator, dan stasiun kerja alternatif di SkyPlanner.
- Sinkronisasi pesanan dan pesanan pembelian: sinkronkan work order berstatus Released dan In Process serta pesanan pembelian yang masih terbuka beserta perkiraan tanggal penerimaannya, menggunakan skrip User Event dan polling rekonsiliasi.
- Penulisan balik jadwal: tuliskan tanggal operasi yang direncanakan ke work order dan tugas operasi, dengan OAuth 2.0 M2M yang dikonfigurasi di lingkungan sandbox dan produksi.
- Konfirmasi dari lantai produksi: catat Work Order Completions, pengeluaran material, atau Assembly Builds berdasarkan Mobile Confirmations dan catatan waktu.
- Pengujian paralel dengan rencana saat ini: jalankan jadwal SkyPlanner berdampingan dengan proses pelepasan work order yang digunakan saat ini, lalu bandingkan hasilnya.
- Mulai operasional: alihkan perencanaan ke SkyPlanner dan kunci kolom tanggal di NetSuite.
Data routing yang rapi dan hanya satu anak perusahaan menjaga lingkup proyek tetap kecil. Banyak anak perusahaan, backflush WIP, dan formulir kustom menambah pekerjaan pemetaan.
Kendala NetSuite yang perlu diwaspadai
- Work order tanpa routing. Work order tanpa Manufacturing Routing tidak memiliki operasi untuk dijadwalkan. Oracle menyatakan hal yang sama tentang sistem penjadwalan produksinya sendiri yang memperhitungkan kapasitas nyata: “Work orders not associated with a NetSuite routing should not be scheduled.” (Work order yang tidak terkait dengan routing NetSuite tidak boleh dijadwalkan.) Temukan work order tersebut dengan SuiteQL sebelum sistem mulai digunakan.
- Data work center terbatas. Work center di NetSuite berupa Group dengan dua nilai jumlah, Machine Resources dan Labor Resources (keduanya secara default bernilai 0), serta satu Work Calendar, biasanya “Default Work Calendar”. Muat work center sekali, lalu kelola setiap stasiun kerja, sif per orang, perkakas, matriks waktu penyiapan dan pergantian, serta stasiun kerja alternatif di SkyPlanner.
- Kualitas data Setup Time dan Run Rate. Penjadwalan NetSuite yang tidak membatasi kapasitas menggunakan kolom-kolom ini, tetapi karena kapasitas diabaikan, nilai yang salah tidak terdeteksi. Penjadwalan produksi yang memperhitungkan kapasitas nyata mengungkap kesalahan tersebut sejak hari pertama.
- WIP atau non-WIP. Dengan Manufacturing WIP, hasil produksi dicatat melalui Work Order Issue, Work Order Completion, dan Work Order Close. Tanpa WIP, digunakan Assembly Build. Integrasi mencatat penyelesaian untuk item WIP dan Assembly Build untuk item lainnya, sehingga model setiap item menjadi bagian dari pemetaan.
- Advanced Manufacturing dalam akun yang sama. Jika akun juga menjalankan Advanced Manufacturing SuiteApp, record Manufacturing Work Bench harus sama persis dengan routing: urutan operasi, nama operasi, dan work center. Tentukan sistem mana yang menetapkan tanggal operasi. Dua sistem penjadwalan untuk work order yang sama berarti dua rencana yang saling bertentangan.
- Batas konkurensi. Panggilan web services dan RESTlet berbagi satu batas konkurensi akun, yang ditentukan oleh tingkat layanan ditambah 10 untuk setiap lisensi SuiteCloud Plus. Polling paralel per record cepat mencapai batas ini. Gunakan SuiteQL dengan paginasi untuk membaca data dan antrean untuk menulis data.
- Penyegaran sandbox menghapus konfigurasi M2M. Pemetaan OAuth 2.0 client credentials dihapus saat sandbox disegarkan dan tidak disalin antar-akun. Sertifikat yang kedaluwarsa atau dicabut menghentikan sinkronisasi sampai pemetaan baru dibuat. Siapkan peringatan untuk kegagalan autentikasi.
Integrasi NetSuite: siapa yang mengonfigurasi dan memberikan dukungan
Pekerjaan ini mencakup pemetaan ke record, routing, dan work center Anda, serta batasan yang tidak disimpan NetSuite sebagai data untuk penjadwalan: matriks waktu penyiapan dan pergantian, perkakas, jumlah operator, dan sumber daya alternatif. Webhook SkyPlanner mengirim kembali perubahan jadwal begitu terjadi, termasuk perubahan yang dibuat Autopilot.
- Tim SkyPlanner mengonfigurasinya selama proses orientasi dan memberikan dukungan setelah sistem mulai digunakan. Setiap pabrik menggunakan NetSuite dengan cara berbeda: WIP atau non-WIP, formulir kustom, skrip, dan aturan routing. Tim memetakan record Anda dan menghubungkan SkyPlanner REST API serta webhook ke NetSuite REST, SuiteQL, dan RESTlets. Dukungan mencakup skrip User Event dan middleware, serta mengikuti perubahan konfigurasi NetSuite Anda.
- Mitra NetSuite Anda dapat ikut terlibat. Mitra memahami formulir kustom, skrip, dan peran Anda. Mereka menggunakan SkyPlanner REST API, yang mencakup pesanan, produk, material, pesanan pembelian, tahapan proses, dan catatan waktu. API ini memiliki dokumentasi Swagger/OpenAPI dan autentikasi JWT. Dokumentasi publik: dokumentasi SkyPlanner.
- Pengembang internal Anda dapat membangun integrasi di atasnya. Pembagian yang umum adalah skrip User Event di dalam NetSuite dan layanan middleware kecil di luarnya. Cukup dengan kunci API untuk memulai (tutorial integrasi), dan tim SkyPlanner siap membantu saat diperlukan.
Validasi jadwal terlebih dahulu melalui uji coba gratis 30 hari, menggunakan data CSV dengan hingga 20 stasiun kerja, tanpa kartu kredit. Dengan begitu, integrasi dimulai dari jadwal yang sudah sesuai dengan kondisi pabrik.
Setelah terhubung, mesin Arcturus menyusun jadwal dari data work order terkini di NetSuite dan memeriksa material berdasarkan stok serta pesanan pembelian yang akan datang. Operator mencatat pekerjaan dengan Mobile Confirmations, Production Timer, dan Quick Log Mode, sehingga NetSuite mencerminkan kondisi lantai produksi tanpa entri manual. Harga SkyPlanner mulai dari 199 € per bulan, termasuk 5 stasiun kerja, ditagih bulanan, dan dapat dibatalkan kapan saja. Penawaran biaya integrasi disampaikan di awal sesuai proses dan kebutuhan Anda, bersama paket langganan, sehingga Anda mengetahui total biaya sebelum memulai. Hubungi tim penjualan untuk menentukan lingkup integrasi NetSuite Anda, atau lihat fitur dan pelanggan.
Ulasan SkyPlanner dari perusahaan manufaktur
2 hdihemat setiap minggu
“Dengan SkyPlanner, perencanaan produksi kami beralih dari spreadsheet Excel ke optimasi produksi secara real-time.”
Kalle Kalliomäki, Spesialis Rantai Pasok
UTU · Panel distribusi listrik dan perangkat hubung bagi
Perencanaan produksi menghemat 2 jam kerja setiap minggu, dan antrean kerja baru diterima lini produksi dalam hitungan detik.
+90%efisiensi produksi
“Efisiensi produksi meningkat 90%.”
Abdul Rucyinga, Kepala TI
Laboratory & Allied · Manufaktur farmasi
Efisiensi produksi meningkat 90%, dan penyusunan rencana optimal untuk tiga bulan di seluruh stasiun kerja membutuhkan waktu kurang dari 30 menit.
99,2%keandalan pengiriman
“SkyPlanner memudahkan kami melihat hambatan produksi dan membuat pengelolaan produksi lebih jelas.”
Toni Tuori, Manajer Produksi
Piristeel · Sistem keselamatan atap dan penyaluran air hujan
Keandalan pengiriman mencapai 99,2% tahun ini, dan penjadwalan menghemat hingga empat jam kerja per hari.
6 bulanke depan: kapasitas tersedia dapat dilihat tim penjualan
“SkyPlanner menjadi landasan yang andal bagi seluruh perencanaan produksi.”
Anu Järvinen, Manajer Produksi
Fredman Operations · Kertas kemasan yang aman untuk pangan
Tim penjualan dapat melihat kapasitas yang tersedia hingga enam bulan ke depan. Permintaan perubahan jadwal yang sebelumnya memerlukan satu jam atau lebih kini dapat dijawab dalam hitungan detik.
Pertanyaan umum
Bagaimana SkyPlanner APS terhubung ke NetSuite?
Koneksi berjalan dua arah melalui NetSuite REST record API, SuiteQL dan, bila diperlukan, RESTlets. Tanggal operasi ditulis dengan PATCH pada manufacturingOperationTask. Data tenaga kerja dan hasil produksi dicatat melalui transformasi workOrderCompletion atau assemblyBuild. Tim SkyPlanner mengonfigurasikannya selama onboarding dan memberikan dukungan setelah sistem mulai digunakan. Mitra NetSuite atau pengembang internal Anda juga dapat mengembangkannya lebih lanjut menggunakan REST API yang terdokumentasi.
Apakah kami memerlukan Advanced Manufacturing SuiteApp untuk menggunakan SkyPlanner?
Tidak. SkyPlanner sendiri menjalankan penjadwalan produksi sesuai kapasitas nyata mesin dan tenaga kerja menggunakan Work Orders, Manufacturing Routings, dan Work Centers standar. Jika akun Anda juga menggunakan Advanced Manufacturing, sistem yang menetapkan tanggal operasi ditentukan saat penentuan lingkup.
Bagaimana pencatatan ganda dicegah jika suatu event dikirim dua kali?
Setiap Work Order Completion menggunakan ID timelog SkyPlanner sebagai external ID. NetSuite memastikan external ID unik untuk setiap jenis record, sehingga event yang dikirim ulang ditolak dan tidak mencatat kuantitas serta biaya untuk kedua kalinya. Penulisan data yang gagal dimasukkan ke antrean, dicoba ulang, dan dicatat dalam log.
Bisakah kami menggunakan TBA atau SOAP sebagai pengganti REST dan OAuth 2.0?
Untuk integrasi baru, gunakan REST dengan OAuth 2.0. Oracle menghentikan integrasi TBA dan SOAP baru mulai 2027.1 dan menonaktifkan seluruh endpoint SOAP pada 2028.2. Integrasi SkyPlanner yang dibangun dengan REST dan OAuth 2.0 tetap berfungsi melewati kedua versi tersebut.
Bagaimana SkyPlanner mengetahui adanya work order baru di NetSuite?
NetSuite tidak memiliki webhook keluar standar yang terdokumentasi. Skrip User Event pada Work Order memasukkan notifikasi ke antrean saat data disimpan. Polling SuiteQL terjadwal menangkap perubahan yang terlewat oleh skrip, seperti impor CSV dan pembaruan massal.
Bisakah kami menguji SkyPlanner dengan data NetSuite sebelum membangun integrasi?
Ya. Ekspor work center, routing, dan work order yang masih terbuka sebagai CSV, lalu impor ke SkyPlanner selama masa uji coba 30 hari. Bandingkan jadwal produksi yang memperhitungkan kapasitas nyata dengan rencana Anda saat ini. Mulai uji coba gratis atau jadwalkan demo.
Berapa lama proyek integrasi NetSuite berlangsung?
Implementasi biasanya selesai dalam hitungan minggu setelah proses orientasi dimulai, bahkan untuk perusahaan besar. Penjadwalan sudah berjalan dengan data CSV selama masa uji coba, dan saat ini UTU menggunakan SkyPlanner bersama NetSuite (ulasan UTU).