Partager via


Procédure : ajouter des règles simples à une audience à l'aide des opérateurs AND et OR

L'interface utilisateur fournit uniquement deux options de définition de règles lorsque vous créez des audiences : inclure les utilisateurs qui répondent à toutes les règles ou inclure les utilisateurs qui répondent à une des règles. Par ailleurs, lorsque vous utilisez l'interface utilisateur, vous êtes limité à six règles. Bien que cela soit suffisant pour la plupart des situations, il peut arriver que vous ayez besoin de plus de six règles.

Dans ce cas, vous pouvez utiliser le modèle objet Audience. Ce dernier vous permet de créer plus de six règles pour une audience. L'exemple de code suivant ajoute des règles simples pour une audience appelée « John Connection ». Cet exemple utilise l'opérateur AND pour combiner plusieurs règles. Si vous souhaitez que les membres ne répondent qu'à une des règles, vous pouvez utiliser l'opérateur OR.

Remplacez servername et autres chaînes par des valeurs réelles avant d'exécuter l'exemple de code. Ajoutez également les références suivantes dans votre projet Microsoft Visual Studio :

  • Microsoft.Office.Server

  • Microsoft.SharePoint

  • System.Web

Exemple

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint.Administration;
using Microsoft.Office.Server.Audience;
using Microsoft.SharePoint;
using Microsoft.Office.Server;
using System.Web;
using System.Collections;

namespace AudienceConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                using (SPSite site = new SPSite("https://servername"))
                {
                    ServerContext context = ServerContext.GetContext(site);
                    AudienceManager AudMgr = new AudienceManager(context);

                    AudienceCollection ac = AudMgr.Audiences;
                    Audience a = null;
                    bool ruleListNotEmpty = false;

                    try
                    {
                        a = AudMgr.Audiences["John Connection"];
                    }
                    catch (AudienceArgumentException ex)
                    {
                        //your exception handling code here
                    }

                    ArrayList aRules = a.AudienceRules;
                    if (aRules == null)
                    {
                        aRules = new ArrayList();
                    }
                    else
                    {
                        ruleListNotEmpty = true;
                    }


                    try
                    {
                        if (ruleListNotEmpty)
                        {
                            aRules.Add(new AudienceRuleComponent(null, "AND", null));
                        }


                        AudienceRuleComponent r1 = new AudienceRuleComponent("FirstName", "Contains", "John");
                        aRules.Add(r1);

                        AudienceRuleComponent r2 = new AudienceRuleComponent(null, "AND", null);
                        aRules.Add(r2);

                        AudienceRuleComponent r3 = new AudienceRuleComponent("WorkEmail", "Contains", "example.com");
                        aRules.Add(r3);
                        a.AudienceRules = aRules;
                        a.Commit();
                    }
                    catch (AudienceException e)
                    {
                        //Your exception handling code here
                    }
                }

            }
            catch (Exception exception)
            {
                Console.WriteLine(exception.ToString());
                Console.Read();
            }

        }
    }


}

Voir aussi

Autres ressources

Ciblage du contenu au moyen des audiences