Skyplanner adatszerkezet #
Mielőtt belemerülnénk az időnaplókba, beszélnünk kell egy kicsit a Skyplanner adatszerkezetéről és arról, hogyan működnek a dolgok a motorháztető alatt. Mindezek később kerülnek majd szóba.
Ha integrálta a megrendelés/munkarend/munkahely adatait a Skyplannerbe, akkor valószínűleg legalább ezeket az API-pontokat használta:
- phaser-orders
- phaser-Order-rows
- phaser-jobs
Az ezekbe a végpontokba beillesztett adatok a Skyplanner felhasználói felületén így jelennek meg:
Miután beillesztette a megrendeléseit a Skyplannerbe, exportálni kell azokat (ezt a felhasználói felületen vagy a /phaser-orders/export-endponton keresztül teheti meg) a Termelési ütemezés modulba:
A megrendelések exportálásakor a Skyplanner gyakorlatilag átmásolja a megrendelési adatokat az egyik adatbázis táblából egy másikba. Ha tehát valamit megváltoztat például a /phaser-orders -végponton keresztül, akkor újra exportálnia kell az adatokat, hogy frissítse azokat a Termelési ütemezésben. Ez azt is jelenti, hogy a Termelésütemezés ablakban látható megrendelések eléréséhez különböző API-végpontokat kell használnia!
A “megváltozott” végpontok így néznek ki:
Ezt azért fontos tudni, mert amikor a /timelogs -végpontot használja a termelési események naplózására, stb., akkor a kapcsolódó entitásokat kell használnia a Termelési ütemezés -végpontokban!
Például a production_planning_job_id-re van szükséged (ismétlem: a production_planning_jobs a /jobs -végpontról elérhető entitások) egy új időnapló POST-olásához:
A szükséges production_planning_job_id-t a /phaser-jobs -végponton keresztül találja meg:
Vagy a /job -végpontból:
Időnaplók létrehozása a REST-API használatával #
Az API-n keresztül történő időnaplózás a Skyplannerben ugyanazokat a szabályokat és rendszereket használja, mint a felhasználói felületen. Ezért hasznos lehet megismerni, hogyan működik a rendszer a felhasználói felületen, mielőtt megpróbálná használni az API-n keresztül.
Timelog alapok #
A Skyplanner négy időnapló eseménytípussal rendelkezik:
- shift_begin
- szünetelt
- folytatás
- shift_end
A Shift_begin-event akkor kerül elküldésre, amikor a feladatot először indítják el. Soha ne küldjön egynél több shift_begin eseményt minden egyes munkához!
Paused-event szünetelteti a munkát.
A Continued-event folytatja a szüneteltetett munkát.
A Shift_end befejezi a munkát. Soha ne küldjön egynél több shift_end eseményt egy munkához!
Az időnaplókhoz szükséges adatok:
- person_id
- Megtalálható a /people végponton keresztül.
- Nem ugyanaz, mint a user_id!
- tervezett_munkaállomás_id
- A munkaállomás, ahol a munkát végzik
- Megtalálható a /workstations-endpointból
- date_time
- Az esemény végrehajtásának időpontja
- Formátum: 2024-01-01 10:30:11
Annak meghatározásához, hogy a Skyplanner időnaplója milyen külső rendszer időnaplójához kapcsolódik, az external_id mezőt használhatja. Ezután például GET-kéréseket végezhet ezzel az azonosítóval, hogy megtalálja a Skyplanner egy adott időnaplóját.
Munkakezdés #
A munkákat az API-nak küldött POST-kérelemmel indíthatja el:
Az időnaplók POST adatainak beállításakor a workshift_id értékét 0-nak és a timelog_finalized értékét true-nak kell beállítani.
Munka szüneteltetése #
A munkák szüneteltetése egy ilyen POST-kérelem elküldésével:
A szüneteltetett típusú időnaplókban beállíthatja az összeget és a faulty_amount-ot. Vegye figyelembe az időnapló típusát és a date_time-ot is.
Munkavállalás folytatása #
Így folytathatja a szüneteltetett időnaplót:
Vegye figyelembe, hogy ha megpróbál folytatni egy olyan munkát, amelyet egy shift_end esemény fejezett be, hibaüzenetet kap.
Munkahely megszüntetése #
Így fejezhet be egy munkát a shift_end timelog segítségével:
A shift_end-events-ben ugyanúgy megadhatja az amount és a faulty_amount értékeket, mint a paused-events-ben. Vegye figyelembe, hogy ha megpróbál shift_end-eventet végrehajtani egy nem futó munkához, hibaüzenetet kap.
Időnaplók frissítése #
Az időnaplóadatokat a /timelogs-végpontra küldött PUT-kérésekkel frissítheti, például így:
Vegye figyelembe, hogy a frissítéshez rendelkeznie kell a beginTimelog és az endTimelog adatokkal. Az időnaplók tárolása a Skyplannerben a következőképpen történik: minden “teljes” (időnapló, amelynek van kezdete és vége (pl. shift_begin/continued & paused/shift_end) időnaplónak van egy külön entitás a kezdet és a vég számára.
Ezeket az endlogban található begin_id érték párosítja. A fenti példában a beginTimelog azonosító értéke 1, így a hozzá tartozó endTimelognak a begin_id értéke 1.
A person_id és a endTimelog értékeket minden egyes frissítési kérésnél meg kell adnia, még akkor is, ha nem változtatja meg őket.
Az időnaplók készítésének alternatív módjai #
Íme néhány alternatív módja annak, hogy az API használatával bejelentkezzen a munkakörökbe.
Logfull #
Ha egyetlen kéréssel szeretné elküldeni a kezdő és a záró időnaplót is, akkor használhatja a /timelogs/log-full -végpontot, például így:
Figyeljük meg, hogy itt az összegek hogyan kerülnek elküldésre: az első “amount” érték a hibás összeget, a második pedig az összeget jelöli. Ez a kérés egyetlen kéréssel hozza létre a beginlog és endlog entitásokat.
Quicklog #
A “Quicklogging” egy munkához egyetlen kéréssel befejezi azt, a termékek elkészült mennyiségét a megrendelési tételben beállított értéknek megfelelően állítja be. A gyorsnaplózás a /timelogs/quick-log -végpont használatával történik:
Vegye figyelembe, hogy itt csak a production_planning_job_id, planned_workstation_id és person_id adatokat kell megadni. Az idő és az összeg értékek automatikusan kitöltődnek. Vegye figyelembe azt is, hogy a quicklogolt munkák mindig a shift_end-eventtel fejeződnek be, így a quicklog után nincs lehetőség további naplózásra!