Hi,

I know this is not something special I am posting in this one because this is something which is easily available on internet if you try to use our Google / bing correctly :)

I was working (rather having a look at) Audience Targeting Feature in SharePoint 2007 and came to know that somehow we can add only six rules while creating a audience by using user interface (which you can found in SSP) here is link how you can do that

but after reading somewhere, I figured out the way to add more than six audience rules .. yes you are right .. from code

this might be because they thought , generally one cant make such a complex audience having more than six audience rules and I also thinks so :)

but still If one want to have a look at API and try to add more than six audience rules then this is how I done it (nothing special , just added a rule using API..you can concatenate such chain of rules using AND , OR)

try

{

using (SPSite site = new SPSite(http://yoursite))

{

ServerContext siteContext = ServerContext.GetContext(site);

AudienceManager aManager = new AudienceManager(siteContext);

AudienceCollection audiences = aManager.Audiences;

Audience INFORMANAGEMENTUSERS = null;

if (audiences.AudienceExist("Information Management Users"))

{

INFORMANAGEMENTUSERS = audiences["Information Management Users"];

Console.WriteLine(string.Format("Audience Found with Name {0}", INFORMANAGEMENTUSERS.AudienceName));

}

else

{

INFORMANAGEMENTUSERS = audiences.Create("Information Management Users", "Test Audeinces");

Console.WriteLine("Audience Added");

}

ArrayList aRules = INFORMANAGEMENTUSERS.AudienceRules;

if (aRules == null)

{

aRules = new ArrayList();

}

else

{

AudienceRuleComponent rule1 = new AudienceRuleComponent(null, "AND", null); //Just Concatenating Previous Rule

aRules.Add(rule1);

}

AudienceRuleComponent rule2 = new AudienceRuleComponent(PropertyConstants.Department, "=", "Information Management");

aRules.Add(rule2);

INFORMANAGEMENTUSERS.AudienceRules = aRules;

INFORMANAGEMENTUSERS.Commit();

Console.WriteLine("Audience Rule Added");

}

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

}

Console.ReadLine();