0

我从 C# 在 microsoft dynamics 4.0 中添加了一个新联系人。如何从代码中要求与会者?我创建了一个这样的联系人。现在如何将此联系人添加为所选约会所需的与会者?

        CRM.CrmService service = GetService();

        var contactResult = new contact
        {
            emailaddress1 = userContact.Email
        };

        var requestContact = new RetrieveDuplicatesRequest
        {
            BusinessEntity = contactResult
            ,
            MatchingEntityName = EntityName.contact.ToString()
            ,
            PagingInfo = new PagingInfo
                             {
                                 PageNumber = 1,
                                 Count = 1
                             }
        };

        bool blnEmailExists = false;

        try
        {


            var response = (RetrieveDuplicatesResponse)
                                    service.Execute(requestContact);

            foreach (contact contactItem in response.DuplicateCollection.BusinessEntities)
            {
                blnEmailExists = true;
                contactResult.contactid = new Key();
                contactResult.contactid.Value = new Guid(contactItem.contactid.Value.ToString());
                contactResult.firstname = userContact.FirstName;
                contactResult.lastname = userContact.LastName;
                contactResult.fullname = userContact.FullName;
                contactResult.mobilephone = userContact.PhoneNumber;
                contactResult.description = userContact.Description;

                service.Update(contactResult);
            }

            if (!blnEmailExists)
            {
                contactResult.firstname = userContact.FirstName;
                contactResult.lastname = userContact.LastName;
                contactResult.fullname = userContact.FullName;
                contactResult.mobilephone = userContact.PhoneNumber;
                contactResult.description = userContact.Description;


                Guid contactId = service.Create(contactResult);

                if (!string.IsNullOrEmpty(userContact.Notes))
                    AppendToNotesSection(userContact.Notes, contactId, service);
            }
        }
        catch (System.Web.Services.Protocols.SoapException ex)
        {
            throw new Exception(ex.Message);
        }

谢谢

4

1 回答 1

0

通过activityParty可以更新它,最后我找到并修复了它。

CRM.CrmService service = GetService();

        appointment appointment = (appointment)service.Retrieve(EntityName.appointment.ToString(), activityid, new AllColumns());

        if(appointment == null)
        {
            throw new ArgumentNullException("Invalid Appointment");
        }

        contact contact = RegisterContact(userContact, service);

        activityparty[] activityParty = new activityparty[appointment.requiredattendees.Length + 1];
        activityParty[0] = new activityparty();
        activityParty[0].partyid = new Lookup();
        activityParty[0].partyid.Value = contact.contactid.Value;
        activityParty[0].partyid.type = "contact";
        Int16 index = 1;
        foreach (var item in appointment.requiredattendees)
        {
            //for avoiding duplicates
            if (item.partyid.Value != contact.contactid.Value)
            {
                activityParty[index] = new activityparty();
                activityParty[index].partyid = item.partyid;
                activityParty[index].partyid.Value = item.partyid.Value;
                activityParty[index].partyid.type = item.partyid.type;
                index++;
            }
        }



        appointment.requiredattendees = activityParty;

        try
        {
            service.Update(appointment);
        }
        catch (System.Web.Services.Protocols.SoapException ex)
        {
            Console.WriteLine(ex.Message + ". " + ex.Detail.InnerText);
        }
于 2012-12-27T09:14:35.913 回答