Использование Dynamics CRM 2011. Я узнаю о ActivityPartys.Как определить тип Entity PartyId?
Поскольку PartyId ActivityParty является EntityReference, для установки PartyId вам необходимо знать тип Entity.
Я пытаюсь создать новый PhoneCall (в плагине), используя тот же Получатель, что и существующий телефонный звонок. Я могу получить руководство PartyId получателя с помощью LINQ из ActivityPartySet, но как я могу определить тип Entity, который может быть либо учетной записью, либо контактом?
И наоборот, можно ли установить PartyId, не зная EntityLogicalName?
Update:
Спасибо за реагирование, но я либо неправильно или вы поняли, что я пытаюсь выяснить. Вот мой код прямо сейчас:
// Get the oldPhoneCall's To ActivityParty list:
EntityCollection Recipients = oldPhonecall.GetAttributeValue<EntityCollection>("to");
// Use the first one to find the partyId
// Need to do it this way because we don't know if partyId points to an Account or a Contact:
Guid activityPartyId = Recipients.Entities[0].Id;
var activityParty2 = new Xrm.ActivityParty();
context.GetWorkflowHelper().serviceContext.ClearChanges();
var queryParty = from ap in context.GetWorkflowHelper().serviceContext.ActivityPartySet
where ap.ActivityPartyId.Equals(activityPartyId)
select new { ap.PartyId, ap.LogicalName };
foreach (var party in queryParty)
{
activityParty2.PartyId = new EntityReference(party.LogicalName, party.PartyId.Id);
}
Я обнаружил, что в Еогеасп, party.LogicalName является ActivityParty. Это не тип сущности получателя oldphonecall, который в моем тестовом случае Contact, но в других случаях - это учетная запись.
Как определить логическое имя объекта? Где я ошибся?
Update2:
В SQL я могу видеть поле PartyObjectTypeCode, и я знаю, что могу сопоставить, что к типу объекта (где 1 = счета, 2 = контакт, и т.д.), но когда я запроса ActivityPartySet, нет такого поле, похоже, существует.
Update 3:
Понял -
foreach (var party in queryParty)
{
activityParty2.PartyId = new EntityReference(party.PartyId.LogicalName, party.PartyId.Id);
}
спасибо за подтверждение, но если вы можете, пожалуйста, подтвердите ответ, написанный dynamicallyCRM, он написал первый, и это правильно –