Colonnes calculées SharePoint

Le principe de fonctionnement des colonnes calculées SharePoint est simple et il se comprend facilement. La valeur d’une colonne calculée utilise les valeurs d’autres colonnes pour effectuer des opérations dessus.

Les opérations mises en oeuvre concernent les formules conditionnelles, les formules de manipulation de date et heure, les formules mathématiques en général et les formules de texte.

Exemple de colonnes calculées SharePoint

Sur votre site SharePoint de démonstration, créez une liste personnalisée nommée Chrono.

Puis créez une nouvelle colonne de type Nombre nommé NumeroSuivant.

Colonnes calculées SharePoint
Nouvelle colonne de type Nombre

Ensuite, créez une colonne calculée appelée NumeroAvenir avec la formule :

= NumeroSuivant +1

Le résultat renvoyé est de type Nombre.

Colonnes calculées SharePoint
Colonne calculée appelée NumeroAvenir avec la formule

Ensuite, ajoutez un  nouvel élément dans la liste:

Ajouter un nouvel élément dans la liste
Ajouter un nouvel élément dans la liste

Vérifiez que la colonne NumeroAvenir vaut bien 1001:

Nouvel élément ajouté dans la liste
Nouvel élément ajouté dans la liste

La seule difficulté est de trouver la liste exhaustive des formules autorisées, notamment pour les sites SharePoint en français. Toutefois, si vous êtes familier avec l’anglais, vous pouvez utiliser sans crainte les formules en anglais car elles seront automatiquement traduites en français.

SharePoint utilise la même syntaxe que celle des fonctions de Microsoft Excel. Cependant, SharePoint ne comprend pas toutes les fonctions d’Excel.

Dans Formules de champ calculé, vous trouverez toutes les formules disponibles. L’aide en ligne relatif aux exemples de formules courantes de SharePoint Server 2007 et Windows SharePoint Services 3.0 fournit les mêmes informations.

Il est aussi important de penser à utiliser le point-virgule (« ; ») comme séparateur dans les syntaxes en français. L’utilisation de la virgule (« , ») comme séparateur dans les formules des champs calculés sur un site de langue française génère une erreur de type « Runtime Error ». L’utilisation d’une colonne inexistante dans votre formule de calcul génère aussi une erreur de type « Runtime Error ».

Commandes PowerShell SharePoint

Les commandes PowerShell SharePoint permettent d’exécuter automatiquement les tâches administratives liées à SharePoint. Un bon exemple d’application est celui de pouvoir créer de nouvelles listes sur les sites grâce à des commandes PowerShell SharePoint.

Un article plus spécifique détaille mieux le fonctionnement de PowerShell dans SharePoint.

Commandes PowerShell SharePoint

Lors de la création d’une nouvelle liste, vous devez d’abord indiquer à SharePoint le modèle à utiliser. Aussi, pour lister tous les modèles, ouvrez SharePoint Management Shell puis tapez les commandes suivantes :

$Web=Get-SPWeb http://ged.nova.ad/sites/primeur/
$Web.ListTemplates | Select Name, Description

Commandes PowerShell SharePoint - Liste de Modèles
Commandes PowerShell SharePoint – Liste de Modèles

Ainsi, vous obtenez le nom et le début de la description de tous les modèles disponibles dans votre collection de sites.

Créer la liste SharePoint

Ensuite, choisissez le modèle que vous vous voulez et créez la liste avec la méthode Add().

$Template=$Web.ListTemplates[« Liste personnalisée »]
$Web.Lists.Add(« Commandes », »Liste des commandes »,$Template)

En cas de succès, SharePoint renvoie l’identifiant interne unique de la liste sur 32 caractères, le GUID.

Commandes PowerShell SharePoint - Liste personnalisée
Commandes PowerShell SharePoint – Liste personnalisée

Ensuite, une fois la liste créée, il est pratiquement indispensable de rajouter des colonnes.

Ajouter une nouvelle colonne

Donc, vous indiquez à SharePoint la liste sur laquelle vous travaillez. Puis vous indiquez le type de la colonne et son nom, toujours avec la méthode Add().

$List=$web.Lists.TryGetList(« Commandes »)
$varFieldTypeTexte=[Microsoft.SharePoint.SPFieldType]::Text
$List.Fields.Add(« FruitID »,$varFieldTypeTexte,$false)

En réalité, la colonne a bien été ajoutée, mais vous ne la voyez pas !

Commandes PowerShell SharePoint - Ajout colonne
Commandes PowerShell SharePoint – Ajout colonne

Pour la voir, vous allez dans les paramètres de la liste, et sous Colonnes, vous retrouvez bien FruitID .

Commandes PowerShell SharePoint - Nouvelle colonne
Commandes PowerShell SharePoint – Nouvelle colonne

Modifier l’affichage de la liste

L’ajout de colonnes ne modifie (heureusement !) pas par défaut les affichages. En effet, c’est à vous de le faire. Il vous reste donc à modifier l’affichage par défaut

