none
podria alguien ayudarme con este plug in? RRS feed

  • Pregunta

  • hola estimados, tengo un problema con este plug in, que extraje de este articulo

    http://a33ik.blogspot.com/2009/06/personal-default-views-manager-for.html

    he realizado todo lo que aparece en el, pero cuando guardo en el CRM me arroja un error y no puedo saber en que linea se que es el plug in que tiene un problema pero no he podido dar con el, he tratado de depurar, el plug in pero me pide las credenciales de administrador de la maquina y eso demorara ya que estoy en una institucion grande :(, expongo el plug in para ver si alguien me da una mano puede ser que algo no este bien, he dado los permisos a la entidad default user view, asi que asumo que no es de permisos, he registrado correctamente el plug in sin problemas y la compilacion del plug in sin errores tambien, que sera?

    using

     

    System;

    using System.Collections.Generic;

    using

     

    System.Text;

    using

     

    Microsoft.Crm.Sdk;

    using

     

    Microsoft.Crm.SdkTypeProxy;

    using

     

    Microsoft.Crm.Sdk.Query;

    using

     

    System.Diagnostics;

    namespace

     

    InternalPVM

    {

     

    public class DefaultViewHandler : IPlugin

    {

    #region

     

    IPlugin Members

     

    public void Execute(IPluginExecutionContext context)

    {

     

    if (context.PrimaryEntityName == EntityName.savedquery.ToString() && context.InputParameters.Contains("Query") && context.InputParameters["Query"] is QueryExpression)

    {

     

    QueryExpression resultExpression = (QueryExpression)context.InputParameters["Query"];

     

    //I retrieve entity Type code of entity

     

    string entityname = ((ConditionExpression)resultExpression.Criteria.Conditions[0]).Values[0].ToString();

     

    ICrmService crmsevice = context.CreateCrmService(true);

     

    //I create a request to retrieve default View for current entity

     

    QueryExpression query = new QueryExpression("crm_defaultuserview");

    query.Criteria.AddCondition(

    new ConditionExpression("crm_userid", ConditionOperator.Equal, context.UserId));

    query.Criteria.AddCondition(

    new ConditionExpression("crm_entitytypecode", ConditionOperator.Equal, entityname));

    query.ColumnSet =

    new ColumnSet(new string[] { "crm_defaultview" });

     

    RetrieveMultipleRequest request = new RetrieveMultipleRequest();

    request.ReturnDynamicEntities =

    true;

    request.Query = query;

     

     

    RetrieveMultipleResponse response = (RetrieveMultipleResponse)crmsevice.Execute(request);

     

    //If there are no settings just exit from this method

     

    if (response.BusinessEntityCollection.BusinessEntities.Count == 0)

     

    return;

     

    //Identifier of Default View

     

    Guid defaultviewid = new Guid(((DynamicEntity)response.BusinessEntityCollection.BusinessEntities[0])["crm_defaultview"].ToString());

     

    BusinessEntityCollection result = (BusinessEntityCollection)context.OutputParameters["BusinessEntityCollection"];

     

    //Scroll all Views one-By-One and Set default View from user Setting to be default in resultset

     

    foreach (DynamicEntity de in result.BusinessEntities)

     

    if (((Key)de["savedqueryid"]).Value.Equals(defaultviewid))

    {

    de[

    "isdefault"] = new CrmBoolean(true);

    }

     

    else

    de[

    "isdefault"] = new CrmBoolean(false);

    }

    }

    #endregion

    }

    }

    jueves, 14 de octubre de 2010 14:24

Todas las respuestas

  • Hola Carlos,

     

    El plugin lo veo correcto, bueno te recomiendo utilizar el visor de eventos para poder tener un poco más de visión del error. Es decir, coloca toda esa función en un Try y cuando suceda el error, grabas el detalle en el visor. Una consulta, has firmado tu plugin? (clic derecho en tu proyecto, vas a firma y le creas una, sin password).

    Salu2

     

    Atilin

    jueves, 14 de octubre de 2010 14:31
  • Gracias por tu respuesta efectivamente, tambien esta firmado el plug in, tratare de capturar el error que arroja.

     

    saludos y gracias

    jueves, 14 de octubre de 2010 15:02
  • Carlos.

    Por favor, cuando tengas el error, postealo, asi te podriamos ayudar mejor.

    Un fuerte abrazo

    Salu2

    Atilin

    jueves, 14 de octubre de 2010 15:06
  • Estimados, realice los cambios al plug in y no entra al cath, sino que se va en la siguiente linea, entra a este IF del plug in, lo chequie escribiendo en un archivo de texto por cada linea que pasaba.

    //If there are no settings just exit from this method
    if (response.BusinessEntityCollection.BusinessEntities.Count == 0)
    return;
    //Identifier of Default View

    que podra ser?

     

    saludos y gracias por la ayuda

     

    jueves, 14 de octubre de 2010 16:19
  • Bueno, fijate si la consulta retorna algo,

    Es decir, en la entidad crm_defaultuserview, fijate si por el crm_userid que tu estas consultando y por crm_entitytypecode (me imagino tipo de entidad), te retorna algun dato


    QueryExpression query = new QueryExpression("crm_defaultuserview");

    query.Criteria.AddCondition(new ConditionExpression("crm_userid"ConditionOperator.Equal, context.UserId));

    query.Criteria.AddCondition(new ConditionExpression("crm_entitytypecode"ConditionOperator.Equal, entityname));

    query.ColumnSet =new ColumnSet(new string[] { "crm_defaultview" });

     RetrieveMultipleRequest request = new RetrieveMultipleRequest();

    request.ReturnDynamicEntities = true;

    request.Query = query;

     

    RetrieveMultipleResponse response = (RetrieveMultipleResponse)crmsevice.Execute(request);

     

    El response te esta viniendo, nulo o vació.

    jueves, 14 de octubre de 2010 19:35
  • Estimado, la entidad crm_defaultuserview, esta vacia no ha guardado ningun valor, es por ello que se sale del metodo.

    el response trae el siguiente valor: Microsoft.Crm.SdkTypeProxy.RetrieveMultipleResponse

    saludos y gracias

    jueves, 14 de octubre de 2010 20:16
  • estimados, alguien tiene algunas luces de que puede estar ocurriendo, el el codigo del plugin no encuentro donde guarde los datos en la tabla crm_defaultuserview, podria alguien orientarme please!

     

    saludos y gracias de antemano

    lunes, 18 de octubre de 2010 13:51
  • Hola Carlos,

     

    Si no fuera mucha molestia, me podrias enviar tu proyecto a mi correo? (atilio.rosas.e@gmail.com).

     

    Salu2

     

    atilin

    lunes, 18 de octubre de 2010 19:54