Struktur data Skyplanner #
Sebelum kita masuk ke dalam catatan waktu, kita perlu membahas sedikit tentang struktur data di Skyplanner dan bagaimana segala sesuatunya bekerja di balik layar. Semua ini akan berperan nanti.
Jika Anda mengintegrasikan data pesanan/perintah kerja/pekerjaan Anda ke dalam Skyplanner, kemungkinan besar Anda menggunakan setidaknya API-endpoint ini:
- pesanan phaser
- urutan-baris phaser
- phaser-pekerjaan
Secara efektif, data yang dimasukkan ke dalam titik akhir ini direpresentasikan dalam UI Skyplanner seperti ini:
Setelah memasukkan pesanan Anda ke Skyplanner, Anda harus mengekspornya (ini dapat dilakukan melalui UI atau /phaser-orders/export-endpoint) ke dalam modul Penjadwalan Produksi:
Ketika mengekspor pesanan, Skyplanner secara efektif menyalin data pesanan dari satu tabel database ke tabel database lainnya. Jadi, jika anda mengubah sesuatu misalnya melalui /phaser-orders -endpoint, anda perlu mengekspor data lagi untuk memperbaruinya di Penjadwalan Produksi. Hal ini juga berarti bahwa untuk mengakses pesanan yang Anda lihat di jendela Penjadwalan Produksi, Anda harus menggunakan API-endpoint yang berbeda!
Titik akhir yang “diubah” adalah seperti ini:
- /phaser-pesanan → /pesanan
- /phaser-baris-pesanan → /baris-pesanan
- /phaser-jobs → /jobs
Hal ini penting untuk diketahui, karena ketika menggunakan /timelogs -endpoint untuk mencatat peristiwa produksi Anda, dll. , Anda harus menggunakan entitas terkait yang ditemukan di Penjadwalan Produksi -endpoint!
Sebagai contoh, Anda memerlukan production_planning_job_id (untuk mengulangi: production_planning_jobs adalah entitas yang diakses dari titik akhir /jobs) untuk POST timelog baru:
Anda dapat menemukan production_planning_job_id yang Anda butuhkan dari titik akhir /phaser-jobs:
Atau dari titik akhir /job:
Membuat catatan waktu menggunakan REST-API #
Membuat catatan waktu ke Skyplanner melalui API menggunakan aturan dan sistem yang sama dengan yang ada di UI. Jadi, akan lebih baik jika Anda membiasakan diri dengan cara kerja sistem di UI sebelum mencoba menggunakannya melalui API.
Dasar-dasar catatan waktu #
Skyplanner memiliki empat jenis peristiwa catatan waktu:
- shift_begin
- berhenti sejenak
- lanjutan
- shift_end
Shift_begin-event dikirim ketika pekerjaan dimulai untuk pertama kalinya. Jangan pernah mengirim lebih dari satu peristiwa shift_begin untuk setiap pekerjaan!
Acara yang dijeda akan menghentikan pekerjaan.
Acara lanjutan melanjutkan pekerjaan yang dijeda.
Shift_end menyelesaikan pekerjaan. Jangan pernah mengirim lebih dari satu peristiwa shift_end untuk setiap pekerjaan!
Data yang diperlukan untuk catatan waktu:
- person_id
- Dapat ditemukan dari titik akhir /people
- Tidak sama dengan user_id!
- rencana_stasiun_kerja_id
- Stasiun kerja tempat pekerjaan sedang dilakukan
- Dapat ditemukan dari titik akhir /workstations
- tanggal_waktu
- Titik waktu acara dilakukan
- Format: 2024-01-01 10:30:11
Untuk menentukan timelog Skyplanner apa yang terkait dengan timelog dari sistem eksternal apa pun yang Anda gunakan, Anda dapat menggunakan bidang external_id . Anda kemudian dapat membuat permintaan GET menggunakan id ini untuk menemukan timelog tertentu dari Skyplanner.
Memulai pekerjaan #
Anda dapat memulai pekerjaan dengan mengirimkan permintaan POST seperti ini ke API:
Saat mengatur data POST untuk timelog, atur workshift_id sebagai 0 dan timelog_finalized sebagai true
Menjeda pekerjaan #
Jeda pekerjaan dengan mengirimkan permintaan POST seperti ini:
Pada timelog tipe jeda, Anda dapat mengatur jumlah dan faulty_amount. Perhatikan juga tipe timelog dan date_time.
Melanjutkan pekerjaan #
Berikut ini adalah cara Anda melanjutkan catatan waktu yang dijeda:
Perhatikan bahwa jika Anda mencoba melanjutkan pekerjaan yang telah diakhiri oleh peristiwa shift_end, Anda akan mendapatkan kesalahan.
Mengakhiri pekerjaan #
Berikut ini adalah cara Anda mengakhiri pekerjaan dengan catatan waktu shift_end:
Dalam shift_end-events anda dapat memberikan nilai amount dan faulty_amount seperti pada paused-events. Perhatikan bahwa jika Anda mencoba melakukan shift_end-event pada pekerjaan yang tidak sedang berjalan, Anda akan mendapatkan kesalahan.
Memperbarui catatan waktu #
Anda dapat memperbarui data log waktu dengan mengirimkan permintaan PUT ke titik akhir /timelogs, seperti ini:
Perhatikan bahwa Anda harus memiliki set data beginTimelog dan endTimelog untuk melakukan pembaruan. Timelog di Skyplanner disimpan seperti ini: setiap timelog “penuh” (timelog yang memiliki awal dan akhir (contoh: shift_begin/continued & paused/shift_end) memiliki entitas terpisah untuk awal dan akhir.
Ini dipasangkan dengan nilai begin_id yang ditemukan di endlog. Pada contoh di atas, beginTimelog memiliki nilai id 1 dan dengan demikian endTimelog memiliki nilai begin_id 1.
Anda juga harus memberikan nilai person_id dan endTimelog untuk setiap kali Anda melakukan permintaan pembaruan meskipun Anda tidak mengubahnya.
Cara-cara alternatif untuk melakukan pencatatan waktu #
Berikut ini beberapa cara alternatif untuk masuk ke pekerjaan Anda menggunakan API.
Logfull #
Jika Anda ingin mengirim timelog awal dan akhir dalam satu permintaan, Anda dapat menggunakan titik /timelogs/log-full -endpoint, seperti ini:
Perhatikan bagaimana jumlah yang dikirim di sini: nilai “jumlah” pertama menunjukkan jumlah yang salah dan yang kedua jumlah. Permintaan ini membuat entitas beginlog dan endlog dalam satu permintaan tunggal.
Quicklog #
“Quicklogging” ke pekerjaan menyelesaikannya dalam satu permintaan, menetapkan jumlah produk yang diselesaikan agar sesuai dengan nilai yang ditetapkan dalam item pesanan. Pencatatan cepat dilakukan dengan menggunakan perintah /timelogs/quick-log -endpoint:
Perhatikan bahwa di sini Anda hanya perlu memberikan production_planning_job_id, planned_workstation_id dan person_id. Nilai waktu dan jumlah akan terisi secara otomatis. Perhatikan juga bahwa pekerjaan yang dicatat dengan cepat selalu diselesaikan dengan shift_end-event, jadi tidak ada pencatatan lebih lanjut yang mungkin dilakukan setelah quicklog!