我正在为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"]
时,它说没有找到密钥。如何在获得潜在客户资格时获得主导实体?
答案 0 :(得分:5)
如果您的插件在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
参数。
答案 1 :(得分:0)
我之所以需要实体的名称,正是因为我的自定义工作流程是在两个不同实体的工作流程中触发的。因此,在找到“ PrimaryEntityName”之前,必须确定目标。
context.PrimaryEntityName
可用于某人正在寻找识别工作流触发于哪个目标实体的情况下