Archives de catégorie : SharePoint Online

Analyse d’outils pour supporter les communautés de pratiques – SharePoint Online

Je profite de l’occasion pour vous partager un résumé d’un de mes travaux notés du cours INF6400 (Gestion des connaissances et informatique) à la TELUQ. Le travail visait à analyser quatre outils informatiques qui pourraient supporter les communautés de pratique au sein d’une organisation.

Les quatre outils que j’ai choisis sont les suivants :

Dans ce billet l’outil SharePoint Online sera analysé :

SharePoint Online est définitivement un outil complet pour supporter les communautés de pratiques.

L’outil est particulièrement utile pour le principe « 1.1 – Visibilité de la communauté au sein de l’organisation » du modèle KWC en offrant le modèle de site portail communautaire : « Un portail communautaire est un annuaire qui répertorie tous les sites communautaires disponibles sur l’intranet de votre société. Sur ce portail communautaire, les utilisateurs peuvent effectuer des recherches, suivre, visiter, découvrir et participer à des communautés d’intérêts.». À l’aide de ce portail, tous les employés sont en mesure de connaitre l’existence des communautés dans l’organisation.

L’outil est utile pour le principe « 1.2 – Visibilité de la communauté pour les membres » du modèle KWC en offrant le modèle de site communautaire : « Une communauté en ligne est un forum virtuel où des idées sont présentées et partagées. Il favorise la communication ouverte parmi les membres qui partagent leurs compétences et en apprennent des autres. ». Ce modèle de site inclut également une page « Membres » offrant la fonctionnalité de répertoire des membres avec un indicateur de présence grâce à l’intégration de Skype Entreprise et Exchange.

SharePoint Online est indispensable pour le segment fonctionnel 1 – Se connaitre, échanger des idées. En particulier pour le principe « 1.3 – Visibilité de chaque membre de la communauté » du modèle KWC en offrant à chaque membre un profil personnel : « Créez un profil personnel enrichi pour faire entendre votre voix au sein de votre organisation. Partagez les projets auxquels vous avez participé, vos compétences, les aspects que vous souhaitez développer et les informations que d’autres utilisateurs peuvent vous demander. ». L’interface propose également de la recherche et de la découverte intelligente grâce à l’intégration de Delve.

SharePoint Online est indispensable pour le segment fonctionnel 2 – Travailler ensemble, échanger de la connaissance ». En particulier pour les principes « 2.2 – Échanger des idées et des informations » et « 2.3 – Mettre en œuvre le projet » du modèle KWC en offrant plusieurs types d’applications : « Vous pouvez ajouter des applications à votre site pour le personnaliser avec des fonctionnalités spécifiques ou pour afficher des informations. ». Les modèles d’applications suivants sont indispensables pour supporter les communautés de pratiques : « Sondage, Suivi des problèmes, Annonces, Contacts, Calendrier, Forum de discussion, Tâches, Bibliothèque de documents ». Ces applications sont également configurables afin d’activer au besoin, le contrôle de version, le flux RSS, l’envoi de courriel, etc…

D’après la matrice des états de la connaissance, SharePoint Online permet la création de connaissances tacites vers l’explicites lorsqu’un individu dépose un document ou encore répond à une question dans un forum. Lorsqu’un individu effectue une recherche et qu’il trouve la réponse à la question, on parle alors ici de création de connaissances explicites à tacites.

Suite à l’exploration des différentes fonctionnalités de SharePoint Online et des différentes catégories d’outils technologiques proposées par Etienne Wenger, il semble que l’outil pourrait être considéré dans les catégories suivantes :

  • Knowledge Worker’s Desktop;
  • Project Spaces;
  • Online Communities;
  • Discussion Groups;
  • Synchronous Interactions;
  • Access to expertise;
  • Knowledge base;

