下面的代碼似乎在創建聯繫人時起作用,對於輸入值發佈它搜索並關聯現有訂閱。但是相同的代碼不適用於更新聯繫人。任何意見,爲什麼這可能會發生在我的插件?Dynamics CRM插件 - 對於輸入發佈值,搜索訂閱(如果找到)將其添加到創建/更新的聯繫人
if (!String.IsNullOrEmpty(publication))
{
//Query for existing Publication
var publicationQuery = new QueryByAttribute("msdynhcp_publicationnewsletter");
//publicationQuery.ColumnSet.AllColumns = true;
publicationQuery.Attributes.AddRange("msdynhcp_publicationname");
publicationQuery.Values.AddRange(publication);
publicationQuery.TopCount = 1;
//Call Query
EntityCollection publicationIds = organizationService.RetrieveMultiple(publicationQuery);
if (publicationIds.Entities.Count > 0)
{
//Query for existing subscription
var subscriptionQuery = new QueryExpression("msdynhcp_subscription");
var linkedContact = new LinkEntity("msdynhcp_subscription", "contact", "msdynhcp_contactlookup", "contact" + "id", JoinOperator.Inner);
linkedContact.LinkCriteria = new FilterExpression(LogicalOperator.And);
linkedContact.LinkCriteria.AddCondition("contact" + "id", ConditionOperator.Equal, ContactId);
subscriptionQuery.LinkEntities.Add(linkedContact);
var linkedPublication = new LinkEntity("msdynhcp_subscription", "msdynhcp_publicationnewsletter", "msdynhcp_publicationlookup", "msdynhcp_publicationnewsletter" + "id", JoinOperator.Inner);
linkedPublication.LinkCriteria = new FilterExpression(LogicalOperator.And);
linkedPublication.LinkCriteria.AddCondition("msdynhcp_publicationnewsletter" + "id", ConditionOperator.Equal, publicationIds[0].Id);
subscriptionQuery.LinkEntities.Add(linkedContact);
subscriptionQuery.TopCount = 1;
//Call Query
EntityCollection subscriptionIDs = organizationService.RetrieveMultiple(subscriptionQuery);
if (subscriptionIDs.Entities.Count == 0)
{
//New Subscription
var crmSubscription = new Entity("msdynhcp_subscription");
crmSubscription["msdynhcp_utcdatetimestamp"] = DateTime.UtcNow;
crmSubscription["msdynhcp_enabledactive"] = true;
//Call Create
var id = organizationService.Create(crmSubscription);
//Call Associate
organizationService.Associate("msdynhcp_subscription", id, new Relationship("msdynhcp_contact_new_subscription_contactlookup"),
new EntityReferenceCollection(new List<EntityReference>() { new EntityReference("contact", new Guid(ContactId)) }));
//Call Associate
organizationService.Associate("msdynhcp_subscription", id, new Relationship("msdynhcp_new_publicationnewsletter_new_subscription_publicationlookup"),
new EntityReferenceCollection(new List<EntityReference>() { new EntityReference("msdynhcp_publicationnewsletter", publicationIds.Entities[0].Id) }));
}
}
}
定義「不會工作」。它引發異常?發佈郵件.dld不會引發錯誤但聯繫人未更新?爲什麼您會得出結論?您是否在更新後更新'organizationService'? –
它不會拋出任何異常,但聯繫人不會更新相關訂閱。總之,聯繫人在更新後保存,即使發佈與訂閱相關聯,也不添加訂閱並沒有拋出任何異常,我不更新更新後的組織服務,我是否可以進一步澄清?謝謝! –