Sharepoint Designer: inviare mail a più utenti con un workflow

Pubblicato da Davide, Aggiornato giovedì 13 agosto 2009 Nessun Commento »

Questo articolo e' stato scritto piu' di 6 mesi fa.. In teoria non cambia nulla, sed panta rei: se trovi link o informazioni datate segnalalo pure. :)

In questo articolo una dritta estiva per aggirare un rognoso problemino di Sharepoint Designer, da qualche tempo rilasciato gratuitamente da Microsoft, tool essenziale per personalizzare Sharepoint, la famosa piattaforma di condivisone made in Redmond.

Uno dei maggiori tanti limiti di Sharepoint Designer è quello di non poter creare un workflow in grado di inviare mail a diversi utenti prendendoli da un campo di tipo person picker, quando questo è impostato per accettare più di un solo utente. Se infatti si permette l’inserimento multiplo, al momento della creazione del workflow non sarà visibile tale campo tra quelli selezionabili come destinatari della mail.

avviso

Il mio obiettivo è dare la possibilità all’utente, in una lista di tipo calendario, di invitare diverse persone ad un evento e far partire un workflow che avvisi via mail queste persone al momento del salvataggio dell’appuntamento. Ovviamente gli invitati posso essere più di uno, nonchè un gruppo di utenti.
Ho trovato una soluzione, un workaround, che può sempre tornare utile condividere: semmai qualcuno avesse idee migliori..
Questa soluzione non prevede l’utilizzo di Visual Studio, che è decisamente più fastidioso.

Innanzi tutto bisogna creare nella lista in questione un campo di appoggio, che possiamo chiamare come ci pare, di tipo single line text e non obbligatorio. Utilizzeremo questo campo per salvarci dentro i valori presenti nel campo di tipo person picker.
Una volta fatto ciò dobbiamo oscurare questo campo dal modulo di inserimento di un nuovo appuntamento.
Per far ciò ci sono diverse strade:

  1. La prima prevede il solo intervento sulle configurazioni della lista.
    Andiamo in List Settings -> Advanced Settings e mettiamo yes nell’opzione Allow management of content types?
    Fatto ciò basta tornare nei List Settings, dove sarà presente una sezione riguardante i Content Types
    content
    Cliccando sopra si aprirà la lista dei content type, dove è possibile decidere di rendere hidden l’elemento Appoggio appena creato
  2. L’altra strada prevede l’intervento via Sharepoint Designer, utilizzando un javascript che vada ad oscurare il campo. Nella pagina NewForm.aspx della lista in questione, dopo il pezzo di codice <asp:Content ContentPlaceHolderId=”PlaceHolderMain” runat=”server”>, si può inserire un javascript di questo tipo:

    <script language="javascript" type="text/javascript">
    function Oscura() { 
     document.forms[0].NameDelCampoInputAppoggio.disabled=true;
     }
    _spBodyOnLoadFunctionNames.push("Oscura");
    </script>

    Dove al posto di “NameDelCampoInputAppoggio” mettiamo la stringa dell’attributo name dell’input relativo ad Appoggio, ricavabile dall’HTML del form visualizzato da un browser.

Fatto questo siamo pronti per impostare il workflow da Sharepoint Designer.
I passi sono semplici: sulla lista in questione, all’atto di creazione di un nuovo item, al primo passo impostiamo nel campo Appoggio il valore del campo Avviso (quello del person picker con la possibilità di scegliere più utenti), se quest’utlimo contiene valori.

passaggio1

Al passo 2 inviamo la mail utilizzando come destinatario il campo Appoggio.

passaggio2

Funziona!

Nessun Commento »

Puoi lasciare un tuo commento, oppure fare un trackback dal tuo sito.

Vuoi essere il primo a lasciare un commento per questo articolo? Utilizza il modulo sotto..

Lascia il tuo commento