Archives mensuelles : février 2016

Importer un document word avec ses images dans un Wiki SharePoint

Introduction

Cette semaine, un de mes clients m’a demandé d’importer des documents Word contenant des centaines d’images dans une page Wiki SharePoint. Au départ, je me suis dit que ça serait facile et qu’un simple copier-coller allait faire le travail! Cependant, je me suis vite rendu compte que les images ne suivaient pas. Je n’avais pas vraiment envie de faire le travail de moine consistant à enregistrer individuellement chacune des images pour ensuite les insérer dans le contenu Wiki. Je me suis donc penché sur les diverses solutions possibles pour me faciliter le travail.

Solutions possible

  1. Utiliser un outils tiers
  2. Utiliser un Plugin sur CodePlex : MS Word SharepointWiki Plugin
  3. Utiliser Word pour publier vers un billet de Blog SharePoint
Dans ce billet, je vais mettre l’emphase sur le point 3 car il ne nécessite pas de frais d’acquisition et d’installation particulière.

Utiliser Word pour publier vers un billet de Blog SharePoint

Tout d’abord, pour vous assurer que cette solution fonctionne, il vous faudra idéalement respecter les prérequis suivant :

  • Une version de Word qui correspond à votre version de SharePoint.
    • Ex  : Word 2013 et SharePoint 2013
  • Un site de type « Blog » afin de pouvoir publier votre document Word.
    • Il pourra être supprimé sans problème une fois que l’opération sera complété.

Étape 1

La première étape consiste à ouvrir votre document Word et ensuite de naviguer sous l’onglet Fichier -> Partager -> Publier sur le blog

wordToWiki.PNG

Étape 2

Ensuite, il faut enregistrer un compte de blog

wordToWiki2.PNG

Puis sélectionner « Blog SharePoint » dans la liste déroulante

wordToWiki3

Puis saisir le URL vers votre site Blog

wordToWiki4

Étape 3

Ensuite, appuyer sur le bouton « Publier » dans Word et patienter pendant la publication.

wordToWiki5

Une fois l’opération complété, naviguer vers votre Blog afin de vérifier si le contenu a bien été créé.

wordToWiki6

Accéder à l’élément en mode édition et récupérer la source HTML en utilisant le bouton « Edit source » dans le ruban.

wordToWiki7

Étape 4

Copier la source HTML récupéré précédemment dans votre page Wiki en utilisant le bouton « Edit source » dans le ruban.

Vous devriez maintenant voir le contenu de votre document Word sans les images. Les images sont importées dans une bibliothèque de document « Photos » du site Blog.

wordToWiki9

Il faut donc copier les images importées dans le site Blog vers une bibliothèque dans votre site Wiki. Le plus facile est d’utiliser la fonctionnalité « Ouvrir avec l’explorateur ».

wordToWiki8

Une fois que vos images ont été copiées, il vous faudra ajuster le chemin vers vos images dans la source HTML de votre page Wiki.

Ex : /VotreBlog/Photos -> /VotreWiki/Photos

Une fois cela terminé, vous devriez avoir le même contenu dans votre page Wiki que dans votre document Word.

Résultat :

wordToWiki10

Note

Il arrive que les liste à puces ou les listes numérotés ne fonctionnent pas correctement lorsqu’il y a des espaces entre les éléments et qu’il soit nécessaire de les refaire manuellement dans la page Wiki.

Conclusion

L’intégration entre SharePoint et la suite Office est très évolué comme on a pu le voir dans ce billet. Cette façon de faire peut vous sauver énormément de temps si vous avez des documents volumineux avec un grand nombre d’images. Je considère que c’est une meilleure alternative que d’avoir à installer un plugin ou acheter un logiciel tiers.

 

Advertisements

Envoyer des courriels périodiques pour SharePoint OnPrem avec du PowerShell

Introduction

