{"id":61446,"date":"2025-03-06T12:14:16","date_gmt":"2025-03-06T12:14:16","guid":{"rendered":"https:\/\/skyplanner.ai\/docs\/timelogs\/"},"modified":"2025-10-07T11:17:25","modified_gmt":"2025-10-07T11:17:25","password":"","slug":"timelogs","status":"publish","type":"docs","link":"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/","title":{"rendered":"Timelogs"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Skyplanner-datastruktur<\/h4>\n\n<p>F\u00f8r vi dykker ned i tidsloggene, er vi n\u00f8dt til at tale lidt om datastrukturen i Skyplanner, og hvordan tingene fungerer under motorhjelmen. Alt dette kommer i spil senere. <\/p>\n\n<p>Hvis du har integreret dine ordre-\/arbejdsordre-\/jobdata i Skyplanner, har du h\u00f8jst sandsynligt brugt mindst disse API-endpoints:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>phaser-ordrer<\/li>\n\n\n\n<li>phaser-r\u00e6kkef\u00f8lge-r\u00e6kker<\/li>\n\n\n\n<li>phaser-jobs<\/li>\n<\/ul>\n\n<p>Data, der inds\u00e6ttes i disse endpoints, repr\u00e6senteres i Skyplanner-brugergr\u00e6nsefladen p\u00e5 denne m\u00e5de:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-large\"><img decoding=\"async\" width=\"1024\" height=\"714\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-1024x714.png\" alt=\"\" class=\"wp-image-55194\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-1024x714.png 1024w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-300x209.png 300w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-768x535.png 768w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-360x251.png 360w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25.png 1142w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 1.<\/strong>  Ordre (phaser-ordrer)<\/figcaption><\/figure>\n<\/div>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"715\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-26-1024x715.png\" alt=\"\" class=\"wp-image-55228\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-26-1024x715.png 1024w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-26-300x210.png 300w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-26-768x536.png 768w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-26-360x251.png 360w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-26.png 1144w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 2.<\/strong>  Ordreposter (phaser-order-rows (r\u00f8d)), Processtrin (phaser-jobs (gr\u00f8n))<\/figcaption><\/figure>\n\n<p>N\u00e5r du har indsat dine ordrer i Skyplanner, skal du <strong>eksportere dem<\/strong> (dette kan g\u00f8res via brugergr\u00e6nsefladen eller \/phaser-orders\/export-endpoint) til produktionsplanl\u00e6gningsmodulet:<\/p>\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-27-1024x596.png\" alt=\"\" class=\"wp-image-55288\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-27-1024x596.png 1024w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-27-300x175.png 300w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-27-768x447.png 768w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-27-360x209.png 360w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-27.png 1074w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 3.<\/strong>  Eksport via brugergr\u00e6nsefladen<\/figcaption><\/figure>\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"597\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-28-1024x597.png\" alt=\"\" class=\"wp-image-55326\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-28-1024x597.png 1024w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-28-300x175.png 300w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-28-768x448.png 768w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-28-360x210.png 360w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-28.png 1074w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 4.<\/strong>  Eksporteret ordre i produktionsplanl\u00e6gningen<\/figcaption><\/figure>\n\n<p>N\u00e5r man eksporterer ordrer, kopierer Skyplanner effektivt ordredataene fra en databasetabel til en anden. S\u00e5 hvis du f.eks. \u00e6ndrer noget via \/phaser-orders -endpoint, skal du eksportere dataene igen for at opdatere dem i produktionsplanl\u00e6gningen. Det betyder ogs\u00e5, at du skal bruge forskellige API-endpoints for at f\u00e5 adgang til de ordrer, du ser i produktionsplanl\u00e6gningsvinduet!  <\/p>\n\n<p>De &#8220;\u00e6ndrede&#8221; slutpunkter ser s\u00e5dan ud:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>\/phaser-ordrer \u2192 \/ordrer<\/li>\n\n\n\n<li>\/phaser-r\u00e6kkef\u00f8lge-r\u00e6kker \u2192 \/r\u00e6kkef\u00f8lge-r\u00e6kker<\/li>\n\n\n\n<li>\/phaser-jobs \u2192 \/jobs<\/li>\n<\/ul>\n\n<p>Det er vigtigt at vide, for n\u00e5r du bruger \/timelogs -endpointet til at logge dine produktionsh\u00e6ndelser osv., <strong>skal du bruge de relaterede enheder, der findes i Production Scheduling -endpointet!<\/strong><\/p>\n\n<p>For eksempel skal du bruge <strong>production_planning_job_id <\/strong>(for at gentage: production_planning_jobs er de enheder, der er adgang til fra \/jobs -endpoint) for at POSTe en ny timelog:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"867\" height=\"603\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-29.png\" alt=\"\" class=\"wp-image-55407\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-29.png 867w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-29-300x209.png 300w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-29-768x534.png 768w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-29-360x250.png 360w\" sizes=\"(max-width: 867px) 100vw, 867px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 5.<\/strong>  Timelog POST-anmodning<\/figcaption><\/figure>\n\n<p>Du kan finde det production_planning_job_id, du skal bruge, fra enten \/phaser-jobs -endpoint:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"924\" height=\"870\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-30.png\" alt=\"\" class=\"wp-image-55455\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-30.png 924w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-30-300x282.png 300w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-30-768x723.png 768w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-30-360x339.png 360w\" sizes=\"(max-width: 924px) 100vw, 924px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 6.<\/strong> Phaser-job GET-anmodning (r\u00f8d er phaser_job_id, <strong>BRUG DEN IKKE I TIMELOGS<\/strong>)<\/figcaption><\/figure>\n\n<p>Eller fra \/job-slutpunktet:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"926\" height=\"872\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-31.png\" alt=\"\" class=\"wp-image-55490\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-31.png 926w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-31-300x283.png 300w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-31-768x723.png 768w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-31-360x339.png 360w\" sizes=\"(max-width: 926px) 100vw, 926px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 7.<\/strong>  \/job GET-anmodning<\/figcaption><\/figure>\n\n<h4 class=\"wp-block-heading\">Oprettelse af timelogs ved hj\u00e6lp af REST-API<\/h4>\n\n<p>N\u00e5r man laver tidslogs til Skyplanner via API&#8217;en, bruger man de samme regler og systemer som i brugergr\u00e6nsefladen. S\u00e5 det kan v\u00e6re en fordel at s\u00e6tte sig ind i, hvordan systemet fungerer i brugergr\u00e6nsefladen, f\u00f8r man fors\u00f8ger at bruge det via API&#8217;en. <\/p>\n\n<h5 class=\"wp-block-heading\">Grundl\u00e6ggende om tidslog<\/h5>\n\n<p>Skyplanner har fire typer timelog-begivenheder:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>skift_begyndelse<\/li>\n\n\n\n<li>holdt pause<\/li>\n\n\n\n<li>fortsat<\/li>\n\n\n\n<li>shift_end<\/li>\n<\/ul>\n\n<p>Shift_begin-event sendes, n\u00e5r jobbet startes for f\u00f8rste gang.  <strong>Send aldrig mere end \u00e9n shift_begin-begivenhed for hvert job!<\/strong><\/p>\n\n<p>Paused-event s\u00e6tter jobbet p\u00e5 pause.<\/p>\n\n<p>Continued-event genoptager et job, der er sat p\u00e5 pause.<\/p>\n\n<p>Shift_end afslutter jobbet.  <strong>Send aldrig mere end \u00e9n shift_end-begivenhed for hvert job!<\/strong><\/p>\n\n<p>N\u00f8dvendige data til tidslogs:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>person_id\n<ul class=\"wp-block-list\">\n<li>Kan findes fra \/people-endpoint<\/li>\n\n\n\n<li>Ikke det samme som user_id!<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>planlagt_arbejdsstation_id\n<ul class=\"wp-block-list\">\n<li>Den arbejdsstation, hvor jobbet udf\u00f8res<\/li>\n\n\n\n<li>Kan findes fra \/workstations-endpoint<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>dato_tid\n<ul class=\"wp-block-list\">\n<li>Tidspunktet, hvor begivenheden er udf\u00f8rt<\/li>\n\n\n\n<li>Format: 2024-01-01 10:30:11<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n<p>For at specificere, hvilken Skyplanner-tidslog der er knyttet til tidsloggen fra det eksterne system, du bruger, kan du bruge feltet <strong>external_id <\/strong>. Du kan s\u00e5 f.eks. lave GET-anmodninger ved hj\u00e6lp af dette id for at finde en bestemt tidslog fra Skyplanner. <\/p>\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"438\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-32-1024x438.png\" alt=\"\" class=\"wp-image-55587\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-32-1024x438.png 1024w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-32-300x128.png 300w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-32-768x328.png 768w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-32-360x154.png 360w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-32.png 1415w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 8.<\/strong>  Eksternt_id i timelogs<\/figcaption><\/figure>\n\n<h4 class=\"wp-block-heading\">At starte et job<\/h4>\n\n<p>Du kan starte jobs ved at sende en POST-request som denne til API&#8217;en:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"624\" height=\"766\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-33.png\" alt=\"\" class=\"wp-image-55638\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-33.png 624w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-33-244x300.png 244w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-33-360x442.png 360w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 9.<\/strong>  Skift_begynd timelog<\/figcaption><\/figure>\n\n<p>N\u00e5r du indstiller POST-dataene for tidsloggene, skal du s\u00e6tte <strong>workshift_id <\/strong>til 0 og <strong>timelog_finalized <\/strong>til <strong>true<\/strong>.<\/p>\n\n<h4 class=\"wp-block-heading\">S\u00e6tte et job p\u00e5 pause<\/h4>\n\n<p>S\u00e6t jobs p\u00e5 pause ved at sende en POST-anmodning som denne:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"697\" height=\"760\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-34.png\" alt=\"\" class=\"wp-image-55676\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-34.png 697w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-34-275x300.png 275w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-34-360x393.png 360w\" sizes=\"(max-width: 697px) 100vw, 697px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 10.<\/strong>  Pauseret tidslog<\/figcaption><\/figure>\n\n<p>I tidslogge af pausetypen kan du indstille <strong>bel\u00f8bet <\/strong>og <strong>faulty_amount<\/strong>. Bem\u00e6rk ogs\u00e5 <strong>tidslogtypen <\/strong>og <strong>date_time<\/strong>. <\/p>\n\n<h4 class=\"wp-block-heading\">Forts\u00e6ttelse af et job<\/h4>\n\n<p>S\u00e5dan forts\u00e6tter du en pauset timelog:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"713\" height=\"722\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-35.png\" alt=\"\" class=\"wp-image-55715\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-35.png 713w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-35-296x300.png 296w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-35-360x365.png 360w\" sizes=\"(max-width: 713px) 100vw, 713px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 11.<\/strong>  Fortsat tidslinje<\/figcaption><\/figure>\n\n<p>Bem\u00e6rk, at hvis du pr\u00f8ver at forts\u00e6tte et job, der er blevet afsluttet af en shift_end-begivenhed, f\u00e5r du en fejl.<\/p>\n\n<h4 class=\"wp-block-heading\">At afslutte et job<\/h4>\n\n<p>S\u00e5dan afslutter du et job med en shift_end timelog:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"711\" height=\"764\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-36.png\" alt=\"\" class=\"wp-image-55761\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-36.png 711w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-36-279x300.png 279w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-36-360x387.png 360w\" sizes=\"(max-width: 711px) 100vw, 711px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 12.<\/strong>  Skift_slut timelog<\/figcaption><\/figure>\n\n<p>I shift_end-events kan du angive <strong>bel\u00f8b <\/strong>og <strong>faulty_amount-v\u00e6rdier <\/strong>ligesom i paused-events. Bem\u00e6rk, at hvis du pr\u00f8ver at lave en shift_end-event p\u00e5 et job, der ikke k\u00f8rer, f\u00e5r du en fejl. <\/p>\n\n<h4 class=\"wp-block-heading\">Opdatering af timelogs<\/h4>\n\n<p>Du kan opdatere timelog-data ved at sende PUT-foresp\u00f8rgsler til \/timelogs-endpoint, s\u00e5dan her:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"694\" height=\"757\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-37.png\" alt=\"\" class=\"wp-image-55796\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-37.png 694w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-37-275x300.png 275w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-37-360x393.png 360w\" sizes=\"(max-width: 694px) 100vw, 694px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 13.<\/strong>  Redigering af timelogs<\/figcaption><\/figure>\n\n<p>Bem\u00e6rk, at du skal have b\u00e5de <strong>beginTimelog- <\/strong>og <strong>endTimelog-datas\u00e6t <\/strong>for at kunne foretage en opdatering. Timelogs i Skyplanner gemmes p\u00e5 denne m\u00e5de: Hver &#8220;fuld&#8221; (timelog, der har b\u00e5de en start og en slutning (f.eks. shift_begin\/continued &amp; paused\/shift_end) timelog har en separat enhed til start og slut. <\/p>\n\n<p>Disse er parret med <strong>begin_id-v\u00e6rdien <\/strong>, der findes i endlog. I ovenst\u00e5ende eksempel har beginTimelog id-v\u00e6rdien 1, og dermed har endTimelog <strong>begin_id-v\u00e6rdien <\/strong>1. <\/p>\n\n<p>Du skal ogs\u00e5 angive <strong>person_id- <\/strong>og <strong>endTimelog-v\u00e6rdierne <\/strong>, hver gang du laver en opdateringsanmodning, selv om du ikke \u00e6ndrer dem.<\/p>\n\n<h4 class=\"wp-block-heading\">Alternative m\u00e5der at lave timelogs p\u00e5<\/h4>\n\n<p>Her er nogle alternative m\u00e5der, du kan logge p\u00e5 dine jobs ved hj\u00e6lp af API&#8217;en.<\/p>\n\n<h5 class=\"wp-block-heading\">Logfuld<\/h5>\n\n<p>Hvis du vil sende b\u00e5de start- og sluttidsloggen i en enkelt anmodning, kan du bruge <strong>\/timelogs\/log-full<\/strong> -endpoint, s\u00e5dan her:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"691\" height=\"721\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-38.png\" alt=\"\" class=\"wp-image-55828\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-38.png 691w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-38-288x300.png 288w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-38-360x376.png 360w\" sizes=\"(max-width: 691px) 100vw, 691px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 14.<\/strong>  Logfuld anmodning<\/figcaption><\/figure>\n\n<p>Bem\u00e6rk, hvordan bel\u00f8bene sendes her: Den f\u00f8rste &#8220;amount&#8221;-v\u00e6rdi angiver det <strong>fejlbeh\u00e6ftede<\/strong> bel\u00f8b, og den anden angiver <strong>bel\u00f8bet<\/strong>. Denne anmodning opretter beginlog- og endlog-enhederne i en enkelt anmodning. <\/p>\n\n<h5 class=\"wp-block-heading\">Quicklog<\/h5>\n\n<p>&#8220;Quicklogging&#8221; til et job afslutter det i en enkelt anmodning og indstiller det afsluttede antal produkter til at matche den v\u00e6rdi, der er angivet i ordreposten. Quicklogging udf\u00f8res ved at bruge <strong>\/timelogs\/quick-log<\/strong> -endpoint: <\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"695\" height=\"723\" src=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-39.png\" alt=\"\" class=\"wp-image-55857\" srcset=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-39.png 695w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-39-288x300.png 288w, https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-39-360x375.png 360w\" sizes=\"(max-width: 695px) 100vw, 695px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 15.<\/strong>  Quicklogging<\/figcaption><\/figure>\n\n<p>Bem\u00e6rk, at du her kun beh\u00f8ver at angive <strong>production_planning_job_id<\/strong>, <strong>planned_workstation_id <\/strong>og <strong>person_id<\/strong>. V\u00e6rdierne for tid og bel\u00f8b udfyldes automatisk. Bem\u00e6rk ogs\u00e5, at quickloggede jobs altid afsluttes med shift_end-begivenheden, s\u00e5 der er ikke mulighed for yderligere logning efter quicklog!  <\/p>\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Skyplanner-datastruktur F\u00f8r vi dykker ned i tidsloggene, er vi n\u00f8dt til at tale lidt om datastrukturen i Skyplanner, og hvordan tingene fungerer under motorhjelmen. Alt dette kommer i spil senere. Hvis du har integreret dine ordre-\/arbejdsordre-\/jobdata i Skyplanner, har du h\u00f8jst sandsynligt brugt mindst disse API-endpoints: Data, der inds\u00e6ttes i disse endpoints, repr\u00e6senteres i Skyplanner-brugergr\u00e6nsefladen &#8230; <a title=\"Timelogs\" class=\"read-more\" href=\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/\" aria-label=\"Read more about Timelogs\">L\u00e6s Mere<\/a><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","footnotes":""},"doc_category":[619],"doc_tag":[620,1516],"class_list":["post-61446","docs","type-docs","status-publish","hentry","doc_category-integrationer","doc_tag-api-da","doc_tag-integration-da"],"acf":[],"year_month":"2026-04","word_count":988,"total_views":"147","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"name":"Sami","author_nicename":"sami","author_url":"https:\/\/skyplanner.ai\/da\/author\/sami\/"},"doc_category_info":[{"term_name":"Integrationer","term_url":"https:\/\/skyplanner.ai\/da\/docs-category\/integrationer\/"}],"doc_tag_info":[{"term_name":"API","term_url":"https:\/\/skyplanner.ai\/da\/docs-tag\/api-da\/"},{"term_name":"Integration","term_url":"https:\/\/skyplanner.ai\/da\/docs-tag\/integration-da\/"}],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Timelogs &#8211; SkyPlanner<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/\" \/>\n<meta property=\"og:locale\" content=\"da_DK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Timelogs\" \/>\n<meta property=\"og:description\" content=\"Skyplanner-datastruktur F\u00f8r vi dykker ned i tidsloggene, er vi n\u00f8dt til at tale lidt om datastrukturen i Skyplanner, og hvordan tingene fungerer under motorhjelmen. Alt dette kommer i spil senere. Hvis du har integreret dine ordre-\/arbejdsordre-\/jobdata i Skyplanner, har du h\u00f8jst sandsynligt brugt mindst disse API-endpoints: Data, der inds\u00e6ttes i disse endpoints, repr\u00e6senteres i Skyplanner-brugergr\u00e6nsefladen ... L\u00e6s Mere\" \/>\n<meta property=\"og:url\" content=\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/\" \/>\n<meta property=\"og:site_name\" content=\"SkyPlanner\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-07T11:17:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1142\" \/>\n\t<meta property=\"og:image:height\" content=\"796\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimeret l\u00e6setid\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/\",\"url\":\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/\",\"name\":\"Timelogs &#8211; SkyPlanner\",\"isPartOf\":{\"@id\":\"https:\/\/skyplanner.ai\/da\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-1024x714.png\",\"datePublished\":\"2025-03-06T12:14:16+00:00\",\"dateModified\":\"2025-10-07T11:17:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/#breadcrumb\"},\"inLanguage\":\"da-DK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/#primaryimage\",\"url\":\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-1024x714.png\",\"contentUrl\":\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-1024x714.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/skyplanner.ai\/da\/hjemmeside\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docs\",\"item\":\"https:\/\/skyplanner.ai\/da\/docs\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Timelogs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/skyplanner.ai\/da\/#website\",\"url\":\"https:\/\/skyplanner.ai\/da\/\",\"name\":\"SkyPlanner\",\"description\":\"AI-powered production scheduling and planning software\",\"publisher\":{\"@id\":\"https:\/\/skyplanner.ai\/da\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/skyplanner.ai\/da\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"da-DK\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/skyplanner.ai\/da\/#organization\",\"name\":\"SkyPlanner APS\",\"url\":\"https:\/\/skyplanner.ai\/da\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/skyplanner.ai\/da\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2022\/05\/Skyplanner-logo-2.svg\",\"contentUrl\":\"https:\/\/skyplanner.ai\/wp-content\/uploads\/2022\/05\/Skyplanner-logo-2.svg\",\"width\":223,\"height\":43,\"caption\":\"SkyPlanner APS\"},\"image\":{\"@id\":\"https:\/\/skyplanner.ai\/da\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/skyplanner-aps\/\",\"https:\/\/www.youtube.com\/@SkyPlannerAPS\",\"https:\/\/www.capterra.com\/p\/265911\/SkyPlanner-APS\/\",\"https:\/\/www.trustradius.com\/products\/skyplanner-aps\/reviews\",\"https:\/\/www.saasworthy.com\/product\/skyplanner-aps\",\"https:\/\/sourceforge.net\/software\/product\/SkyPlanner-APS\/\",\"https:\/\/www.g2.com\/products\/skyplanner-aps\/\",\"https:\/\/www.getapp.com\/project-management-planning-software\/a\/skyplanner-aps\/\",\"https:\/\/www.softwareadvice.com\/cmms\/skyplanner-aps-profile\/\"],\"description\":\"AI-powered production scheduling and planning software for manufacturing\",\"foundingDate\":\"1997\",\"legalName\":\"Skycode Oy\",\"alternateName\":\"SkyPlanner\",\"knowsAbout\":[\"Production Scheduling\",\"Advanced Planning and Scheduling\",\"Manufacturing AI\",\"Finite Capacity Scheduling\",\"ERP Integration\"],\"areaServed\":\"Worldwide\",\"contactPoint\":{\"@type\":\"ContactPoint\",\"contactType\":\"sales\",\"url\":\"https:\/\/skyplanner.ai\/trial\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Timelogs &#8211; SkyPlanner","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/","og_locale":"da_DK","og_type":"article","og_title":"Timelogs","og_description":"Skyplanner-datastruktur F\u00f8r vi dykker ned i tidsloggene, er vi n\u00f8dt til at tale lidt om datastrukturen i Skyplanner, og hvordan tingene fungerer under motorhjelmen. Alt dette kommer i spil senere. Hvis du har integreret dine ordre-\/arbejdsordre-\/jobdata i Skyplanner, har du h\u00f8jst sandsynligt brugt mindst disse API-endpoints: Data, der inds\u00e6ttes i disse endpoints, repr\u00e6senteres i Skyplanner-brugergr\u00e6nsefladen ... L\u00e6s Mere","og_url":"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/","og_site_name":"SkyPlanner","article_modified_time":"2025-10-07T11:17:25+00:00","og_image":[{"width":1142,"height":796,"url":"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimeret l\u00e6setid":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/","url":"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/","name":"Timelogs &#8211; SkyPlanner","isPartOf":{"@id":"https:\/\/skyplanner.ai\/da\/#website"},"primaryImageOfPage":{"@id":"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/#primaryimage"},"image":{"@id":"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/#primaryimage"},"thumbnailUrl":"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-1024x714.png","datePublished":"2025-03-06T12:14:16+00:00","dateModified":"2025-10-07T11:17:25+00:00","breadcrumb":{"@id":"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/#breadcrumb"},"inLanguage":"da-DK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/skyplanner.ai\/da\/docs\/timelogs\/"]}]},{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/#primaryimage","url":"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-1024x714.png","contentUrl":"https:\/\/skyplanner.ai\/wp-content\/uploads\/2025\/03\/image-25-1024x714.png"},{"@type":"BreadcrumbList","@id":"https:\/\/skyplanner.ai\/da\/docs\/timelogs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/skyplanner.ai\/da\/hjemmeside\/"},{"@type":"ListItem","position":2,"name":"Docs","item":"https:\/\/skyplanner.ai\/da\/docs\/"},{"@type":"ListItem","position":3,"name":"Timelogs"}]},{"@type":"WebSite","@id":"https:\/\/skyplanner.ai\/da\/#website","url":"https:\/\/skyplanner.ai\/da\/","name":"SkyPlanner","description":"AI-powered production scheduling and planning software","publisher":{"@id":"https:\/\/skyplanner.ai\/da\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/skyplanner.ai\/da\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"da-DK"},{"@type":"Organization","@id":"https:\/\/skyplanner.ai\/da\/#organization","name":"SkyPlanner APS","url":"https:\/\/skyplanner.ai\/da\/","logo":{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/skyplanner.ai\/da\/#\/schema\/logo\/image\/","url":"https:\/\/skyplanner.ai\/wp-content\/uploads\/2022\/05\/Skyplanner-logo-2.svg","contentUrl":"https:\/\/skyplanner.ai\/wp-content\/uploads\/2022\/05\/Skyplanner-logo-2.svg","width":223,"height":43,"caption":"SkyPlanner APS"},"image":{"@id":"https:\/\/skyplanner.ai\/da\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/skyplanner-aps\/","https:\/\/www.youtube.com\/@SkyPlannerAPS","https:\/\/www.capterra.com\/p\/265911\/SkyPlanner-APS\/","https:\/\/www.trustradius.com\/products\/skyplanner-aps\/reviews","https:\/\/www.saasworthy.com\/product\/skyplanner-aps","https:\/\/sourceforge.net\/software\/product\/SkyPlanner-APS\/","https:\/\/www.g2.com\/products\/skyplanner-aps\/","https:\/\/www.getapp.com\/project-management-planning-software\/a\/skyplanner-aps\/","https:\/\/www.softwareadvice.com\/cmms\/skyplanner-aps-profile\/"],"description":"AI-powered production scheduling and planning software for manufacturing","foundingDate":"1997","legalName":"Skycode Oy","alternateName":"SkyPlanner","knowsAbout":["Production Scheduling","Advanced Planning and Scheduling","Manufacturing AI","Finite Capacity Scheduling","ERP Integration"],"areaServed":"Worldwide","contactPoint":{"@type":"ContactPoint","contactType":"sales","url":"https:\/\/skyplanner.ai\/trial\/"}}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"betterdocs-category-thumb":false},"uagb_author_info":{"display_name":"Sami","author_link":"https:\/\/skyplanner.ai\/da\/author\/sami\/"},"uagb_comment_info":0,"uagb_excerpt":"Skyplanner-datastruktur F\u00f8r vi dykker ned i tidsloggene, er vi n\u00f8dt til at tale lidt om datastrukturen i Skyplanner, og hvordan tingene fungerer under motorhjelmen. Alt dette kommer i spil senere. Hvis du har integreret dine ordre-\/arbejdsordre-\/jobdata i Skyplanner, har du h\u00f8jst sandsynligt brugt mindst disse API-endpoints: Data, der inds\u00e6ttes i disse endpoints, repr\u00e6senteres i Skyplanner-brugergr\u00e6nsefladen&hellip;","knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/skyplanner.ai\/da\/wp-json\/wp\/v2\/docs\/61446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skyplanner.ai\/da\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/skyplanner.ai\/da\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/skyplanner.ai\/da\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/skyplanner.ai\/da\/wp-json\/wp\/v2\/comments?post=61446"}],"version-history":[{"count":0,"href":"https:\/\/skyplanner.ai\/da\/wp-json\/wp\/v2\/docs\/61446\/revisions"}],"wp:attachment":[{"href":"https:\/\/skyplanner.ai\/da\/wp-json\/wp\/v2\/media?parent=61446"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/skyplanner.ai\/da\/wp-json\/wp\/v2\/doc_category?post=61446"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/skyplanner.ai\/da\/wp-json\/wp\/v2\/doc_tag?post=61446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}