En effet, il couvre la majorité des catégories grâce à l’intégration d’autres applications mais il reste tout de même une catégorie pour laquelle il ne fait pas bonne augure et il s’agit du E-Learning Spaces (LMS) : «  […] depending on business needs and goals that are little more complex, it is safe to say that SharePoint will need customization and/or a separate LMS in order to function as a full, all-inclusive training experience. »

Ainsi, son spider-web pourrait être illustré ainsi :

spiderWebSPOnline.png

 

Références

  1. Microsoft, SharePoint Online, consulté le 21 janvier 2018.
    URL : http://bit.ly/2mX1Lzm
  2. Microsoft, Créer un portail communautaire, consulté le 11 février 2018.
    URL : http://bit.ly/2BngE74
  3. Microsoft, Créer une communauté, consulté le 11 février 2018.
    URL : http://bit.ly/2soIpsX
  4. Microsoft, Recherche et découverte intelligentes, consulté le 11 février 2018.
    URL : http://bit.ly/2Cg0U2I
  5. Microsoft, Créer une liste dans SharePoint, consulté le 11 février 2018.
    URL : http://bit.ly/2nYG0Qd
  6. Amber Johnson, Can SharePoint As An LMS Really Work?, consulté le 11 février 2018.
    URL : http://bit.ly/2z4nx8Y

 

 

 

 

 

 

Advertisements

Qu’en est-il aujourd’hui du SharePoint Framework (SPFx) On-Premise ?

Introduction

En considérant ces différentes livraison en ordre chronologique :

  • SharePoint 2016 RC0 – Mai 2016
  • SharePoint 2016 Feature Pack 1 – Novembre 2016
  • SharePoint Framework GA (composants WebPart côté client seulement) – Février 2017
  • SharePoint 2016 Feature Pack 2 (Incluant SPFx) – Septembre 2017
  • SharePoint Framework Extension RC0 (SharePoint Online seulement) – Septembre 2017

On peut constater qu’il y a belle et bien un gros « gap » entre ce qui est mis en ligne sur SharePoint On-Premise versus SharePoint Online.

Cycle de mise à jour SharePoint Online vs SharePoint OnPremise

L’extrait suivant explique bien les différences  :

Étant donné que SharePoint Online et SharePoint 2016 ont différents cycles de mise en circulation pour les nouvelles fonctionnalités, ils ont aussi des fonctions différentes lorsqu’il s’agit de SharePoint Framework. SharePoint Online utilise toujours la dernière version de SharePoint Framework, mais SharePoint 2016 prend uniquement en charge la version correspondant aux dépendances côté serveur des packages déployés.
SharePoint 2016 Feature Pack 2 prend en charge les composants WebPart SharePoint Framework côté client hébergés dans des pages SharePoint classiques créées à l’aide de SharePoint Framework v1.1.0. Cela signifie que lorsque vous ciblez la plateforme SharePoint 2016, vous devez utiliser SharePoint Framework v1.1.0 en raison des dépendances de la version côté serveur.

Source

Le Feature Pack 2 à la rescousse de SharePoint 2016?

Partiellement. Oui il est possible de développer des composants WebPart client avec cette version mais il y a quand même plusieurs améliorations qui ont été effectuées entre la version 1.1.0 et la version 1.4.0 du SharePoint Framework.

De plus, le SharePoint Framework Extension qui permet entre autre d’utiliser des placeholder pour par exemple ajouter un pied de page (Footer) sans modifier la page maître n’est pas disponible et il ne le sera probablement jamais pour SharePoint 2016.

SPFx Extension disponible seulement sur SharePoint 2019?

Je n’ai pas réussi à obtenir une confirmation officiel de Microsoft mais on tire cette conclusion suite à des échanges avec d’autres MVP influents en nous me basant sur ceci :

Lors du « Jeff teper’s takeover about SharePoint » sur Twitter une question concernant la disponibilité de l’expérience moderne dans un Feature Pack future a été posé :

TwitterModernExperience

 

