Procédure : créer des propriétés à valeurs multiples
Dernière modification : lundi 22 mars 2010
S’applique à : SharePoint Server 2010
Les propriétés prennent maintenant en charge les valeurs multiples. De nombreux scénarios peuvent bénéficier utilement de cette amélioration, par exemple lors de la définition de propriétés qui contiennent habituellement plusieurs valeurs, comme les centres d'intérêt d'un utilisateur et ses domaines de compétence.
Le paramètre IsMultiValued du modèle objet indique si la propriété est à valeurs multiples ou non. Toutefois, ce paramètre ne peut pas être modifié une fois qu'il est défini, exactement comme le type de données de la propriété.
Le modèle objet renvoie les valeurs multiples d'une propriété sous la forme d'un objet ArrayList. L'ordre des valeurs de la collection suit l'ordre de mise à jour. Vous trouverez un exemple dans Procédure : attribuer plusieurs valeurs à une propriété à valeurs multiples.
Les propriétés à valeurs multiples peuvent en outre être indexées. Actuellement, la Recherche de contenu d’entreprise SharePoint dans SharePoint Server 2010 prend en charge les clauses Contains et Equals pour ces propriétés.
Notez que SharePoint Server 2010 vous permet de mapper une propriété à valeurs multiples au niveau de la source de connexion à une propriété de portail à valeur unique. Lorsque vous importez des propriétés, cette opération tente d'obtenir la première valeur de la source.
L'exemple de code suivant montre comment créer des propriétés à valeurs multiples. Si vous utilisez cet exemple, remplacez servername par une valeur réelle. Ajoutez aussi des références aux éléments suivants dans votre projet Microsoft Visual Studio :
Microsoft.Office.Server
Microsoft.Office.Server.UserProfiles
Microsoft.SharePoint
System.Web
Exemple
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server;
using Microsoft.Office.Server.Administration;
using Microsoft.Office.Server.UserProfiles;
using Microsoft.SharePoint;
using System.Web;
namespace UserProfilesOMApp
{
class Program
{
static void Main(string[] args)
{
//Code example adds a new property called Published Papers.
using (SPSite site = new SPSite("https://servername"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
UserProfileConfigManager upcm = new UserProfileConfigManager(context);
try
{
ProfilePropertyManager ppm = upcm.ProfilePropertyManager;
// create core property
CorePropertyManager cpm = ppm.GetCoreProperties();
CoreProperty cp = cpm.Create(false);
cp.Name = "Published Papers";
cp.DisplayName = "Published Papers";
cp.Type = PropertyDataType.StringMultiValue;
cp.Length = 100;
cp.IsMultivalued = true;
cpm.Add(cp);
// create profile type property
ProfileTypePropertyManager ptpm = ppm.GetProfileTypeProperties(ProfileType.User);
ProfileTypeProperty ptp = ptpm.Create(cp);
ptp.IsVisibleOnEditor = true;
ptp.IsVisibleOnViewer = true;
ptpm.Add(ptp);
// create profile subtype property
ProfileSubtypeManager psm = ProfileSubtypeManager.Get(context);
ProfileSubtype ps = psm.GetProfileSubtype(ProfileSubtypeManager.GetDefaultProfileName(ProfileType.User));
ProfileSubtypePropertyManager pspm = ps.Properties;
ProfileSubtypeProperty psp = pspm.Create(ptp);
psp.IsUserEditable = true;
psp.PrivacyPolicy = PrivacyPolicy.OptIn;
psp.DefaultPrivacy = Privacy.Organization;
pspm.Add(psp);
}
catch (DuplicateEntryException e)
{
Console.WriteLine(e.Message);
Console.Read();
}
catch (System.Exception e2)
{
Console.WriteLine(e2.Message);
Console.Read();
}
}
}
}
}
Voir aussi
Tâches
Procédure : attribuer plusieurs valeurs à une propriété à valeurs multiples
Procédure : modifier des propriétés de profils
Procédure : créer des propriétés taxonomiques à valeurs multiples
Procédure : définir des stratégies de confidentialité pour les propriétés de profil utilisateur