Если этот плагин зарегистрирован в Постоперации при создании сообщения объекта account
, предполагая, что new_accountcopy
объект получил accountid
отношение поиска, приведенный ниже код будет работать.
Entity accountCopy = new Entity("new_accountcopy");
accountCopy["new_name"] = entity.Attributes["name"];
accountCopy["new_phone"] = entity.Attributes["telephone1"];
accountCopy["new_fax"] = entity.Attributes["fax"];
accountCopy["new_website"] = entity.Attributes["websiteurl"];
accountCopy["accountid"] = new EntityReference("account", entity.Id); //mapping the account lookup in account-copy record
service.Create(accountCopy);
Дополнительный совет: string LookUpaccountName = entref.LogicalName;
правильный путь
Обновление : Мы говорим о двух разных вещах: отображение реляционного поиска и затем использование этого поиска для синхронизации данных из дальнейших обновлений.
Сценарий 1 (это был ваш первоначальный вопрос)
При создании новой записи учетной записи - плагин пост-создания для учетной записи сущность создает запись account-copy , и любая из этих записей будет иметь ссылку на другую запись при поиске. Я бы предположил, что это отношение никогда не изменится - нет необходимости синхронизировать обновление учетной записи.
Если у вас есть accountid
поиск в new_accountcopy
сущности - мой приведенный выше код работает.
(Или)
Если у вас есть new_accountcopyid
поиск в account
сущности, тогда следуйте этому коду:
Guid createdId = service.Create(accountcopy);
Entity toUpdate = new Entity("account");
toUpdate.Id = entity.Id;
toUpdate["new_accountcopyid"]= new EntityReference("new_accountcopy", createdId); //mapping the account-copy lookup in account record
service.Update(toUpdate);
Сценарий 2
В будущих обновлениях основной учетной записи вы можете получить соответствующую account-copy записать и обновить ее с account изменения.
Примечание. Поддерживайте плагин в асинхронном режиме.