Puisque le SPFx Extension a besoin de l’expérience moderne pour fonctionner et que celui-ci est un trop gros changement pour un feature pack, on peut conclure que le SPFx Extension ne sera pas disponible On-Premise avant SharePoint 2019.

Conclusion

C’est vraiment dommage car le SPFx Extension permet d’effectuer plusieurs personnalisations sur lesquelles on peut compter en toute sécurité dans un avenir prévisible mais celui-ci n’est malheureusement pas disponible. Donc, dans l’attente de celui-ci, on devra continuer de faire des Add-Ins pour ajouter un pied de page ou encore des CEWP…

Références :

SPFx Sharepoint 2016 support

SPFx known issues and common questions

Erreurs fréquentes avec le mode feuille de données

On m’a posé plusieurs questions cette semaine en lien avec le mode feuille de données alors j’ai cru bon de vous partager les diverses solutions.

Message d’erreur :

« Impossible de coller les informations car la zone coupé ou copiée et la zone de collage ne sont pas de la même taille. Cliquez sur une seule cellule et réessayez de procéder au collage. »

Voici les étapes pour reproduire le problème :

1. En mode Feuille de données, sélectionnez les lignes à copier

erreurCopierModeFeuilleDeDonnees1

2. Sélectionnez la dernière ligne

erreurCopierModeFeuilleDeDonnees2

3. Effectuez un « Coller »

erreurCopierModeFeuilleDeDonnees

Solution 

La solution se retrouve pourtant dans le deuxième bloc du message d’erreur mais une image vaut parfois mille mots.

Il suffit donc de positionnez le curseur dans la première cellule et non pas la ligne au complet :

erreurCopierModeFeuilleDeDonnees3

 

Message d’erreur :

« Les cellules sélectionnées sont en lecture seule. »

Voici les étapes pour reproduire le problème :

Créer une colonne de type « Plusieurs lignes de texte »

erreurCopierModeFeuilleDeDonnees6

En mode Feuille de données, lorsque vous tentez de saisir une valeur dans un champ de types « Plusieurs lignes de texte »

erreurCopierModeFeuilleDeDonnees5

Vous obtenez le message :

erreurCopierModeFeuilleDeDonnees4

Solution 

La solution consiste à retirer le champ « Plusieurs lignes de textes » de l’affichage ou encore de transformer celui-ci en un champ de type, « Texte brut ».

erreurCopierModeFeuilleDeDonnees7

Par la suite dans le mode feuille de données vous serez en mesure de modifier les valeurs :

erreurCopierModeFeuilleDeDonnees8

 

Techniques pour récupérer les éléments HTML d’une WebPart en JavaScript (Partie 2)

Dans mon billet précédent, j’ai abordé différentes techniques pour récupérer les éléments HTML d’une WebPart en JavaScript.

Cependant, que faire si vous ne voulez pas afficher le Titre d’une WebPart de recherche de contenu et que des changements dans l’ordre des WebParts est possible (changement de ID)?

J’ai donc trouvé deux nouvelles techniques :

Technique 3 – Ajouter une balise dans le modèle d’affichage et naviguer dans ses éléments parents

Cette technique consiste à utiliser le ajouter une balise (un div avec un ID « wp » dans ce cas) puis de naviguer dans ses éléments parents pour récupérer le HTML d’une WebPart précise.

Voici le code pour y arriver :

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(initializeScript, "sp.js");</pre>


function initializeScript()
{
//Find the DIV with the webpartid then the closest parent div starting with MSOZoneCell_WebPartWPQ
$wp= $("#wp").parents("div[id*='MSOZoneCell_WebPartWPQ']"); //MSOZoneCell_WebPartWPQ2
$wp.css('max-width', '660px');
$wp.css('float', 'left');
}
</script>

Résultat

Dans cet exemple de WebPart de recherche de contenu, un style est appliqué sur le DIV MSOZoneCell_WebPartWPQ2 en utilisant une balise :

