Diego.NET http://blogs.ugidotnet.org/diego/Default.aspx Another Subtext Powered Blog it-IT Diego Dorola Subtext Version 2.6.0.0 Diego.NET http://blogs.ugidotnet.org/images/RSS2Image.gif http://blogs.ugidotnet.org/diego/Default.aspx 77 60 Project Server 2007 &ndash; Problema con le code Project Server 2007 http://blogs.ugidotnet.org/diego/archive/2009/06/04/project-server-2007-ndash-problema-con-le-code.aspx <p>Ciao, eccomi dopo parecchio tempo a dare risposta ad un problema che mi ha creato qualche grattacapo negli ultimi giorni.</p> <p>Il malvivente è Project Server 2007 e nello specifico il servizio che gestisce le code. </p> <p>Mi è capitato di realizzare, su due macchine virtuali, un ambiente così configurato: </p> <p>Macchina 1 (domain controller): <br />Windows Server 2003 <br />Application Tier WSS 3.0 <br />Application Tier Project Server 2007</p> <p>Macchina 2: <br />Sql Server 2005 <br /> <br /> <br />Il problema che si presentava era il seguente: ogni operazione che doveva essere gestita dalle code non veniva eseguita. Tutti i tasks erano in stato “Waiting to process” e da quello non si scostavano.   <br />Al riavvio del Servizio, tuttavia, la situazione tornava a funzionare. </p> <p>Dopo diversi tentativi ho notato che il malfunzionamento si presentava al riavvio delle macchine (ovviamente prima doveva essere avviata la Macchina 1, in quanto domain controller, successivamente la seconda).</p> <p>Dopo un po’ di ricerche ed analisi ho svelato l’arcano. <br />Il servizio delle code viene, ovviamente, inizializzato all’avvio. Tuttavia alcune delle informazioni di inizializzazione vengono prelevate dal database (o meglio, da wss che si appoggia sul database). <br />L’ordine di avvio delle macchine (che purtroppo nel mio caso è obbligatorio) rendeva il servizio dedicato alla gestione delle code inconcludente. </p> <p>Il servizio che gestisce le code di Project è soggetto ad un velo di instabilità (che il Service Pack 2 risolve in parte), se tuttavia dovesse capitarvi un problema analogo, controllate che non possa essere questo il motivo. Potrebbe risolvere qualche giorno di troubleshooting. <br /></p> <p>Ciao!</p><img src="http://blogs.ugidotnet.org/diego/aggbug/96344.aspx" width="1" height="1" /> Diego Dorola http://blogs.ugidotnet.org/diego/archive/2009/06/04/project-server-2007-ndash-problema-con-le-code.aspx Thu, 04 Jun 2009 13:25:36 GMT http://blogs.ugidotnet.org/diego/archive/2009/06/04/project-server-2007-ndash-problema-con-le-code.aspx#feedback 11 http://blogs.ugidotnet.org/diego/comments/commentRss/96344.aspx http://blogs.ugidotnet.org/diego/services/trackbacks/96344.aspx Policy di Checkin... verifica che siano rispettate VSTS http://blogs.ugidotnet.org/diego/archive/2009/03/30/policy-di-checkin.-verifica-che-siano-rispettate.aspx <div>Eccomi qui, finalmente, a scrivere il mio primo vero post. </div> <br /> <div>Tra le funzionalità di Team Foundation Server e l'altra, io trovo molto utile la possibilità di impostare le policies di checkin, ovvero la possibilità di dare delle guide che devono essere rispettate in fase di salvataggio nel repository. </div> <br /> <div>Chi gestisce un progetto fa affidamento su queste policy per diversi motivi. Vuoi per valutare lo stato di avanzamento, vuoi per studiare la qualità, vuoi per mille altri motivi, ma se queste policies non vengono seguite, può essere assai difficile tenere sotto controllo lo sviluppo. Purtroppo (o per fortuna, dipendentemente dalle situazioni) non c'è modo per impore queste regole. E' possibile, infatti, bypassare una policy, previo inserimento di un commento. Le policies non sono binari che si è costretti a seguire, ma linee guida che possono solo dare una direzione. </div> <br /> <div>E' impensabile andare a guardare tutti i changeset con relativi commenti. Inoltre potrebbe essere utile avere un report schedulato in modo tale da inviare una mail al PM con i dettagli tutti il lunedì mattina. </div> <br /> <div>Perchè, allora, non crearsi un report ad hoc? Un report che mostri i changeset (Id, data, chi ha effettuato l'operazione, commento) e sul quale si possano poi apporre dei filtri? </div> <br /> <div>L'unico "problema" nel realizzare un report di questo tipo potrebbe essere quello di crearsi la query. Nulla davvero di più facile. I database sui quali si deve operare sono 2: TfsVersionControl e TfsWarehouse. Il primo utilizzato per prelevare le informazioni di check-in ed il secondo le informazioni sull'utente. </div> <br /> <div> <div> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:06a4677a-39d2-4cfb-a6ff-321365f0d68b" class="wlWriterEditableSmartContent"><pre style="background-color:#DFEBF9;overflow: auto;"><span style="color: #0000FF;">SELECT</span><span style="color: #000000;"> p.ChangeSetId, cs.CreationDate, cs.Comment </span><span style="color: #0000FF;">as</span><span style="color: #000000;"> CheckInComment, p.Comment </span><span style="color: #0000FF;">as</span><span style="color: #000000;"> OverrideComment, pr.Person, pr.Email </span><span style="color: #0000FF;">FROM</span><span style="color: #000000;"> TfsVersionControl..tbl_PolicyOverride p </span><span style="color: #0000FF;">INNER</span><span style="color: #000000;"> </span><span style="color: #808080;">JOIN</span><span style="color: #000000;"> TfsVersionControl..tbl_ChangeSet cs </span><span style="color: #0000FF;">ON</span><span style="color: #000000;"> p.ChangeSetId</span><span style="color: #808080;">=</span><span style="color: #000000;">cs.ChangeSetId </span><span style="color: #0000FF;">INNER</span><span style="color: #000000;"> </span><span style="color: #808080;">JOIN</span><span style="color: #000000;"> TfsVersionControl..tbl_Identity i </span><span style="color: #0000FF;">ON</span><span style="color: #000000;"> cs.OwnerId</span><span style="color: #808080;">=</span><span style="color: #000000;">i.IdentityId </span><span style="color: #0000FF;">INNER</span><span style="color: #000000;"> </span><span style="color: #808080;">JOIN</span><span style="color: #000000;"> TfsWarehouse..Person pr </span><span style="color: #0000FF;">ON</span><span style="color: #000000;"> i.DisplayName</span><span style="color: #808080;">=</span><span style="color: #000000;">(pr.Domain</span><span style="color: #808080;">+</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">\</span><span style="color: #FF0000;">'</span><span style="color: #808080;">+</span><span style="color: #000000;">pr.Alias) </span></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div> <br /></div> </div> <div>Data questa query, il report viene da sè. Si possono creare filtri sull'id, sulla data, sull'utente e ovviamente sul commento di override, che interessa a noi. </div> <br /> <div>Come primo intervento, non ho sicuramente fornito perle particolarmente preziose, tuttavia durante la valutazione di un progetto e il suo proseguimento, sapere quando e chi non ha rispettato le policy può essere molto utile. </div> <br /> <div>Ciao a tutti </div> <br />-Diego- <img src="http://blogs.ugidotnet.org/diego/aggbug/95764.aspx" width="1" height="1" /> Diego Dorola http://blogs.ugidotnet.org/diego/archive/2009/03/30/policy-di-checkin.-verifica-che-siano-rispettate.aspx Mon, 30 Mar 2009 01:00:00 GMT http://blogs.ugidotnet.org/diego/archive/2009/03/30/policy-di-checkin.-verifica-che-siano-rispettate.aspx#feedback 6 http://blogs.ugidotnet.org/diego/comments/commentRss/95764.aspx http://blogs.ugidotnet.org/diego/services/trackbacks/95764.aspx Sharepoint Designer Workflow &ndash; Copia su lista senza permessi Sharepoint http://blogs.ugidotnet.org/diego/archive/2009/03/27/sharepoint-designer-workflow-ndash-copia-su-lista-senza-permessi.aspx <p>Oggi mi sono trovato ad affrontare un problema non indifferente.  <br />Lo scenario che volevo produrre era la seguente (estratto dal contesto vero e proprio che ora non interessano particolarmente):</p> <p>Ho due liste (<strong>source</strong> e <strong>dest</strong>) e due ruoli (<strong>writer</strong> e <strong>manager</strong>). <br />I <strong>writers</strong> devono popolare la prima lista. Al termine della compilazione, un workflow, deve copiarmi i dati in <strong>dest</strong>. Su questa lista i <strong>managers</strong> devono effettuare altre operazioni. <strong>Writer</strong> non deve avere alcun permesso alla lista <strong>dest. Manager, </strong>invece, non deve avere accesso nè in lettura nè in scrittura su <strong>source.</strong> La soluzione doveva richiedere poco tempo per essere implementata e, se possibile, doveva essere realizzata utilizzando Sharepoint Designer. </p> <p>Il problema sorgeva dal fatto che il contesto del workflow è lo stesso dell’utente che l’ha scatenato. Questo significa che se <strong>writer</strong> non ha permessi sufficienti per scrivere su <strong>desc</strong>, nemmeno il workflow li avrà. Dopo un po’ di ricerca, su CodePlex, ho trovato una custom activity (a dire la verità è un pacchetto) che consente di scrivere su liste di qualunque sito, senza avere necessariamente permessi di scrittura. La realizzazione del Workflow, quindi, ha richiesto pochi minuti di tempo per essere portata a termine. </p> <p>Oltre a questa activity sono presenti altri 4 o 5 tasks molto utili. </p> <p><a title="http://www.codeplex.com/SPDActivities" href="http://www.codeplex.com/SPDActivities">http://www.codeplex.com/SPDActivities</a></p> <p> <br />P.s. <br />Non mi sono soffermato sulla realizzazione specifica del workflow perchè non era scopo di questo post oltre al fatto che l’implementazione e le necessità erano molto più complesse. In caso venga richiesto, eventualmente, farò un altro intervento dove elencherò gli steps completi. </p> <p>Buon weekend a tutti!</p><img src="http://blogs.ugidotnet.org/diego/aggbug/95815.aspx" width="1" height="1" /> Diego Dorola http://blogs.ugidotnet.org/diego/archive/2009/03/27/sharepoint-designer-workflow-ndash-copia-su-lista-senza-permessi.aspx Fri, 27 Mar 2009 21:22:21 GMT http://blogs.ugidotnet.org/diego/archive/2009/03/27/sharepoint-designer-workflow-ndash-copia-su-lista-senza-permessi.aspx#feedback 7 http://blogs.ugidotnet.org/diego/comments/commentRss/95815.aspx http://blogs.ugidotnet.org/diego/services/trackbacks/95815.aspx Distribuire un progetto che &egrave; sotto Source Control http://blogs.ugidotnet.org/diego/archive/2009/03/23/distribuire-un-progetto-che-egrave-sotto-source-control.aspx <p>Immaginate una situazione di questo tipo: <br />Il cliente gestisce il versioning dei propri sorgenti utilizzando SubVersion. Internamente sfruttate Team Foundation Server 2008. Se si copiasse sotto SV i progetti così come sono, all’apertura degli stessi, il cliente, si troverebbe ad avere finestre di dialogo che avvisano dell’impossibilità di connettersi al source control del TFS. </p> <p>Una situazione simile si può verificare anche più frequentemente, dovendo passare i progetti a collaboratori esterni. </p> <p>Come si risolve questa situazione?</p> <p>Banalmente facendo l’unbind dei progetti: <br /><strong>File –&gt; Source Control –&gt; Change Source Control</strong> <br />Dalla finestra di dialogo che viene aperta, effettuare l’unbind dei progetti da copiare. </p> <p>Non ho certo spiegato qualcosa trascendentale, per molti sarà sicuramente acqua calda, tuttavia, per esperienza, assicuro che molti si saranno chiesti come passare ad altre persone dei progetti che avete sotto Source Control</p> <p> </p> <p>Ciao!</p><img src="http://blogs.ugidotnet.org/diego/aggbug/95773.aspx" width="1" height="1" /> Diego Dorola http://blogs.ugidotnet.org/diego/archive/2009/03/23/distribuire-un-progetto-che-egrave-sotto-source-control.aspx Mon, 23 Mar 2009 14:54:40 GMT http://blogs.ugidotnet.org/diego/archive/2009/03/23/distribuire-un-progetto-che-egrave-sotto-source-control.aspx#feedback 7 http://blogs.ugidotnet.org/diego/comments/commentRss/95773.aspx http://blogs.ugidotnet.org/diego/services/trackbacks/95773.aspx Kick off... http://blogs.ugidotnet.org/diego/archive/2009/03/21/kickoff.aspx <p>Eccomi! </p> <p>Finalmente sono presente anche io con il mio blog. </p> <p>Da qui in avanti spero di riuscire ad offrire il mio contributo diffondendo quello che la mia esperienza mi porterà a conoscere ed apprendere.</p> <p>Non ho la presunzione di insegnare nulla a nessuno, la mia intenzione è la semplice condivisione. Su queste basi chiedo a chiunque di commentare quanto da me scritto, di sottolineare i miei errori e di aiutarmi ad accrescere la mia esperienza e nello stesso tempo spero di riuscire alleggerire i grattacapi di chi non ha ancora vissuto le mie stesse esperienze.</p> <p>Buon weekend a tutti. <br /> Ci leggeremo presto.</p> <p> </p> <p>-Diego-</p> <p> </p><img src="http://blogs.ugidotnet.org/diego/aggbug/95763.aspx" width="1" height="1" /> Diego Dorola http://blogs.ugidotnet.org/diego/archive/2009/03/21/kickoff.aspx Sat, 21 Mar 2009 04:00:17 GMT http://blogs.ugidotnet.org/diego/archive/2009/03/21/kickoff.aspx#feedback 13 http://blogs.ugidotnet.org/diego/comments/commentRss/95763.aspx http://blogs.ugidotnet.org/diego/services/trackbacks/95763.aspx