Dátová štruktúra Skyplanner #
Skôr ako sa začneme venovať časovým záznamom, musíme si povedať niečo o štruktúre údajov v programe Skyplanner a o tom, ako fungujú pod kapotou. Toto všetko sa bude hodiť neskôr.
Ak ste integrovali svoje údaje o objednávkach/pracovných príkazoch/pracovných miestach do programu Skyplanner, pravdepodobne ste použili aspoň tieto body API:
- phaser-orders
- phaser-Order-rows
- phaser-jobs
Údaje vložené do týchto koncových bodov sú v používateľskom rozhraní Skyplanneru reprezentované takto:
Po vložení objednávok do programu Skyplanner ich budete chcieť exportovať (môžete to urobiť prostredníctvom používateľského rozhrania alebo koncového bodu /phaser-orders/export-endpoint) do modulu Plánovanie výroby:
Pri exporte objednávok Skyplanner účinne kopíruje údaje o objednávkach z jednej tabuľky databázy do druhej. Ak teda niečo zmeníte napríklad prostredníctvom koncového bodu /phaser-orders, musíte údaje znovu exportovať, aby ste ich aktualizovali v plánovaní výroby. To tiež znamená, že na prístup k objednávkam, ktoré vidíte v okne Plánovanie výroby, musíte použiť rôzne API-endpointy!
“Zmenené” koncové body vyzerajú takto:
Toto je dôležité vedieť, pretože pri používaní koncového bodu /timelogs na zaznamenávanie udalostí vo výrobe atď. musíte používať súvisiace entity, ktoré sa nachádzajú v koncovom bode Plánovanie výroby!
Na POSTovanie nového časového záznamu potrebujete napríklad production_planning_job_id (zopakujme: production_planning_jobs sú entity, ku ktorým sa pristupuje z koncového bodu /jobs):
Potrebné production_planning_job_id nájdete buď v koncovom bode /phaser-jobs:
Alebo z koncového bodu /job:
Vytváranie časových záznamov pomocou REST-API #
Vytváranie časových záznamov do programu Skyplanner prostredníctvom rozhrania API využíva rovnaké pravidlá a systémy, ktoré sú v používateľskom rozhraní. Preto by mohlo byť prospešné oboznámiť sa s tým, ako systém funguje v používateľskom rozhraní, skôr ako sa ho pokúsite používať prostredníctvom API.
Základy časového záznamu #
Skyplanner má štyri typy udalostí časového záznamu:
- shift_begin
- pozastavené
- pokračovanie
- shift_end
Udalosť Shift_begin sa odošle pri prvom spustení úlohy. Nikdy neposielajte viac ako jednu udalosť shift_begin pre každú úlohu!
Udalosť Paused pozastaví úlohu.
Pokračovanie udalosti pokračuje v pozastavenej práci.
Shift_end dokončí prácu. Nikdy neposielajte viac ako jednu udalosť shift_end pre každú úlohu!
Požadované údaje pre časové záznamy:
- person_id
- Možno ho nájsť v koncovom bode /people
- Nie je to isté ako user_id!
- planned_workstation_id
- Pracovisko, na ktorom sa práca vykonáva
- Možno ho nájsť v koncovom bode /workstations
- date_time
- Bod, v ktorom sa udalosť uskutoční
- Formát: 2024-01-01 10:30:11
Ak chcete určiť, aký časový záznam programu Skyplanner je viazaný na časový záznam z akéhokoľvek externého systému, ktorý používate, môžete použiť pole external_id . Pomocou tohto id potom môžete napríklad zadávať požiadavky GET, aby ste našli konkrétny časový záznam z programu Skyplanner.
Začatie práce #
Úlohy môžete spustiť odoslaním POST-požiadavky takto do API:
Pri nastavovaní údajov POST pre časové záznamy nastavte workshift_id ako 0 a timelog_finalized ako true
Pozastavenie úlohy #
Úlohy pozastavíte odoslaním tejto požiadavky POST:
V časových záznamoch typu paused môžete nastaviť sumu a chybnú sumu. Všimnite si tiež typ časového záznamu a dátum_času.
Pokračovanie v práci #
Tu je uvedený postup pokračovania pozastaveného časového záznamu:
Upozorňujeme, že ak sa pokúsite pokračovať v úlohe, ktorá bola ukončená udalosťou shift_end, zobrazí sa chyba.
Ukončenie pracovného pomeru #
Tu je uvedený spôsob ukončenia úlohy pomocou časového záznamu shift_end:
V shift_end-events môžete zadať hodnoty amount a faulty_amount rovnako ako v paused-events. Upozorňujeme, že ak sa pokúsite vykonať shift_end-event pre úlohu, ktorá nie je spustená, zobrazí sa chyba.
Aktualizácia časových záznamov #
Údaje časového záznamu môžete aktualizovať zaslaním požiadavky PUT na koncový bod /timelogs-endpoint, napríklad takto:
Všimnite si, že na vykonanie aktualizácie musíte mať nastavené údaje beginTimelog aj endTimelog . Časové záznamy v programe Skyplanner sú uložené takto: každý “úplný” (časový záznam, ktorý má začiatok aj koniec (napr. shift_begin/continued & paused/shift_end) časový záznam má samostatnú entitu pre začiatok a koniec.
Tieto sú spárované podľa hodnoty begin_id , ktorá sa nachádza v endlogu. Vo vyššie uvedenom príklade má beginTimelog hodnotu id 1, a preto má jeho endTimelog hodnotu begin_id 1.
Hodnoty person_id a endTimelog musíte uviesť aj pri každej požiadavke na aktualizáciu, aj keď ich nemeníte.
Alternatívne spôsoby vytvárania časových záznamov #
Tu je niekoľko alternatívnych spôsobov, ako sa môžete prihlásiť do svojich úloh pomocou rozhrania API.
Logfull #
Ak chcete poslať začiatok aj koniec časového záznamu v jednej požiadavke, môžete použiť /timelogs/log-full -endpoint, napríklad takto:
Všimnite si, ako sa tu posielajú sumy: prvá hodnota “suma” označuje chybnú sumu a druhá sumu. Táto požiadavka vytvára entity beginlog a endlog v jednej požiadavke.
Quicklog #
“Rýchle prihlásenie” k úlohe ju dokončí v jednej požiadavke, nastaví dokončené množstvo výrobkov tak, aby zodpovedalo hodnote nastavenej v položke objednávky. Quicklogging sa vykonáva pomocou /timelogs/quick-log -endpoint:
Všimnite si, že tu stačí zadať len production_planning_job_id, planned_workstation_id a person_id. Hodnoty času a sumy sa vyplnia automaticky. Taktiež si uvedomte, že quicklogované úlohy sú vždy ukončené udalosťou shift_end-event, takže po quicklogovaní nie je možné žiadne ďalšie logovanie!