techniqueHTML3

Points à faire attention avec cette technique

  • Assurez-vous de mettre un ID significatif qui est unique dans votre page.

Technique 4 – Utiliser le GUID de la WebPart

Cette technique consiste à utiliser le webpartid puis de naviguer dans ses éléments parents pour récupérer le HTML d’une WebPart précise.

Voici le code pour y arriver :

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(initializeScript, "sp.js");

function initializeScript()
{
//Find the DIV with the webpartid then the closest parent div starting with MSOZoneCell_WebPartWPQ
$wp= $("DIV[webpartid='13c8d6db-fa88-4e77-985c-ef4fcc858865']").parents("div[id*='MSOZoneCell_WebPartWPQ']"); //MSOZoneCell_WebPartWPQ2
$wp.css('max-width', '660px');
$wp.css('float', 'left');
}
</script>

Résultat

Dans cet exemple de WebPart de recherche de contenu, un style est appliqué sur le DIV MSOZoneCell_WebPartWPQ2 en utilisant le webpartid:

techniqueHTML4

Points à faire attention avec cette technique

  • Assurez-vous d’ajuster votre code si vous supprimez puis ajoutez à nouveau la WebPart car le webpartid changera.

Conclusion

Les deux nouvelles techniques présentées dans cet article peuvent vous permettre facilement d’appliquer des personnalisations sur un élément HTML d’une WebPart.

Ces techniques peuvent répondre à un besoin simple mais cela ne constituent pas une solution aussi robuste et à l’épreuve du futur que l’utilisation du SharePoint Framework.

Il faut comprendre que l’utilisation de code client qui repose sur des éléments du DOM spécifiques ne sont pas recommandé car ceci n’est pas pris en charge dans l’interface utilisateur moderne. De plus, le DOM dans SharePoint Online est sujet à des changements fréquents…

Comment copier des affichages SharePoint d’une liste/bibliothèque vers une autre ?

Introduction

Si vous travaillez avec SharePoint depuis un bon moment, vous vous êtes surement retrouvé dans une situation dont vous aviez créé une liste/bibliothèque avec bon nombre d’affichages et qu’à un bon moment, vous aviez besoin de copier ces affichages vers une autre liste ayant les mêmes colonnes. Malheureusement, il n’y a pas de mécanisme permettant de tout sélectionner vos affichages et de les copier vers une autre liste. Dans ce billet je vous présenterai quelque façons pour y arriver en utilisant en premier un outil tiers et en second un script PowerShell.

Les outils tiers

Bien évidemment, si les outils tiers peuvent copier des listes et des bibliothèques, ils peuvent également être utilisé pour copier des affichages dans des listes existantes.

Dans l’exemple ci-dessous j’utilise ShareGate pour copier des affichages :

Affichage1

Affichage2

Puisque c’est seulement une case à cocher, c’est tout ou rien alors ce n’est pas possible de sélectionner les affichages que l’on veut copier ou pas. Heureusement, ça ne nécessite pas un doctorat en génie nucléaire pour arriver à copier des affichages avec un outils tiers.

Le PowerShell à la rescousse

Si vous effectuer une recherche sur google avec les termes « Copy sharepoint view », les premiers résultats que vous allez trouver utilise majoritairement un script PowerShell afin d’effectuer la tâche. En effet, puisqu’il y a peu de chance qu’on effectue cela à tous les jours, il est préférable de faire un script PowerShell qu’une solution utilisant le modèle objet serveur (SSOM) ou client (CSOM).

Ce script permet d’effectuer la copie des affichages d’une liste source vers une liste de destination.

On peut l’appeler facilement ainsi :

.\Copy-SPListViews.ps1 -SourceWebUrl « https://portal.contoso.com/sites/teamsite/ &raquo; -DestinationWebUrl « https://portal.contoso.com/hr &raquo; -SourceListTitle « Team Documents » -DestinationListTitle « HR Documents »

