Hi,
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();
try
{
mycontactGuid = myService.Create(myAppointment);
}
catch (SoapException ex)
{
// handle exception
}
Bye..
Discover more from Nishant Rana's Weblog
Subscribe to get the latest posts sent to your email.

Thank u very much 🙂 It worked.
I had to replace:
requiredAtt1.Properties = new Property[]{ accountProp };
with following line:
requiredAtt1.Properties = new PropertyCollection { accountProp };
LikeLike