SharePoint dispose d’un mécanisme d’alerte assez puissant. Celui-ci permet d’envoyer à l’abonné une alerte par courriel basé sur une action qui se produit sur l’élément (il est créé, modifié, etc…). Il comporte cependant des limitations :

  • On ne peut pas recevoir une alerte périodique (ex : tous les trimestres, tous les premiers Lundi du mois, etc…);
  • La modification du gabarit de courriel est complexe;
  • Il n’est pas possible de modifier l’adresse de réponse et le sujet pour une alerte en particulier;
  • Vous devez être que propriétaire du site afin d’envoyer des alertes à d’autres personnes. Sans cela, la seule personne à qui vous pouvez envoyer des alertes à est vous-même.

Alors que faire si on veut contourner ces limitations?

Il y a quelques solutions possibles :

  1. Créer un timer job SharePoint (Exemple)
  2. Créer un flux de travail (Exemple)
  3. Utiliser un logiciel tiers (Exemple)
  4. Créer un script PowerShell s’exécutant dans une tâche planifié (Source)

Je vais mettre l’emphase sur le point 4 dans ce billet car à mon avis c’est la meilleure alternative lorsque les alertes « out-of-the-box » ne répondent pas à votre besoin.

Comparaison des différentes solutions

Alertes SharePoint out-of the-box Timer Job personnalisé

 

Flux de travail personnalisé Outil tiers

Script PowerShell

Flexibilité Mark Mark
Permet de modifier le contenu dynamique envoyé facilement Mark Mark Mark Mark
Permet de modifier le visuel du gabarit sans avoir besoin de programmation Mark Mark Mark
Envoyer des courriels à des utilisateurs externes Mark Mark
Nécessite peu d’efforts de configuration Mark Mark
Permet d’envoyer un courriel basé sur un intervalle de temps Mark Mark Mark
Gratuit Mark Mark Mark Mark

 

Utiliser un script PowerShell

Le script pour SharePoint 2013 sur site (OnPrem) est disponible ici :

telecharger-bouton

Assurez-vous de modifier la section « Constantes » et d’y inscrire les valeurs correspondants à votre environnement.

Capture

Celui-ci va créer une liste EmailTemplate :

EmailTemplate

Cette liste permet à un utilisateur de piloter les différentes valeurs sans avoir besoin d’effectuer de la programmation lorsque vient le temps de changer le contenu, le sujet, etc… Bien évidemment, si vous ajoutez d’autres modèles, vous devrez ajuster votre code afin de les utiliser correctement.

Le script va aussi créer une liste Project :

ProjectListView

Celle-ci est uniquement présente à des fins de démonstration. C’est à partir de cette liste que nous allons envoyer du contenu dynamique par courriel. Vous pouvez donc la supprimer et vous alimenter de votre propre liste si vous le souhaitez.

Voici un exemple de courriel envoyé par le script :

EmailResult

Exécution du script PowerShell dans une tâche planifiée

Démarrer -> Exécuter -> Taskschd.msc

Créer une nouvelle tâche :

ScheduledTaskPowerShell_create

Spécifier un compte ayant les droits d’administrateur de la ferme SharePoint.

Spécifier un déclencheur :

ScheduledTaskPowerShell_declencheur

Ajouter une nouvelle action :

ScheduledTaskPowerShell_action

Programme/Script : Powershell.exe

Ajouter des arguments : -ExecutionPolicy Bypass C:\Sources\SharePointerie.OnPrem.SendTimeBasedEmail.ps1

En prenant soin d’adapter le chemin vers votre script.

Cliquer sur OK pour enregistrer la tâche.

Outils de développeur pour faciliter le travail avec les courriels

Pour ma part, j’utilise l’outil SMTP4DEV afin de travailler en mode local. Il suffit de démarrer l’application et celle-ci se chargera d’intercepter les envois de courriel sur le port défini.

smtp4Dev

Source : https://smtp4dev.codeplex.com/

Conclusion

L’utilisation d’un script PowerShell pour envoyer des courriels périodiques permet un maximum de flexibilité autant au niveau du déploiement qu’au niveau du pilotage. Il n’y a pas de période d’indisponibilité lors du déploiement comparativement au déploiement d’un Timer Job. Je crois donc que c’est la meilleure alternative lorsque les alertes out-of-the-box ne répondent pas à votre besoin.