2

我为电子邮件实体制作了一个插件,并在 Pre Create 事件(子管道)上注册了它。插件尽可能简单:

public class AddDescription : IPlugin
{
    public void Execute(IPluginExecutionContext context)
    {
        DynamicEntity di = (DynamicEntity)context.InputParameters["Target"];

        di.Properties["description"] = "blabla";
    }
}

但描述(=电子邮件正文)保持不变。不抛出异常。我进行了调试,看起来属性集合已更改(添加了“blabla”描述),但未保存。

如果我在帐户实体(预创建,子管道)上注册相同的插件,它工作正常。

电子邮件实体对创建时更改属性有任何限制吗?!!?

编辑(更多信息):

我试图更改描述、主题、类别和子类别,令我惊讶的是,类别和子类别发生了变化,而描述和主题却没有。

tnx 求助再见

4

3 回答 3

2

你为什么在子管道中?我的猜测是基本活动是在主管道中创建的,子活动(正如马特指出的那样 - 仅包含非共享属性)然后通过子管道。这在父管道中是否按预期工作?也许您必须在子管道中捕获一个场景?

于 2009-08-19T16:35:35.457 回答
1

我的猜测是,这是因为主题和描述是所有活动(在活动指针实体上)共享的属性,而类别和子类别在电子邮件实体上。

调试时,查看是否有另一个 DynamicEntity 的属性...这可能是存储到活动的属性的位置。

于 2009-08-18T17:17:57.910 回答
0

这是解决方案。

 ((DynamicEntity)context.InputParameters.Properties["Target"]).Properties["propertyname"]="propertyvalue";

如果这个实体没有这个属性,你必须添加。例如,我们要设置不包含目标属性的字符串属性。这是代码:

((DynamicEntity)context.InputParameters.Properties["Target"]).Properties.Add(CrmTypes.CreateStringProperty("propertyname", "propertyvalue"));
于 2010-06-14T15:54:40.607 回答