$View=$web.GetViewFromUrl(« http://ged.nova.ad/sites/primeur/Lists/Commandes/AllItems.aspx »)
$Field=$List.Fields[« FruitID »]
$View.ViewFields.Add($Field)
$View.Update()

Commandes PowerShell SharePoint - Affichage modifié
Commandes PowerShell SharePoint – Affichage modifié

Voilà pour les principes.

Vous trouverez ci-dessous un script PowerShell complet à télécharger.

Ce script créé une liste intitulée « Commandes » avec 4 colonnes (« FruitID », « FruitNom », « DateAchat », « Quantite »).

L’affichage par défaut (« AllItems.aspx ») de la liste est modifié pour faire apparaître les 4 colonnes.

SPListeCreer_V1_0_0.zip

Enfin, si vous désirez un accompagnement pour vous aider à concevoir le contenu de vos sites Sharepoint, ou pour installer, configurer, auditer SharePoint, allez sur la page de contact.

PowerShell SharePoint

Les premières lignes des scripts PowerShell SharePoint débutent par une ligne ou deux qui ressemblent plus ou moins à :

Add-PSSnapin « Microsoft.SharePoint.PowerShell »

ou bien à:

[Reflection.Assembly]::LoadWithPartialName(« Microsoft.SharePoint »)

Notamment, ces deux instructions chargent les fonctions de l’assembly du PowerShell SharePoint.

Si vous êtes un développeur .Net, vous savez déjà ce qu’est un assembly. Pour un administrateur récemment converti au PowerShell SharePoint, c’est certainement moins évident.

L’objet de cet article est de présenter très succinctement le rôle et l’intérêt d’un assembly pour un public de débutant en matière de développement Net. En complément, vous pouvez lire l’article moins technique sur les commandes PowerShell SharePoint.

Principes généraux de l’assembly

Physiquement, un assembly est un fichier .DLL ou .EXE. L’idée derrière l’assembly est de mettre à disposition un code partageable entre différentes applications. C’est le même principe que pour les anciens fichiers DLL des systèmes d’exploitations Windows qui n’utilisent pas le Framework .Net.

Toutefois, la comparaison s’arrête là car les différences sont nombreuses.

En effet, les assemblies présentent de nombreux avantages supplémentaires notamment en matière de sécurité, fiabilité et robustesse. Des fonctionnalités supplémentaires, comme par exemple le déploiement côte-à-côte (vu plus bas), permettent aussi de pallier aux faiblesses des anciennes DLL.

Dans la plupart des cas, l’assembly est physiquement dans le Global Assembly Cache (GAC). Le rôle du GAC est de partager les assemblies entre les applications. Une assembly qui n’est pas présente dans le GAC peut fonctionner parfaitement pour une application donnée.

Si le développeur veut partager son travail, son assembly devra être dans le GAC afin de communiquer avec des applications d’autres domaines, d’autres processus ou d’autres ordinateurs.

Bien évidemment, l’assembly peut être appelé par un script PowerShell SharePoint, un programme écrit dans du code géré (C# ou VB Net), etc.

Common Language Runtime (CLR)

Cette communication est faite sous le contrôle du Common Language Runtime NET (CLR).

Nativement, l’explorateur Windows ne permet pas d’afficher les dossiers du GAC comme d’habitude. Pour avoir un affichage classique du contenu du GAC, ouvrez une invite de commande en tant qu’administrateur et tapez:

regsvr32 /u C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\shfusion.dll

Si shfusion.dll se trouve dans le dossier v2.0.50727 qui correspond à la version du socle .Net : c’est probablement le cas.

En particulier, une fois la commande exécutée avec succès, vous pouvez explorer les dossiers du GAC avec l’explorateur Windows classique. Les dossiers principaux du GAC sont:

  • C:Windows\assembly
  • C:Windows\Microsoft.NET

Puis, pour revenir ensuite à un affichage natif, tapez dans une invite de commande:

regsvr32 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\shfusion.dll

Pour connaître la liste précise des assemblies chargées au moment de l’exécution d’une commande PowerShell, ouvrez une invite de commande PowerShell en tant qu’Administrateur puis tapez la commande:

[appdomain]::currentdomain.getassemblies()

Microsoft Intermediate Language (MSIL)

Un fichier d’assembly englobe des ressources. En particulier, le manifeste et le code Microsoft Intermediate Language (MSIL).

Notamment, le manifeste est un fichier qui décrit l’assembly à travers des métadonnées comme par exemple le nom de l’assembly, sa version, sa culture, les autorisations de sécurité sous lesquelles l’assembly doit s’exécuter ou la liste des assemblies dépendants.

En particulier, la culture concerne les usages en termes de formatage de dates, de monnaies, etc (http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx).

Par ailleurs, un programme peut utiliser une version d’un assembly tandis qu’un autre programme peut s’appuyer sur une version différente du même assembly sur le même ordinateur. C’est le déploiement côte à côte.

Le code MSIL n’est pas directement exécutable par un système d’exploitation comme Windows. Il doit être compilé en code natif pour être compris par le système d’exploitation.

Cette compilation peut être faite au fur et à mesure de l’appel des méthodes grâce à un compilateur Jusi-In-Time (JIT) fourni par le Common Language Runtime NET (CLR).

Le code natif peut aussi être généré par anticipation en une fois afin d’améliorer les performances de l’application.

Code source C#

Voici un exemple d’un code source en C#. Bien évidemment, vous pouvez aussi prendre un script en PowerShell SharePoint.

PowerShell SharePoint
Hello World C#

Le résultat en MSIL (extrait):

PowerShell SharePoint
Hello World MSIL

Aller plus loin avec le Net et le PowerShell SharePoint

Il est difficile de faire un tri dans toutes les ressources proposées sur le socle Net tant elles sont nombreuses et bien faites.

Toutefois, vous trouverez, dans les pointeurs ci-dessous, des informations pour démarrer en douceur un développement Net mais sur des bases solides:

Pour mettre en pratique, vous pouvez aussi suivre notre tutoriel qui explique, pas à pas, comment créer un WebPart Hello World avec Visual Studio.

Vous pouvez aussi consulter l’article suivant qui est spécifique au PowerShell SharePoint Découvrir comment utiliser PowerShell avec SharePoint.

Lien vers un fichier du réseau

Dans l’article Ajout de liens dans les bibliothèques de documents, il est expliqué l’intérêt du type de contenu « Lien vers un document ». Ce nouvel article explique comment ajouter cette fois-ci un lien vers un fichier du réseau.

L’objectif est de pointer directement vers un fichier stocké sur un partage réseau avec un schéma d’URI.

Par exemple:

file://formations/simul/calcul-2005.xlsx

Créer un fichier aspx

Une solution de contournement est proposée sur le blog de Mike Smith. Elle consiste à créer un fichier ASPX qui contient un bout de JavaScript pour pointer sur le fichier concerné. Le navigateur web utilisé est Internet Explorer.

Tout d’abord, ouvrez le Bloc-Notes (notepad.exe) et tapez simplement les instructions suivantes à l’intérieur d’un nouveau fichier:

Retourner à la bibliothèque (cliquez sur le lien pour obtenir le code JavaScript)

Ensuite, dans document.location, indiquez le bon chemin vers votre fichier, à  la place de  //formations/simul/calcul-2005.xlsx.

Puis, sauvegardez votre fichier en lui donnant un nom avec une extension ASPX. Par exemple, calcul-2005.aspx.

Ensuite, vous devez ensuite charger le fichier ASPX dans une bibliothèque de SharePoint en suivant la procédure suivante.

Créer une bibliothèque

Créez une bibliothèque, ou ouvrez une bibliothèque quelconque, puis ajoutez le fichier calcul-2005.aspx à cette bibliothèque (« Demo » par exemple).

Ajout fichier ASPX
Ajout fichier ASPX

Cliquez sur le nom du fichier (« calcul-2005 »). Vous verrez que l’affichage de la page change et une fenêtre s’affiche en proposant d’ouvrir ou d’enregistrer le fichier.

Ouvrir ou enregistrer le fichier
Ouvrir ou enregistrer le fichier

Si vous ne voyez que le lien Retourner à la bibliothèque et que la fenêtre ne s’ouvre pas, vérifiez que vous utilisez bien Internet Explorer (et non Firefox par exemple).

Cliquez sur Ouvrir: Le fichier s’ouvre bien.

excel-ouvert
Excel ouvert

Si vous cliquez sur le lien Retourner à la bibliothèque, vous revenez à l’affichage de la liste des documents de la bibliothèque.

Référez-vous à l’article Ajout de liens dans les bibliothèques de documents, pour paramétrer l’utilisation du type de contenu « Lien vers un document » dans une autre bibliothèque (« Docs » par exemple).

Lien vers un fichier du réseau

Une fois ce type de contenu ajouté à votre bibliothèque « Docs », cliquez sur Documents puis Lien vers un document: la fenêtre Nouveau lien d’accès à un document apparaît.

Dans cette fenêtre, sous Nom du document, saisissez un nom d’affichage (« Calcul 2005 ») et l’URL du fichier calcul-2005.aspx (« http://formations/demo/calcul-2005.aspx ») puis cliquez sur OK.

Nouveau lien d’accès a un document du réseau
Nouveau lien d’accès a un document du réseau

Si vous avez plus d’un type de documents rattaché à votre bibliothèque (ce qui est probablement le cas), une fenêtre supplémentaire s’affiche: cliquez sur le bouton OK.

Lien vers un fichier du réseau
Lien vers un fichier du réseau

Enfin, sachez que dans SharePoint, vous pouvez aussi utiliser l’utiliser l’explorateur Windows pour ouvrir et manipuler les fichiers SharePoint.