Set ActivityParty for DynamicEntity


To set activityparty property in case of DynamicEntity we need to make use DynamicEntityArrayProperty.

Below is the sample code for creating an appointment programmatically using DynamicEntity and setting requiredattendees which is an ActivityParty property.

CrmSdk.CrmAuthenticationToken myToken = new CrmAuthenticationToken();

        myToken.OrganizationName = "orgname";

        myToken.AuthenticationType = 0;

        CrmSdk.CrmService myService = new CrmService();

        myService.CrmAuthenticationTokenValue = myToken;

        myService.Credentials = System.Net.CredentialCache.DefaultCredentials;

        DynamicEntity myAppointment = new DynamicEntity();

        myAppointment.Name = EntityName.appointment.ToString();

        StringProperty subject = new StringProperty();

        subject.Name = "subject";

        subject.Value = "Test Subject";

        // Set a contact for party

        DynamicEntity requiredAtt1 = new DynamicEntity();

        requiredAtt1.Name = "activityparty";

        // create a contact property

        LookupProperty contactProp = new LookupProperty();

        contactProp.Name = "partyid";

        Lookup contactLookup = new Lookup();

        contactLookup.type = "contact";

        contactLookup.Value = new Guid("{2DE7671B-987D-DE11-8AB8-0003FFD21C1C}");

        contactProp.Value = contactLookup;

        // add contact property

        requiredAtt1.Properties = new Property[] { contactProp };

        // Set an account for party

        DynamicEntity requiredAtt2 = new DynamicEntity();

        requiredAtt2.Name = "activityparty";

        // create an account property

        LookupProperty accountProp = new LookupProperty();

        accountProp.Name = "partyid";

        Lookup accountLookup = new Lookup();

        accountLookup.type = "contact";

        accountLookup.Value = new Guid("{A4BB3561-748D-DE11-8CD4-0003FFD21C1C}");

        accountProp.Value = accountLookup;

        // add account property

        requiredAtt2.Properties = new Property[] { accountProp };

        // create to property. it is an dynamic entity array

        DynamicEntityArrayProperty raProp= new DynamicEntityArrayProperty();

        raProp.Name = "requiredattendees";

        // add contact and account activity parties

        raProp.Value = new DynamicEntity[] { requiredAtt1, requiredAtt2 };

        // set scheduledStart date

        CrmDateTimeProperty scheduledStart = new CrmDateTimeProperty();

        scheduledStart.Name = "scheduledstart";

        CrmDateTime ss = new CrmDateTime();

        ss.Value = DateTime.Now.ToString();

        scheduledStart.Value = ss;

        // set scheduledend date

        CrmDateTimeProperty scheduledEnd = new CrmDateTimeProperty();

        scheduledEnd.Name = "scheduledend";

        CrmDateTime se = new CrmDateTime();

        se.Value = DateTime.Now.AddHours(1).ToString();

        scheduledEnd.Value = se;        

        myAppointment.Properties = new Property[] { subject,raProp, scheduledStart,scheduledEnd };

        Guid mycontactGuid = new Guid();



            mycontactGuid = myService.Create(myAppointment);


        catch (SoapException ex)


         //   handle exception




Author: Nishant Rana

I love working in and sharing everything about Microsoft.NET technology !

One thought on “Set ActivityParty for DynamicEntity”

  1. Thank u very much 🙂 It worked.

    I had to replace:

    requiredAtt1.Properties = new Property[]{ accountProp };

    with following line:

    requiredAtt1.Properties = new PropertyCollection { accountProp };


Please share your thoughts

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.