Datová struktura Skyplanner #
Než se ponoříme do časových záznamů, musíme probrat něco málo o struktuře dat v programu Skyplanner a o tom, jak věci fungují pod kapotou. To vše přijde na řadu později.
Pokud jste integrovali údaje o zakázkách/pracovních příkazech/pracovních místech do Skyplanneru, pravděpodobně jste použili alespoň tyto body API:
- phaser-orders
- phaser-Order-rows
- phaser-jobs
Data vložená do těchto koncových bodů jsou v uživatelském rozhraní Skyplanneru reprezentována takto:
Po vložení objednávek do Skyplanneru je budete chtít exportovat (lze to provést prostřednictvím uživatelského rozhraní nebo koncového bodu /phaser-orders/export-endpoint) do modulu Plánování výroby:
Při exportu objednávek Skyplanner efektivně kopíruje data objednávek z jedné databázové tabulky do druhé. Pokud tedy něco změníte například prostřednictvím koncového bodu /phaser-orders, musíte data znovu exportovat, abyste je mohli aktualizovat v plánování výroby. To také znamená, že pro přístup k zakázkám, které vidíte v okně Plánování výroby, musíte použít jiné koncové body API!
“Změněné” koncové body jsou následující:
To je důležité vědět, protože při použití koncového bodu /timelogs pro záznam událostí z výroby atd. musíte použít související entity, které se nacházejí v koncovém bodu Plánování výroby!
Například k odeslání nového časového záznamu potřebujete production_planning_job_id (pro zopakování: production_planning_jobs jsou entity přístupné z koncového bodu /jobs):
Potřebné production_planning_job_id najdete buď v koncovém bodě /phaser-jobs:
Nebo z koncového bodu /job:
Vytváření časových záznamů pomocí rozhraní REST-API #
Vytváření časových záznamů do Skyplanneru prostřednictvím rozhraní API používá stejná pravidla a systémy, které jsou v uživatelském rozhraní. Proto by mohlo být výhodné seznámit se s tím, jak systém funguje v uživatelském rozhraní, než se jej pokusíte použít prostřednictvím rozhraní API.
Základy časového záznamu #
Skyplanner má čtyři typy událostí časového záznamu:
- shift_begin
- pozastaveno
- pokračování
- shift_end
Událost Shift_begin je odeslána při prvním spuštění úlohy. Nikdy neposílejte více než jednu událost shift_begin pro každou úlohu!
Paused-event pozastaví úlohu.
Pokračující událost obnoví pozastavenou práci.
Shift_end dokončí práci. Nikdy neposílejte více než jednu událost shift_end pro každou úlohu!
Požadované údaje pro časové záznamy:
- person_id
- Lze zjistit z koncového bodu /people
- Není to totéž jako user_id!
- planned_workstation_id
- Pracoviště, na kterém se práce provádí
- Lze je nalézt v koncové položce /workstations-endpoint.
- date_time
- Okamžik, kdy je událost provedena
- Formát: 2024-01-01 10:30:11
Chcete-li určit, jaký časový záznam programu Skyplanner je vázán na časový záznam z jakéhokoli externího systému, který používáte, můžete použít pole external_id . Pomocí tohoto id pak můžete například zadávat požadavky GET, abyste našli konkrétní časový záznam ze Skyplanneru.
Zahájení pracovního poměru #
Úlohy můžete spouštět odesláním požadavku POST takto na rozhraní API:
Při nastavování dat POST pro časové záznamy nastavte workshift_id jako 0 a timelog_finalized jako true.
Pozastavení úlohy #
Úlohy pozastavíte odesláním požadavku POST takto:
V časových záznamech typu paused můžete nastavit částku a faulty_amount. Všimněte si také typu timelog a date_time.
Pokračování v práci #
Zde je uveden postup, jak pokračovat v pozastaveném časovém záznamu:
Všimněte si, že pokud se pokusíte pokračovat v úloze, která byla ukončena událostí shift_end, dojde k chybě.
Ukončení pracovního poměru #
Zde je uveden způsob ukončení úlohy pomocí časového záznamu shift_end:
V shift_end-events můžete zadat hodnoty amount a faulty_amount stejně jako v paused-events. Všimněte si, že pokud se pokusíte provést shift_end-event pro úlohu, která není spuštěna, zobrazí se chyba.
Aktualizace časových záznamů #
Data časového záznamu můžete aktualizovat odesláním požadavku PUT na koncový bod /timelogs-endpoint, například takto:
Všimněte si, že pro provedení aktualizace musíte mít nastaveny údaje beginTimelog i endTimelog . Časové záznamy v programu Skyplanner jsou uloženy takto: každý “úplný” (časový záznam, který má začátek i konec (např. shift_begin/continued & paused/shift_end) časový záznam má samostatnou entitu pro začátek a konec.
Ty se párují podle hodnoty begin_id nalezené v endlogu. Ve výše uvedeném příkladu má beginTimelog hodnotu id 1, a proto má jeho endTimelog hodnotu begin_id 1.
Hodnoty person_id a endTimelog musíte zadat také při každém požadavku na aktualizaci, i když je neměníte.
Alternativní způsoby tvorby časových záznamů #
Zde je několik alternativních způsobů, jak se můžete přihlásit k úlohám pomocí rozhraní API.
Logfull #
Pokud chcete odeslat počáteční i koncový časový záznam v jednom požadavku, můžete použít /timelogs/log-full -endpoint, například takto:
Všimněte si, jak jsou zde zasílány částky: první hodnota “amount” označuje chybnou částku a druhá částku. Tento požadavek vytváří entity beginlog a endlog v jediném požadavku.
Quicklog #
“Rychlé přihlášení” k úloze ji dokončí v jediném požadavku, nastaví dokončené množství produktů tak, aby odpovídalo hodnotě nastavené v položce objednávky. Quicklogging se provádí pomocí /timelogs/quick-log -endpoint:
Všimněte si, že zde stačí zadat pouze production_planning_job_id, planned_workstation_id a person_id. Hodnoty času a částky se vyplní automaticky. Všimněte si také, že quicklogované úlohy jsou vždy ukončeny událostí shift_end-event, takže po quicklogu není možné žádné další logování!