gpt4 book ai didi

c# - 机会重新打开时执行的 CRM 插件

转载 作者:太空狗 更新时间:2023-10-30 00:28:33 25 4
gpt4 key购买 nike

我需要为 Dynamics CRM 4.0 编写一个插件,该插件在关闭的商机重新打开时执行,以便更改销售阶段代码。我的问题是:

  • 当我向插件注册一个新步骤时,我应该过滤哪些属性?
  • 我应该检查实体的哪些属性的值?和
  • 我应该寻找这个实体的值是什么,以便我可以确定是否应该继续执行插件?

我通常编写异步工作流,而我编写插件的经验仍在发展中,因此,如果能提供任何帮助和说明,我将不胜感激。

请看下面我写的插件框架

    public void Execute(IPluginExecutionContext context)
{
if (context.InputParameters.Properties.Contains("Target") && context.InputParameters.Properties["Target"] is DynamicEntity)
{
ICrmService service = context.CreateCrmService(false);

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

if (entity.Name == EntityName.opportunity.ToString())
{
if (entity.Properties.Contains(/*What Property Should I Check Here?*/))
{
//And what value should I be looking for in that property?

}
}
}
}

最佳答案

我认为您实际上想要在 SetStateDynamicEntity 消息上为后期阶段注册一个插件。您不需要此消息的任何过滤属性。

你的代码看起来像这样:

public void Execute(IPluginExecutionContext context)
{
string state = (string)context.InputParameters["State"];
if (state == "Open")
{
Moniker entityMoniker = (Moniker)context.InputParameters["EntityMoniker"];
DynamicEntity opp = new DynamicEntity("opportunity");
opp["opportunityid"] = new Key(entityMoniker.Id);
opp["salesstagecode"] = new Picklist(/*your value*/);
context.CreateCrmService(true).Update(opp);
}
}

关于c# - 机会重新打开时执行的 CRM 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2519423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com