我试图将电子邮件状态代码从已完成更改为草稿,以便更改电子邮件主题。要做到这一点,我首先尝试这样做(因为我无法更改状态代码,直到状态代码是EmailState.Open
entityEmail["statecode"] = new OptionSetValue((int)EmailState.Open);
service.Update(entityEmail);但是放弃了错误“指定的强制转换无效”,因此尝试了使用来自http://msdn.microsoft.com/en-us/library/hh155312.aspx的数据的这种方法。
UpdateStateValueRequest updateStateValue = new UpdateStateValueRequest
{
AttributeLogicalName = "statecode",
EntityLogicalName = Email.EntityLogicalName,
Value = 0,
Label = new Label("Open", 0x0409) // 0x0409=en-us
};
service.Execute(updateStateValue);但是得到了这个错误“给定的键在字典中不存在。
有人能告诉我为什么这两种方法都行不通吗?当状态完成时,不可能更改电子邮件主题吗?
提前谢谢迈克。
发布于 2013-10-22 18:09:14
我一直使用SetEntityState请求,但通常我不处理活动,而是试图禁用记录。
您不能使用标准的update消息更新对象的状态,但是您得到了一个有趣的错误,而不是普通的错误。我猜你在“事件前”阶段注册了一个插件,这是你在这两种情况下看到的异常。尝试禁用您拥有的任何插件,并查看您的更新语句是否有效。
发布于 2013-10-23 08:48:14
我在Scribe和C#上遇到了类似的问题,不知道它是否会有帮助,但通常情况下,当您更改状态代码时,会更改状态代码--当然,反过来也是如此。
当状态代码更改时,当前的状态代码将无效,因此会中断。
https://stackoverflow.com/questions/19524923
复制相似问题