{"id":61503,"date":"2025-03-06T12:14:16","date_gmt":"2025-03-06T12:14:16","guid":{"rendered":"https:\/\/skyplanner.ai\/docs\/registos-de-tempo\/"},"modified":"2025-10-07T11:13:51","modified_gmt":"2025-10-07T11:13:51","password":"","slug":"registos-de-tempo","status":"publish","type":"docs","link":"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/","title":{"rendered":"Registos de tempo"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Estrutura de dados do Skyplanner<\/h4>\n\n<p>Antes de mergulharmos nos timelogs, precisamos discutir um pouco sobre a estrutura de dados no Skyplanner e como as coisas funcionam por baixo do cap\u00f4. Tudo isso ser\u00e1 discutido mais tarde. <\/p>\n\n<p>Se integraste os dados das tuas encomendas\/ordens de trabalho\/trabalhos na Skyplanner, \u00e9 muito prov\u00e1vel que tenhas utilizado pelo menos estes pontos de extremidade da API:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>encomendas phaser<\/li>\n\n\n\n<li>ordenar linhas<\/li>\n\n\n\n<li>phaser-jobs<\/li>\n<\/ul>\n\n<p>Efetivamente, os dados inseridos nestes pontos finais s\u00e3o representados na IU do Skyplanner da seguinte forma:<\/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>  Encomenda (phaser-orders)<\/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>  Itens de pedido (linhas de pedido do phaser (vermelho)), etapas do processo (trabalhos do phaser (verde))<\/figcaption><\/figure>\n\n<p>Depois de inserires as tuas encomendas no Skyplanner, vais querer <strong>export\u00e1-las<\/strong> (isto pode ser feito atrav\u00e9s da interface do utilizador ou do ponto final \/phaser-orders\/export-endpoint) para o m\u00f3dulo de planeamento da produ\u00e7\u00e3o:<\/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>  Exportar atrav\u00e9s da interface do utilizador<\/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>  Ordem exportada no plano de produ\u00e7\u00e3o<\/figcaption><\/figure>\n\n<p>Ao exportar pedidos, o Skyplanner copia efetivamente os dados do pedido de uma tabela de banco de dados para outra. Assim, se alterares algo, por exemplo, atrav\u00e9s do endpoint \/phaser-orders, tens de exportar os dados novamente para os atualizar no Planeamento da Produ\u00e7\u00e3o. Isto tamb\u00e9m significa que, para aceder \u00e0s ordens que v\u00eas na janela do Planeamento da Produ\u00e7\u00e3o, tens de usar diferentes API-endpoints!  <\/p>\n\n<p>Os pontos finais &#8220;alterados&#8221; s\u00e3o os seguintes:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>\/phaser-orders \u2192 \/orders<\/li>\n\n\n\n<li>\/phaser-order-rows \u2192 \/order-rows<\/li>\n\n\n\n<li>\/phaser-jobs \u2192 \/jobs<\/li>\n<\/ul>\n\n<p>\u00c9 importante saber isto, porque ao utilizar o ponto de extremidade \/timelogs para registar os teus eventos de produ\u00e7\u00e3o, etc. <strong>, tens de utilizar as entidades relacionadas encontradas nos pontos de extremidade do Planeamento da Produ\u00e7\u00e3o!<\/strong><\/p>\n\n<p>Por exemplo, precisas do <strong>production_planning_job_id <\/strong>(para reiterar: production_planning_jobs s\u00e3o as entidades acedidas a partir do ponto de extremidade \/jobs) para POSTar um novo 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>  Pedido POST do registo de tempo<\/figcaption><\/figure>\n\n<p>Podes encontrar o production_planning_job_id de que precisas a partir do ponto final \/phaser-jobs:<\/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> Pedido GET do trabalho do Phaser (a vermelho est\u00e1 phaser_job_id, <strong>N\u00c3O O UTILIZES EM TIMELOGS<\/strong>)<\/figcaption><\/figure>\n\n<p>Ou a partir do ponto final \/job:<\/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>  Pedido \/job GET<\/figcaption><\/figure>\n\n<h4 class=\"wp-block-heading\">Criar registos de tempo utilizando a API REST<\/h4>\n\n<p>Faz registos de tempo para o Skyplanner atrav\u00e9s da API e utiliza as mesmas regras e sistemas que est\u00e3o na IU. Por isso, pode ser ben\u00e9fico familiarizares-te com o funcionamento do sistema na IU antes de o tentares utilizar atrav\u00e9s da API. <\/p>\n\n<h5 class=\"wp-block-heading\">No\u00e7\u00f5es b\u00e1sicas sobre o registo de tempo<\/h5>\n\n<p>O Skyplanner tem quatro tipos de eventos de registo de tempo:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>shift_begin<\/li>\n\n\n\n<li>pausado<\/li>\n\n\n\n<li>continua<\/li>\n\n\n\n<li>shift_end<\/li>\n<\/ul>\n\n<p>O evento Shift_begin \u00e9 enviado quando a tarefa \u00e9 iniciada pela primeira vez.  <strong>Nunca envies mais do que um evento shift_begin para cada trabalho!<\/strong><\/p>\n\n<p>Pausa &#8211; evento que pausa a tarefa.<\/p>\n\n<p>O evento continuado retoma uma tarefa em pausa.<\/p>\n\n<p>Shift_end termina o trabalho.  <strong>Nunca envies mais do que um evento shift_end para cada trabalho!<\/strong><\/p>\n\n<p>Dados necess\u00e1rios para os registos de tempo:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>id_pessoa\n<ul class=\"wp-block-list\">\n<li>Pode ser encontrado no ponto de extremidade \/people<\/li>\n\n\n\n<li>N\u00e3o \u00e9 o mesmo que user_id!<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>planned_workstation_id\n<ul class=\"wp-block-list\">\n<li>O posto de trabalho onde o trabalho est\u00e1 a ser feito<\/li>\n\n\n\n<li>Pode ser encontrado no \/workstations-endpoint<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>data_hor\u00e1rio\n<ul class=\"wp-block-list\">\n<li>O momento em que o evento \u00e9 realizado<\/li>\n\n\n\n<li>Formata: 2024-01-01 10:30:11<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n<p>Para especificar que timelog da Skyplanner est\u00e1 ligado ao timelog de qualquer sistema externo que estejas a utilizar, podes utilizar o campo <strong>external_id <\/strong>. Podes ent\u00e3o, por exemplo, fazer pedidos GET utilizando este id para encontrar um timelog espec\u00edfico do 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>  External_id em registos de tempo<\/figcaption><\/figure>\n\n<h4 class=\"wp-block-heading\">Come\u00e7ar um trabalho<\/h4>\n\n<p>Podes iniciar tarefas enviando um pedido POST como este para a API:<\/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>  Desloca\u00e7\u00e3o_in\u00edcio do registo de tempo<\/figcaption><\/figure>\n\n<p>Ao definir os dados POST para os registos de tempo, define <strong>workshift_id <\/strong>como 0 e <strong>timelog_finalized <\/strong>como <strong>true<\/strong><\/p>\n\n<h4 class=\"wp-block-heading\">Pausa um trabalho<\/h4>\n\n<p>Pausa os trabalhos enviando um pedido POST como este:<\/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>  Pausa no registo de tempo<\/figcaption><\/figure>\n\n<p>Nos registos cronol\u00f3gicos do tipo pausado, podes definir o <strong>montante <\/strong>e o <strong>faulty_amount<\/strong>. Tem tamb\u00e9m em aten\u00e7\u00e3o o <strong>tipo <\/strong>de registo de tempo e <strong>date_time<\/strong>. <\/p>\n\n<h4 class=\"wp-block-heading\">Continua a trabalhar<\/h4>\n\n<p>Eis como podes continuar um registo de tempo em pausa:<\/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>  Continua o registo de tempo<\/figcaption><\/figure>\n\n<p>Nota que se tentares continuar um trabalho que tenha sido terminado por um evento shift_end, receber\u00e1s um erro.<\/p>\n\n<h4 class=\"wp-block-heading\">Terminar um emprego<\/h4>\n\n<p>Eis como terminas um trabalho atrav\u00e9s de um registo de tempo shift_end:<\/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>  Registo do tempo do fim do turno<\/figcaption><\/figure>\n\n<p>Em shift_end-events podes dar os valores <strong>amount <\/strong>e <strong>faulty_amount <\/strong>tal como em paused-events. Nota que se tentares fazer um shift_end-events a um trabalho que n\u00e3o est\u00e1 em execu\u00e7\u00e3o, receber\u00e1s um erro. <\/p>\n\n<h4 class=\"wp-block-heading\">Atualizar registos de tempo<\/h4>\n\n<p>Podes atualizar os dados do registo de tempo enviando pedidos PUT para o ponto final \/timelogs-endpoint, da seguinte forma:<\/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>  Editar registos de tempo<\/figcaption><\/figure>\n\n<p>Nota que tens de ter os dados <strong>beginTimelog <\/strong>e <strong>endTimelog <\/strong>definidos para fazeres uma atualiza\u00e7\u00e3o. Os registos de tempo no Skyplanner s\u00e3o armazenados da seguinte forma: cada registo de tempo &#8220;completo&#8221; (registo de tempo que tem um in\u00edcio e um fim (por exemplo, shift_begin\/continued &amp; paused\/shift_end) tem uma entidade separada para o in\u00edcio e o fim. <\/p>\n\n<p>Estes s\u00e3o emparelhados pelo valor <strong>begin_id <\/strong>encontrado no endlog. No exemplo acima, o beginTimelog tem o valor de id 1 e, por conseguinte, o seu endTimelog tem o valor <strong>begin_id <\/strong>1. <\/p>\n\n<p>Tamb\u00e9m tens de fornecer os valores <strong>person_id <\/strong>e <strong>endTimelog de <\/strong>cada vez que fazes um pedido de atualiza\u00e7\u00e3o, mesmo que n\u00e3o os alteres.<\/p>\n\n<h4 class=\"wp-block-heading\">Formas alternativas de fazer registos de tempo<\/h4>\n\n<p>Aqui est\u00e3o algumas formas alternativas de acederes aos teus trabalhos utilizando a API.<\/p>\n\n<h5 class=\"wp-block-heading\">Logfull<\/h5>\n\n<p>Se quiseres enviar os registos de tempo de in\u00edcio e de fim num \u00fanico pedido, podes utilizar o ponto de extremidade <strong>\/timelogs\/log-full<\/strong>, desta forma:<\/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>  Pedido de registo<\/figcaption><\/figure>\n\n<p>Repara como os montantes s\u00e3o enviados aqui: o primeiro valor &#8220;amount&#8221; denota o <strong>montante defeituoso<\/strong> e o segundo o <strong>montante<\/strong>. Este pedido cria as entidades beginlog e endlog num \u00fanico pedido. <\/p>\n\n<h5 class=\"wp-block-heading\">Registo r\u00e1pido<\/h5>\n\n<p>O &#8220;Quicklogging&#8221; de um trabalho completa-o num \u00fanico pedido, define a quantidade de produtos completada para corresponder ao valor definido no item da encomenda. O registo r\u00e1pido \u00e9 feito utilizando o ponto final <strong>\/timelogs\/quick-log<\/strong>: <\/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>  Registo r\u00e1pido<\/figcaption><\/figure>\n\n<p>Observar que aqui s\u00f3 \u00e9 necess\u00e1rio fornecer <strong>production_planning_job_id<\/strong>, <strong>planned_workstation_id <\/strong>e <strong>person_id<\/strong>. Os valores de tempo e montante s\u00e3o preenchidos automaticamente. Nota tamb\u00e9m que os trabalhos com registo r\u00e1pido s\u00e3o sempre conclu\u00eddos com o evento shift_end, pelo que n\u00e3o \u00e9 poss\u00edvel qualquer outro registo ap\u00f3s o registo r\u00e1pido!  <\/p>\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estrutura de dados do Skyplanner Antes de mergulharmos nos timelogs, precisamos discutir um pouco sobre a estrutura de dados no Skyplanner e como as coisas funcionam por baixo do cap\u00f4. Tudo isso ser\u00e1 discutido mais tarde. Se integraste os dados das tuas encomendas\/ordens de trabalho\/trabalhos na Skyplanner, \u00e9 muito prov\u00e1vel que tenhas utilizado pelo menos &#8230; <a title=\"Registos de tempo\" class=\"read-more\" href=\"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/\" aria-label=\"Read more about Registos de tempo\">Leia mais<\/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":[651],"doc_tag":[652,1535],"class_list":["post-61503","docs","type-docs","status-publish","hentry","doc_category-integracoes","doc_tag-api-pt-br","doc_tag-integracao-pt-br"],"acf":[],"year_month":"2026-04","word_count":1135,"total_views":"144","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"name":"Sami","author_nicename":"sami","author_url":"https:\/\/skyplanner.ai\/pt-br\/author\/sami\/"},"doc_category_info":[{"term_name":"Integra\u00e7\u00f5es","term_url":"https:\/\/skyplanner.ai\/pt-br\/docs-category\/integracoes\/"}],"doc_tag_info":[{"term_name":"API","term_url":"https:\/\/skyplanner.ai\/pt-br\/docs-tag\/api-pt-br\/"},{"term_name":"Integra\u00e7\u00e3o","term_url":"https:\/\/skyplanner.ai\/pt-br\/docs-tag\/integracao-pt-br\/"}],"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>Registos de tempo &#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\/pt-br\/docs\/registos-de-tempo\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Registos de tempo\" \/>\n<meta property=\"og:description\" content=\"Estrutura de dados do Skyplanner Antes de mergulharmos nos timelogs, precisamos discutir um pouco sobre a estrutura de dados no Skyplanner e como as coisas funcionam por baixo do cap\u00f4. Tudo isso ser\u00e1 discutido mais tarde. Se integraste os dados das tuas encomendas\/ordens de trabalho\/trabalhos na Skyplanner, \u00e9 muito prov\u00e1vel que tenhas utilizado pelo menos ... Leia mais\" \/>\n<meta property=\"og:url\" content=\"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/\" \/>\n<meta property=\"og:site_name\" content=\"SkyPlanner\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-07T11:13:51+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=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/\",\"url\":\"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/\",\"name\":\"Registos de tempo &#8211; SkyPlanner\",\"isPartOf\":{\"@id\":\"https:\/\/skyplanner.ai\/pt-br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/#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:13:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/#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\/pt-br\/docs\/registos-de-tempo\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/skyplanner.ai\/pt-br\/pagina-inicial\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docs\",\"item\":\"https:\/\/skyplanner.ai\/pt-br\/docs\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Registos de tempo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/skyplanner.ai\/pt-br\/#website\",\"url\":\"https:\/\/skyplanner.ai\/pt-br\/\",\"name\":\"SkyPlanner\",\"description\":\"AI-powered production scheduling and planning software\",\"publisher\":{\"@id\":\"https:\/\/skyplanner.ai\/pt-br\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/skyplanner.ai\/pt-br\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/skyplanner.ai\/pt-br\/#organization\",\"name\":\"SkyPlanner APS\",\"url\":\"https:\/\/skyplanner.ai\/pt-br\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/skyplanner.ai\/pt-br\/#\/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\/pt-br\/#\/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":"Registos de tempo &#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\/pt-br\/docs\/registos-de-tempo\/","og_locale":"pt_BR","og_type":"article","og_title":"Registos de tempo","og_description":"Estrutura de dados do Skyplanner Antes de mergulharmos nos timelogs, precisamos discutir um pouco sobre a estrutura de dados no Skyplanner e como as coisas funcionam por baixo do cap\u00f4. Tudo isso ser\u00e1 discutido mais tarde. Se integraste os dados das tuas encomendas\/ordens de trabalho\/trabalhos na Skyplanner, \u00e9 muito prov\u00e1vel que tenhas utilizado pelo menos ... Leia mais","og_url":"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/","og_site_name":"SkyPlanner","article_modified_time":"2025-10-07T11:13:51+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":{"Est. tempo de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/","url":"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/","name":"Registos de tempo &#8211; SkyPlanner","isPartOf":{"@id":"https:\/\/skyplanner.ai\/pt-br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/#primaryimage"},"image":{"@id":"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/#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:13:51+00:00","breadcrumb":{"@id":"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/skyplanner.ai\/pt-br\/docs\/registos-de-tempo\/#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\/pt-br\/docs\/registos-de-tempo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/skyplanner.ai\/pt-br\/pagina-inicial\/"},{"@type":"ListItem","position":2,"name":"Docs","item":"https:\/\/skyplanner.ai\/pt-br\/docs\/"},{"@type":"ListItem","position":3,"name":"Registos de tempo"}]},{"@type":"WebSite","@id":"https:\/\/skyplanner.ai\/pt-br\/#website","url":"https:\/\/skyplanner.ai\/pt-br\/","name":"SkyPlanner","description":"AI-powered production scheduling and planning software","publisher":{"@id":"https:\/\/skyplanner.ai\/pt-br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/skyplanner.ai\/pt-br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/skyplanner.ai\/pt-br\/#organization","name":"SkyPlanner APS","url":"https:\/\/skyplanner.ai\/pt-br\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/skyplanner.ai\/pt-br\/#\/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\/pt-br\/#\/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\/pt-br\/author\/sami\/"},"uagb_comment_info":0,"uagb_excerpt":"Estrutura de dados do Skyplanner Antes de mergulharmos nos timelogs, precisamos discutir um pouco sobre a estrutura de dados no Skyplanner e como as coisas funcionam por baixo do cap\u00f4. Tudo isso ser\u00e1 discutido mais tarde. Se integraste os dados das tuas encomendas\/ordens de trabalho\/trabalhos na Skyplanner, \u00e9 muito prov\u00e1vel que tenhas utilizado pelo menos&hellip;","knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/skyplanner.ai\/pt-br\/wp-json\/wp\/v2\/docs\/61503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skyplanner.ai\/pt-br\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/skyplanner.ai\/pt-br\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/skyplanner.ai\/pt-br\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/skyplanner.ai\/pt-br\/wp-json\/wp\/v2\/comments?post=61503"}],"version-history":[{"count":0,"href":"https:\/\/skyplanner.ai\/pt-br\/wp-json\/wp\/v2\/docs\/61503\/revisions"}],"wp:attachment":[{"href":"https:\/\/skyplanner.ai\/pt-br\/wp-json\/wp\/v2\/media?parent=61503"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/skyplanner.ai\/pt-br\/wp-json\/wp\/v2\/doc_category?post=61503"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/skyplanner.ai\/pt-br\/wp-json\/wp\/v2\/doc_tag?post=61503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}