Share via


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