3 mars 2015

SharePoint 2013 : Envoi d'un mail via l'API REST

L'ouverture de SharePoint 2013 vers le modèle client (notamment grâce aux API Rest ou au JSOM : JavaScript Model Object) ouvre désormais de nouvelles possibilités dans les développements sur cette plateforme.
Pour illustrer ce propos, prenons un "use case" simple : Développer une fonctionnalité "Need Help" permettant de saisir quelques informations puis d'envoyer un  mail à un destinataire (spécifique ou non) lors du clic sur un bouton.

La méthode généralement employée dans ce genre de cas était la conception d'une WebPart (en code managée ou CSOM) ou la conception d'un flux de travail d'envoi de mail déclenché lors de l'enregistrement des informations dans une listes.
A présent, il n''est plus nécessaire de disposer de Visual Studio pour réaliser ce genre de besoins simple. Il peut être réalisé en réalisant un vulgaire formulaire HTML utilisant du JavaScript.
 
Voici l'exemple d'une fonction JavaScript permettant l'envoi du mail via la fonctionnalité offerte par SharePoint (en pouvant définir l'adresse de provenance, les destinataires, sujets, corps des mails) :
function sendEmail(from, to, body, subject) {
 var urlSendMailRest = _spPageContextInfo.webServerRelativeUrl + "/_api/SP.Utilities.Utility.SendEmail";
 $.ajax({
     contentType: 'application/json',
     url: urlSendMailRest,
     type: "POST",
     data: JSON.stringify({
         'properties': {
             '__metadata': { 'type': 'SP.Utilities.EmailProperties' },
             'From': from,
             'To': { 'results': ['to'] },
             'Body': body,
             'Subject': subject
         }
     }),
     headers: {
         "Accept": "application/json;odata=verbose",
         "content-type": "application/json;odata=verbose",
         "X-RequestDigest": $("#__REQUESTDIGEST").val()
     },
     success: function (data) {
        alert("Mail envoyé");
     },
     error: function (err) {
         alert(JSON.stringify(err));
     }
 });
}
Et voila, le tour est joué! Vous avez conçu votre premier formulaire permettant d'envoyer des mails à vos utilisateurs SP sans ouvrir un IDE.

25 février 2015

SHAREPOINT 2013 : Vérouillage des autorisations

Aujourd'hui, un article sur une nouvelle fonctionnalité souvent méconnue de SharePoint 2013 nommée "Limited-access user permission lockdown mode". Ce qui signifie en bon français : "Mode de verrouillage des autorisations d'utilisateur ayant un accès limité".

La description du feature dans SharePoint 2013 est la suivante : "Lorsque cette fonctionnalité est activée, les autorisations des utilisateurs au niveau Accès limité (tels que les utilisateurs anonymes) sont réduites, ce qui les empêche d'accéder aux pages des applications."
 
Cette fonctionnalité est activée ou non selon le type de site:
  • Désactivée sur un site d'équipe,
  • Activée sur un site de publication.
 
Elle permet de refuser l'accès d'un utilisateur pour un container (liste ou bibliothèque) sur lesquels il possède uniquement l'autorisalition "Accès limité". Concrètement cela signifie que si l'utilisateur dispose de droits uniquement sur un document mais pas sur la bibliothèque, il ne pourra pas accèder à la bibliothèque pour accèder à ce document. Il ne pourra le faire que si quelqu'un lui envoie un lien vers le document ou qu'il utilise le moteur de recherche.
 
En fait, la question se pose aussi sur des sites anonymes. Si vous souhaitez que les utilisateurs puissent accèder aux bibliothèques, il faudra impérativement désactiver cette fonctionnalité (après avoir positionné "Anonymous users" dans les permissions du site).

9 février 2015

INFOPATH : Prochaine version de SharePoint

La bonne nouvelle du jour nous provient du blog Office qui confirme qu'InfoPath sera toujours présent dans SharePoint vNext (Aka SharePoint 2016). Il sera de même toujours disponible dans Office 365.
 
Voici l'article officiel:
 