Celui-ci peut vous offrir d’avantage de flexibilité si de sélectionner les affichages que l’on veut copier ou pas

 

Conclusion

La copie d’affichage est possible dans la mesure ou les deux listes/bibliothèques ont les mêmes colonnes et dans ce billet je vous ai présenté deux méthodes ayant chacun leur niveau de convivialité et de flexibilité.

Conférencier @ SharePoint Saturday Montréal 2017

Introduction

Le 13 mai 2017 aura lieu au Collège Maisoneuve, 2701 Rue Nicolet, Montréal l’événement SharePoint Saturday Montréal. J’aurai la chance d’y participer à nouveau en tant que conférencier.

Vous travaillez de près ou de loin avec SharePoint, Office 365 ou Azure? Joignez-vous à un groupe d’architectes, de développeurs, d’intégrateurs, de gestionnaires de communautés et des gens d’affaires gravitant autour de SharePoint lors de de la tenue de la 5e édition du SharePoint Saturday Montréal.
Plusieurs conférenciers de qualité sont annoncés avec des présentations de DEV/ITPRO/User/Business.
Voici le lien pour vous inscrire :
inscrire

Conclusion

C’est un super événement GRATUIT, à ne pas manquer avec plein de goodies, du smoked meat et d’excellents conférenciers.

3 choses que chaque programmeur devrait savoir

Introduction

Dans mes tâches de tous les jours, je dois modifier régulièrement du code et bien évidemment il y a des cas où on se dit vraiment « WTF? ».  Dans ce billet, je vais vous présenter quelque points à considérer afin d’améliorer la qualité de votre code et ainsi réduire le nombre de WTFs/minute lorsque vos collègues vous relirons.

Un commentaire sur les commentaires!

Assurez-vous que vos commentaires clarifient votre code et qu’il ne le rende pas plus obscur. Ajouté uniquement des commentaires pertinents expliquant ce que le code est censé accomplir. Vos commentaires d’en-tête devraient donner à n’importe quel programmeur assez d’information pour utiliser votre code sans avoir à le lire, tandis que vos commentaires au niveau des lignes devraient aider le développeur suivant à le corriger ou à le modifier. Comme avec toute autre forme d’écriture, il y a une habileté à écrire de bons commentaires et une grande partie de la compétence consiste à savoir quand ne pas les écrire.

À éviter :

'Instancie un nouveau dataset
Dim ds As New System.Data.DataSet

'Retourne la liste
Return listXYZ

Ne pas ignorer les erreurs!

Ignorer une erreur n’est pas une stratégie gagnante pour avoir du code solide. En fait, c’est tout simplement de la paresse. Peu importe la probabilité que vous pensez qu’une erreur se retrouve dans votre code, vous devriez toujours la vérifier et toujours la retourner. Vous ne gagnez pas de temps si vous ne le faites pas. Vous conservez des problèmes potentiels pour l’avenir.

À éviter :

try {
    // ...do something...
}
catch (...) {} // ignore errors

N’ayez pas peur de briser des choses!

Tout le monde a sans aucun doute travaillé sur un projet où le code était de qualité douteuse. Le système est mal architecturé et changer une chose vient toujours en briser une autre. Chaque fois que quelqu’un doit ajouter un module, l’objectif est de changer le moins de chose possible et de se croiser les doigts que ça ne plante pas. Bref, c’est l’équivalent de jouer une partie de Jenga.

N’ayez pas peur du code. Investir le temps de refactoriser le code va se payer plusieurs fois au cours du cycle de vie de l’application. Un avantage supplémentaire est que l’expérience de votre équipe face au système vous rend un peu plus experts en sachant comment il devrait fonctionner. En plus, travailler sur un système que vous détestez n’est pas la façon dont tout le monde devrait avoir à passer leur temps.