在线检索当前ID Crm

时间:2014-04-16 17:23:07

标签: dynamics-crm-2011 dynamics-crm crm dynamics-crm-online

Entity title = new Entity();
title = service.Retrieve("incident",((Guid)((Entity)context.InputParameters["Target"]).Id), new ColumnSet("title"));

我正在使用此代码获取事件的当前ID,而我正在关闭它! 但是收到了这个错误:

  

插件的意外异常(执行):FecharIncidente.Plugins.PostIncidenteClose:System.Collections.Generic.KeyNotFoundException:字典中没有给定的密钥。

我的一个伙伴使用完全相同的代码并正在处理他的crm! 一些帮助!?!

2 个答案:

答案 0 :(得分:0)

显然,您的InputParameters集合没有“Target”键值。检查您使用的请求是否具有“Target”InputParameter。

if (context.InputParameters.Contains("Target") &&
    context.InputParameters["Target"] is Entity)
{
    // Obtain the target entity from the input parameters.
    title = service.Retrieve("incident", ((Entity)context.InputParameters["Target"]).Id, new ColumnSet("title"));

答案 1 :(得分:0)

在InputParameters中不包含“Target”,导致KeyNotFoundException - “字典中没有给定的键。”

您可以像Daryl所解释的那样检查Target,或者使用工作流程中提供的上下文,就像这样......

protected override void Execute(CodeActivityContext executionContext)
    {
        // Create the context
        var context = executionContext.GetExtension<IWorkflowContext>();
        var title = new Entity();
        //context.PrimaryEntityName - should hold string incident
        //context.PrimaryEntityId - should hold your guid
        title = service.Retrieve(context.PrimaryEntityName, context.PrimaryEntityId, new ColumnSet("title"));
    }