2

我正在创建一个插件,Dynamics CRM 2011以便在获得潜在客户资格时执行。我使用此代码

IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = factory.CreateOrganizationService(null);
Entity curEntity = (Entity)context.InputParameters["Target"];

但是当我得到它时,context.InputParameters["Target"]它说找不到密钥。获得潜在客户资格时如何获得潜在客户实体?

4

2 回答 2

6

如果您的插件在QualifyLead消息上执行(Lead作为主要实体),您可以通过以下方式获取对潜在客户的引用:

public void Execute(IServiceProvider serviceProvider)
{
    ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
    IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
    if (context.InputParameters.Contains("LeadId") && context.InputParameters["LeadId"] is EntityReference)
    {
        EntityReference leadReference = (EntityReference)context.InputParameters["LeadId"];
        Guid leadId = leadReference.Id;
        // rest of your code

基本上这条消息不包含Target参数,而是包含LeadId参数。

于 2013-06-25T13:50:50.727 回答
0

我需要实体的名称正是因为我的相同自定义工作流在两个不同实体的工作流上被触发。因此,在我找到“PrimaryEntityName”之前,必须识别目标。

context.PrimaryEntityName可以在有人希望确定触发工作流的目标实体的情况下使用

于 2018-09-10T15:05:59.760 回答