CRM2011 - "The given key was not present in the dictionary"
        Posted  
        
            by 
                DJZorrow
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by DJZorrow
        
        
        
        Published on 2013-10-18T08:48:00Z
        Indexed on 
            2013/10/18
            9:54 UTC
        
        
        Read the original article
        Hit count: 339
        
I am what you call a "n00b" in CRM plugin development. I am trying to write a plugin for Microsoft's Dynamics CRM 2011 that will create a new activity entity when you create a new contact. I want this activity entity to be associated with the contact entity.
This is my current code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xrm.Sdk;
namespace ITPH_CRM_Deactivate_Account_SSP_Disable
{
    public class SSPDisable_Plugin: IPlugin
    {
        public void Execute(IServiceProvider serviceProvider)
        {
            // Obtain the execution context from the service provider.
            IPluginExecutionContext context = (IPluginExecutionContext)
                serviceProvider.GetService(typeof(IPluginExecutionContext));
            IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
            if (context.InputParameters.Contains("Target") && context.InputParameters["target"] is Entity)
            {
                Entity entity = context.InputParameters["Target"] as Entity;
            if (entity.LogicalName != "account")
            {
                return;
            }
            Entity followup = new Entity();
            followup.LogicalName = "activitypointer";
            followup.Attributes = new AttributeCollection();
            followup.Attributes.Add("subject", "Created via Plugin.");
            followup.Attributes.Add("description", "This is generated by the magic of C# ...");
            followup.Attributes.Add("scheduledstart", DateTime.Now.AddDays(3));
            followup.Attributes.Add("actualend", DateTime.Now.AddDays(5));
            if (context.OutputParameters.Contains("id"))
            {
                Guid regardingobjectid = new Guid(context.OutputParameters["id"].ToString());
                string regardingobjectidType = "account";
                followup["regardingobjectid"] = new EntityReference(regardingobjectidType, regardingobjectid);
            }
            service.Create(followup);
        }
    }
}
But when i try to run this code: I get an error when i try to create a new contact in the CRM environment. The error is: "The given key was not present in the dictionary" (Link *1). The error pops up right as i try to save the new contact.
Link *1: http://puu.sh/4SXrW.png (Translated bold text: "Error on business process")
Thanks for any help or suggestions :)
© Stack Overflow or respective owner