Il faut voir dans cette annonce un retard (voir un abandon) dans la solution alternative proposée par Microsoft lors de la SharePoint Conference nommée "FoSL" (Form on SharePoint List).
Ceci a été confirmé dans la roadmap d'Office 365 fournie par MS:
 
Microsoft souhaite proposer une réelle alternative à InfoPath dans SharePoint. En effet, il est utilisé par la plupart des entreprises disposant de la CAL entreprise de SharePoint. De plus, la possibilité depuis SP2010 de personnaliser les formulaires de listes a accru ce succès.
Il faudra donc encore attendre un peu de temps afin de disposer d'un outil permettant de migrer ces formulaire vers une nouvelle technologie.
 
En revanche, InfoPath 2013 restera bien la dernière version du produit et sera donc compatible avec SP2016.

8 février 2015

INFOPATH 2013 : Rediriger un formulaire

Une demande récurrente dans la conception des formulaires InfoPath Forms Services est la possibilité de rediriger le formulaire vers une URL spécifique lors de l'enregistrement, la fermeture ou l'annulation du formulaire.
 
Il existe une méthode "classique" qui consiste à modifier l'adresse dans le paramètre "Source" de l'url du formulaire. Lorsque le formulaire se ferme, vous êtes automatiquement redirigé vers la valeur précisée dans le paramètre source.
Cette technique fonctionne très bien uniquement lorsque que vous restez sur votre tenant SharePoint.

Si vous devez préciser une URL externe, il sera nécessaire de passer par une page intermédiaire stockée dans SP.
Afin de contourner le problème de limitation d'une redirection vers une url externe, vous pouvez suivre les étapes suivantes:
  • Créer un fichier ".aspx" sur votre PC,
  • Dans ce fichier, insérer uniquement une balise JavaScript et insérer le code de redirection suivant : "window.location="monurl":

  • Télécharger ce fichier dans une bibliothèque SharePoint en l'approuvant ou le publiant si nécessaire,
  • Faire pointer le paramètre "Source" de l'url de votre formulaire vers l'adresse de ce fichier.
 
Note : Si vous concevez un fichier HTML (à la place d'une page ASPX), celui-ci ne sera pas être ouvert directement par SharePoint et il vous sera demandé de le télécharger. Ce comportement reste tout de même modifiable en changeant le mode de sécurité de l'application web de 'Strict' à 'Permissif' (attention cette option n'est pas disponible sur Office 365).
 
 
Ceci est une version basique fonctionnant sur SharePoint 2013 et Office 365. Il serait possible d'être plus intelligent et dynamique en réalisant des redirections en fonction:
  • de valeurs du formulaire (interrogation via JSOM),
  • du type de formulaires,
  • du type d'utilisateurs,...

Pour cela, il suffira uniquement de passer les paramètres souhaités à la page de redirection qui comprendra l'intelligence métier.

26 janvier 2015

SHAREPOINT 2013 : Ouvrir un lien dans un nouvel onglet

Une des nouvelles fonctionnalités à utiliser dans SharePoint 2013 est le "JSLINK".
Le "JSLink" est une nouvelle propriété apparue sur les WebPart de type ListView : utilisées dans les containeurs de type liste, bibliothèque ainsi que lors de l'ajout sur des pages. Cette propriété permet de surcharger l'affichage d'une liste en utilisant du JavaScript.

Ceci est une grande avancée comparé à SharePoint 2010 sur lequel nous étions obligé de modifier les affichages en utilisant du XSLT (puissant mais pas très user-friendly...).

Prenons un besoin simple : Ouvrir les liens disponibles dans une liste de liens SharePoint dans un nouvel onglet.
Pour se faire, il suffit de concevoir un fichier "JSLink_OpenInNewTab.js" qui comprendra les éléments suivants:



Nous pouvons voir ici que l'affichage du champ natif SP "UrlwMenu" est surchargé par notre fonction JS "OpenTitleInNewTab".
Il vous suffit ensuite de définir la propriété de la WP en spécifiant le chemin d'accès au fichier JS et le tour est joué: