无法更新 MS 动态 CRM 2011 工作流的电子邮件状态代码

本文关键字:工作流 电子邮件 状态 代码 2011 CRM 更新 MS 动态 | 更新日期: 2023-09-27 18:36:22

我正在尝试将电子邮件状态代码从"已完成"更改为"草稿",以更改电子邮件主题。为此,我尝试首先执行此操作(因为在状态代码为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);

但收到此错误"字典中不存在给定的键"。

谁能告诉我为什么这两种方法都行不通?当状态为"已完成"时,是否无法更改电子邮件主题?

提前致谢话筒。

无法更新 MS 动态 CRM 2011 工作流的电子邮件状态代码

我一直使用 SetEntityState 请求,但通常我不处理活动,并且我正在尝试禁用记录。

您无法使用标准更新消息更新对象的状态,但您收到一个有趣的错误,而不是正常的错误。 我猜你在"事前"阶段注册了一个插件,它抛出了你在这两种情况下都看到的异常。 尝试禁用您拥有的任何插件,看看您的更新语句是否有效。

我在 Scribe 和 C# 上遇到了类似的问题,不知道它是否有帮助,但作为一般规则,当您更改状态代码时,也会更改状态代码,反之亦然。

当您的状态代码更改时,当前状态代码将无效,因此它会中断。