【发布时间】:2015-10-27 19:16:33
【问题描述】:
我正在尝试将我们的一些联系人/帐户上的活动转移到 new_private_contact_details 实体。我有他们所有的,但电话工作。下面的代码似乎确实有效,但它最终会在new_private_contact_details 实体和现有Contact 实体的活动源上显示电话呼叫。显然这是一个问题,因为我正在尝试将这些类型的详细信息迁移到私人详细信息,因此让它们仍然显示会使该过程无效。
if (phoneCallsList != null && phoneCallsList.Count > 0)
{
foreach (PhoneCall pc in phoneCallsList)
{
if (pc.StatusCode.Value != 1)
{
int oldState = 0; //for the beginning statecode
int oldStatus = 0; //for the beginning statuscode
if (pc.StatusCode.Value == 3)
{
oldState = 2;
oldStatus = 3;
}
else
{
oldState = 1;
oldStatus = pc.StatusCode.Value;
}
//change status to open
SetStateRequest setStateRequest = new SetStateRequest()
{
EntityMoniker = new EntityReference
{
Id = pc.Id,
LogicalName = pc.LogicalName
},
State = new OptionSetValue(0),
Status = new OptionSetValue(1)
};
try
{
crm.Execute(setStateRequest);
}
catch (Exception ex)
{
throw new Exception("Error: " + ex);
}
pc.RegardingObjectId = pcd.ToEntityReference();
pc.StatusCode.Value = 1;
try
{
service.Update(pc);
}
catch (Exception ex)
{
throw new Exception("Error: " + ex);
}
//return status to closed
setStateRequest = new SetStateRequest()
{
EntityMoniker = new EntityReference
{
Id = pc.Id,
LogicalName = pc.LogicalName
},
State = new OptionSetValue(oldState),
Status = new OptionSetValue(oldStatus)
};
try
{
crm.Execute(setStateRequest);
}
catch (Exception ex)
{
throw new Exception("Error: " + ex);
}
}
else
{
pc.RegardingObjectId = pcd.ToEntityReference();
try
{
service.Update(pc);
}
catch (Exception ex)
{
throw new Exception("Error: " + ex);
}
}
}
}
我已经处理了电话完成/关闭的时间。我正在更新 RegardingObjectId,但它不会将其从原始实体中删除,并在 CRM 中从任一实体中删除它,同时将其从两者中删除。
同样,我似乎只对phonecall 实体有这个问题。此代码适用于其他代码,即appointments、tasks、letters 和 emails
【问题讨论】:
-
为什么所有的 Try Catches 都会删除自定义错误类型?
标签: c# dynamics-crm-2013