{"id":95672,"date":"2021-06-22T15:15:56","date_gmt":"2021-06-22T13:15:56","guid":{"rendered":"https:\/\/artigianodelsoftware.it\/blog\/?p=95672"},"modified":"2021-06-22T15:15:58","modified_gmt":"2021-06-22T13:15:58","slug":"jql-worklog","status":"publish","type":"post","link":"https:\/\/artigianodelsoftware.it\/blog\/2021\/06\/22\/jql-worklog\/","title":{"rendered":"JQL &#038; Worklog"},"content":{"rendered":"<div class=\"pdfprnt-buttons pdfprnt-buttons-post pdfprnt-top-right\"><a href=\"javascript: imageToPdf()\" class=\"pdfprnt-button pdfprnt-button-pdf\" target=\"_self\"><img src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/plugins\/pdf-print\/images\/pdf.png\" alt=\"image_pdf\" title=\"Visualizza PDF\" \/><\/a><a href=\"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts\/95672?print=print\" class=\"pdfprnt-button pdfprnt-button-print\" target=\"_blank\"><\/a><\/div>\n<p>In questo post andremo ad esaminare come possiamo sfruttare il JQL per ottenere informazioni sul Worklog delle issue Jira.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/marketplace-cdn.atlassian.com\/files\/6d9203fa-d7bd-41d2-9628-84d2c8bb1885\" alt=\"Un esempio di caricamento del worklog\"\/><figcaption>Un esempio di caricamento di worklog<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Cosa offre il JQL standard<\/h2>\n\n\n\n<p>Partiamo come sempre dallo standard e cerchiamo di descrivere nel dettaglio quello che abbiamo a disposizione sul Worklog. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L&#8217;opzione deve essere attiva<\/h3>\n\n\n\n<p>Jira memorizza il Worklog nativamente. L&#8217;opzione deve naturalmente essere attivata (di default la abbiamo gi\u00e0 abilitata) e questa possibilit\u00e0 la abbiamo a disposizione nella sezione di amministrazione della nostra instanza Jira (men\u00f9 Issue).<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"537\" src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-18.35.55-1024x537.png\" alt=\"Come attivare il Time Tracking\" class=\"wp-image-95683\" srcset=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-18.35.55-1024x537.png 1024w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-18.35.55-300x157.png 300w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-18.35.55-768x403.png 768w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-18.35.55-619x325.png 619w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-18.35.55.png 1435w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Sezione di Jira Cloud dedicata al Time Tracking<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">I campi che referenziamo<\/h3>\n\n\n\n<p>Le informazioni che Jira memorizza sono le seguenti:<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-4 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center\"><strong><em>Original estimate<\/em><\/strong><\/p>\n\n\n\n<p>Si tratta della stima che andiamo a impostare nelle nostre issue. Il formato \u00e8 : <\/p>\n\n\n\n<p>1w 2d 3h 4m (1 settimana, 2 giorni, 3 ore, 4 minuti)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center\"><strong><em>Remaining estimate<\/em><\/strong><\/p>\n\n\n\n<p>Nel caso di ore caricate, il campo ci indica quanta stima abbiamo ancora a disposizione. Il formato \u00e8:<\/p>\n\n\n\n<p><meta charset=\"utf-8\">1w 2d 3h 4m (1 settimana, 2 giorni, 3 ore, 4 minuti)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center\"><strong><em>Time spent<\/em><\/strong><\/p>\n\n\n\n<p>Tempo speso dall&#8217;operatore nel task. Il formato \u00e8:<\/p>\n\n\n\n<p><meta charset=\"utf-8\">1w 2d 3h 4m (1 settimana, 2 giorni, 3 ore, 4 minuti)<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-8 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center\"><strong><em>Worklog comment<\/em><\/strong><\/p>\n\n\n\n<p>Commento che \u00e8 stato inserito dall&#8217;operatore per specificare il dettaglio delle operazioni eseguite. Si tratta di una stringa.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center\"><strong><em>Worklog date<\/em><\/strong><\/p>\n\n\n\n<p>Data in cui \u00e8 stata svolta l&#8217;attivit\u00e0. Si tratta di una data.  <\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center\"><strong><em>Work ratio<\/em><\/strong><\/p>\n\n\n\n<p>Percentuale di lavoro svolta (in %)<\/p>\n\n\n\n<p><strong>workRatio = timeSpent \/ originalEstimate) x 100<\/strong><\/p>\n\n\n\n<p>Si tratta di un numerico.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"> Che operazioni possiamo fare?<\/h3>\n\n\n\n<p>Con i primi tre campi che ho indicato, possiamo verificare quali issue presentano :<\/p>\n\n\n\n<ul><li><strong><em>Original estimate<\/em><\/strong> &#8211; Verificare quali issue presentano un particolare valore di stima impostata (valore esatto oppure maggiore o inferiore ad un valore)<\/li><li><strong><em>Remaining estimate <\/em><\/strong> &#8211; Verificare quali issue presentano una stima rimanente pari ad un valore esatto o maggiore o inferiore ad un  valore<\/li><li><strong><em>Time spent<\/em><\/strong> &#8211; Verificare quali issue presentano un worklog caricato pari ad un valore esatto o maggiore o inferiore ad un valore;<\/li><\/ul>\n\n\n\n<p>In questo caso possiamo eseguire delle interrogazioni JQL del tipo: <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-large\"><p>&lt;CAMPO&gt; = &lt;Valore&gt; | &lt;CAMPO&gt; &gt; &lt;Valore&gt; | &lt;CAMPO&gt; &lt; &lt;Valore&gt;<\/p><p>&lt;CAMPO&gt; != &lt;Valore&gt; | &lt;CAMPO&gt; &gt;= &lt;Valore&gt; | &lt;CAMPO&gt; &lt;= &lt;Valore&gt;<\/p><cite>esempi di alcuni possibili interrogazioni <\/cite><\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Alcuni esempi<\/h3>\n\n\n\n<p>Riporto alcuni esempi di interrogazioni JQL per capire che cosa possiamo arrivare ad ottenere.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-11 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong><em>Capire quali issue per cui non abbiamo un worklog caricato<\/em><\/strong><\/p>\n\n\n\n<p>project = &lt;KEY&gt; and timespent is EMPTY<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong><em>Capire quali issue presentano un worklog maggiore di un determinato limite<\/em><\/strong> <strong><em>(8 ore)<\/em><\/strong><\/p>\n\n\n\n<p>project = &lt;KEY&gt; and timespent &gt; 8h<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-14 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong><em>Capire quali issue presentano una stima superiore al tempo usato<\/em><\/strong><\/p>\n\n\n\n<p>project = &lt;KEY&gt; and timespent &gt; 0 and remainingEstimate &gt; 0<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><\/p>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Cosa non possiamo fare<\/h3>\n\n\n\n<p>Non possiamo confrontare questi campi tra di loro. Se ad esempio impostiamo un JQL come nella seguente immagine:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"230\" src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-19.27.05-1024x230.png\" alt=\"evudenza dell'errore che segnala Jira\" class=\"wp-image-95690\" srcset=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-19.27.05-1024x230.png 1024w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-19.27.05-300x67.png 300w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-19.27.05-768x173.png 768w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-19.27.05-619x139.png 619w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-19.27.05.png 1340w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>L&#8217;errore che andiamo a riscontrare<\/figcaption><\/figure><\/div>\n\n\n\n<p>lo standard purtroppo non ci supporta e ci restituisce un errore.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Per i restanti campi &#8230;.<\/h2>\n\n\n\n<p>&#8230;. possiamo eseguire delle operazioni di diverso tipo. Andiamo nel dettaglio.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-17 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong><em>Worklog Comment<\/em><\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Quando inseriamo un worklog, abbiamo la possibilit\u00e0 di poter inserire una stringa per descrivere il tipo di attivit\u00e0. Le operazioni che possiamo eseguire possono essere quelle di verificare la presenza di determinate stringhe usando l&#8217;operatore <strong><code><em>~<\/em><\/code><\/strong> <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-large\"><p><code>worklogComment ~\u00a0\"&lt;qui inseriamo il nostro testo>\"<\/code><\/p><cite>Esempio di utilizzo<\/cite><\/blockquote>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-22 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<div class=\"wp-block-columns is-layout-flex wp-container-20 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Quando vogliamo accertarci che esista un worklogrelativo ad un lavoro svolto ad una determinata data, allora andiamo a referenziare questo campo, sfruttando tutte le funzioni relative alle date. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-large\"><p><code>worklogDate =&nbsp;\"&lt;Inserisci_qui_la_data&gt;\"<\/code><\/p><p>Il formato della data \u00e8: yyyy-mm-dd<\/p><cite>Esempio di utilizzo<\/cite><\/blockquote>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"has-text-align-right\"><strong><em>Worklog Date<\/em><\/strong><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-25 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong><em>Work ratio<\/em><\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Il campo esprime la percentuale di lavoro svolto rispetto alla stima impostata. In questo caso \u00e8 particolarmente utile per capire la % di lavoro svolto dall&#8217;operatore.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-large\"><p>workratio &lt; &lt;valore_numerico&gt;<\/p><cite>Esempio di utilizzo<\/cite><\/blockquote>\n\n\n\n<p>Nella seguente immagine vediamo un utilizzo interessante:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"581\" src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-23.07.27-1024x581.png\" alt=\"Un esempio\" class=\"wp-image-95694\" srcset=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-23.07.27-1024x581.png 1024w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-23.07.27-300x170.png 300w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-23.07.27-768x436.png 768w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-23.07.27-619x351.png 619w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2021\/06\/Schermata-2021-06-18-alle-23.07.27.png 1213w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Punto di attenzione<\/figcaption><\/figure>\n\n\n\n<p>In questo caso vediamo una issue in cui abbiamo stimato 5 ore ma abbiamo speso 7 ore con un surplus di 2 ore rispetto alla stima. In questo caso, abbiamo visto un esempio di come rintracciare le issue che sono risultate sottostimate. <\/p>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusione<\/h2>\n\n\n\n<p>Abbiamo visto alcuni esempi di utilizzo dello standard di JQ, dedicati al worklog. Se volete avere maggiori ragguagli, vi suggerisco di acquistare il mio libro su JQL:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-amazon wp-block-embed-amazon\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"JQL Per tutti: Introduzione al linguaggio di interrogazione per Jira\" type=\"text\/html\" width=\"750\" height=\"550\" frameborder=\"0\" allowfullscreen style=\"max-width:100%\" src=\"https:\/\/leggi.amazon.it\/kp\/card?preview=inline&#038;linkCode=kpd&#038;ref_=k4w_oembed_1Y1aJthlLXj26a&#038;asin=B07GT5KGGH&#038;tag=kpembed-20\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Reference<\/h2>\n\n\n\n<p>Altre informazioni sono reperibili alla <a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/advanced-search-reference-jql-fields\/#Advancedsearchingfieldsreference-worklogDateWorklogdate\" target=\"_blank\" rel=\"noreferrer noopener\">seguente pagina<\/a>.<\/p>\n<div class=\"clearfix\"><span class='ldc-ul_cont' onclick=\"alter_ul_post_values(this,'95672','like')\" >Likes<img src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/plugins\/like-dislike-counter-for-posts-pages-and-comments\/images\/up.png\" \/>(<span>0<\/span>)<\/span><span class='ldc-ul_cont' onclick=\"alter_ul_post_values(this,'95672','dislike')\" >Dislikes<img src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/plugins\/like-dislike-counter-for-posts-pages-and-comments\/images\/down.png\" \/>(<span>0<\/span>)<\/span><\/div>","protected":false},"excerpt":{"rendered":"<p>In questo post andremo ad esaminare come possiamo sfruttare il JQL per ottenere informazioni sul Worklog delle issue Jira. Cosa offre il JQL standard Partiamo come sempre dallo standard e cerchiamo di descrivere nel dettaglio quello che abbiamo a disposizione<\/p>\n","protected":false},"author":1,"featured_media":95218,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","footnotes":""},"categories":[3],"tags":[34,35,71,74,75,76],"_links":{"self":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts\/95672"}],"collection":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/comments?post=95672"}],"version-history":[{"count":15,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts\/95672\/revisions"}],"predecessor-version":[{"id":95705,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts\/95672\/revisions\/95705"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/media\/95218"}],"wp:attachment":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/media?parent=95672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/categories?post=95672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/tags?post=95672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}