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! 一些帮助!?!
答案 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"));
}