Dynamics CRM 2011 사용. ActivityPartys에 대해 배우고 있습니다.PartyId의 Entity 유형을 어떻게 결정할 수 있습니까?
ActivityParty의 PartyId가 EntityReference이므로 PartyId를 설정하려면 엔터티 형식을 알아야합니다.
기존 전화 통화와 동일한 수신자를 사용하여 새 PhoneCall (플러그인에 있음)을 만들려고합니다. ActivityPartySet에서 LINQ를 사용하여받는 사람의 PartyId Guid를 검색 할 수 있지만 계정 또는 연락처 중 하나 일 수있는 엔터티 유형을 어떻게 확인할 수 있습니까?
반대로 EntityLogicalName을 모른 채 PartyId를 설정할 수 있습니까?
업데이트 :하지만 나도 당신을 오해하거나 내가 확인하려고 무엇을 오해 응답에 대한
감사합니다. 여기 내 코드는 바로 지금입니다 :
// 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);
}
내가 foreach 문에, party.LogicalName이 ActivityParty 것으로 나타났습니다. 이것은 oldphonecall 수신자의 엔티티 유형이 아니며, 테스트 케이스에서는 Contact이지만 다른 경우에는 Account입니다.
엔티티 논리 이름은 어떻게 결정합니까? 내가 어디로 잘못 갔니?
갱신 2 :
SQL에서 내가 필드 PartyObjectTypeCode을 볼 수 있고 내가 엔티티 유형에 해당 매핑 할 수 있습니다 알고 (여기서 1 = 계정, 2 = 연락처 등)하지만 난 ActivityPartySet를 쿼리 할 때, 그러한 필드가 존재하는 것 같습니다.
업데이트 3 :
가있어 -
foreach (var party in queryParty)
{
activityParty2.PartyId = new EntityReference(party.PartyId.LogicalName, party.PartyId.Id);
}
감사하지만, 동적으로 CRM에 의해 작성된 답변을 확인, 그는 먼저 쓴 및 –