none
Buscar QuoteId, evento Onsalve entidade Quote, via plugin C# RRS feed

  • Pergunta

  • Bom dia pessoal.

    como faço para pegar o id da entidade Quote recem criada, com plugin feito em C# ?

    estou me baseando no exemplo do skd para fazer esta busca porem no exemplo o que consegui foi apenas pegar um bool (true ou false)

    if(entity.Properties.Contains("quoteid") == false){}
    

    como faço para buscar o valor do campo?

    Obrigado.

    Maicon

    quinta-feira, 20 de janeiro de 2011 13:43

Respostas

  • Consegui. caso alguem precisar.

    No plugin Registration  = Name Win

            DynamicEntity entity1 = (DynamicEntity)context.InputParameters["QuoteClose"];
            ICrmService serviceCon = context.CreateCrmService(false);        
            Guid QuoteID = ((Lookup)entity1["quoteid"]).Value;        
            Microsoft.Crm.Sdk.Query.ColumnSet Colunas = new Microsoft.Crm.Sdk.Query.ColumnSet();        
            
            Colunas.AddColumn("totalamount");
            Colunas.AddColumn("statecode");
            Colunas.AddColumn("exchangerate");
            Colunas.AddColumn("createdby");
    
            Microsoft.Crm.SdkTypeProxy.quote CurrenQuote = (Microsoft.Crm.SdkTypeProxy.quote)serviceCon.Retrieve(Microsoft.Crm.SdkTypeProxy.EntityName.quote.ToString(), QuoteID, Colunas);        
            Log(CurrenQuote.statecode.Value.ToString());
            Log(CurrenQuote.totalamount.Value.ToString());
            Log(CurrenQuote.createdby.Value.ToString());
    • Marcado como Resposta RicardoAlves sexta-feira, 21 de janeiro de 2011 18:39
    sexta-feira, 21 de janeiro de 2011 18:21

Todas as Respostas

  • Oi Maicon,

    Você está registrando o plugin para qual momento? Já tentou o post create?

    http://nishantrana.wordpress.com/2010/08/19/get-quotenumber-quote-id-on-postcreate-plugin/

    []´s


    Carlos Amorim Junior
    "Colabore! A comunidade precisa de você."
    http://www.dynamicscrm.com.br
    quinta-feira, 20 de janeiro de 2011 13:49
  • Maicon,

     

    Você pode fazer assim...

    Guid id = ((Key)entity.Properties["quoteid"]).Value;
    

     

    Abraço,

     

     


    Ricardo Alves
    www.ricardoalves.me
    • Sugerido como Resposta RicardoAlves sexta-feira, 21 de janeiro de 2011 14:43
    quinta-feira, 20 de janeiro de 2011 21:50
  • Consegui:

      ICrmService serviceCon = context.CreateCrmService(false);
          Log("Service");
          Guid QuoteID = ((Moniker)context.InputParameters.Properties["EntityMoniker"]).Id;
          Log("id");
          Microsoft.Crm.Sdk.Query.ColumnSet Colunas = new Microsoft.Crm.Sdk.Query.ColumnSet();
          Log("clounas");
          //add as colunas para puxar da cotaçao aberta
          Colunas.AddColumn("totalamount");
          Colunas.AddColumn("statecode");
          
          Microsoft.Crm.SdkTypeProxy.quote CurrenQuote = (Microsoft.Crm.SdkTypeProxy.quote)serviceCon.Retrieve(Microsoft.Crm.SdkTypeProxy.EntityName.quote.ToString(), QuoteID, Colunas);
          Log("current quote");
    
    
          Log(CurrenQuote.statecode.Value.ToString());
          Log(CurrenQuote.totalamount.Value.ToString());

    Porem, ele executa apenas quando altero para ativo a cotaçao, usei SetStateDynamicEntity para executar,

    preciso que seja executando quando for alterado para Ganho, 

    • Editado Maicon Cesar Vaz sexta-feira, 21 de janeiro de 2011 16:02 erro no codigo.
    sexta-feira, 21 de janeiro de 2011 15:59
  • Consegui. caso alguem precisar.

    No plugin Registration  = Name Win

            DynamicEntity entity1 = (DynamicEntity)context.InputParameters["QuoteClose"];
            ICrmService serviceCon = context.CreateCrmService(false);        
            Guid QuoteID = ((Lookup)entity1["quoteid"]).Value;        
            Microsoft.Crm.Sdk.Query.ColumnSet Colunas = new Microsoft.Crm.Sdk.Query.ColumnSet();        
            
            Colunas.AddColumn("totalamount");
            Colunas.AddColumn("statecode");
            Colunas.AddColumn("exchangerate");
            Colunas.AddColumn("createdby");
    
            Microsoft.Crm.SdkTypeProxy.quote CurrenQuote = (Microsoft.Crm.SdkTypeProxy.quote)serviceCon.Retrieve(Microsoft.Crm.SdkTypeProxy.EntityName.quote.ToString(), QuoteID, Colunas);        
            Log(CurrenQuote.statecode.Value.ToString());
            Log(CurrenQuote.totalamount.Value.ToString());
            Log(CurrenQuote.createdby.Value.ToString());
    • Marcado como Resposta RicardoAlves sexta-feira, 21 de janeiro de 2011 18:39
    sexta-feira, 21 de janeiro de 2011 18:21
  • Boa Maicon,

     

    É que em alguns eventos não vem DynamicEntity no context, mas um Moniker. Como por exemplo no evento Delete.

     

    Abs,

     


    Ricardo Alves
    www.ricardoalves.me
    sexta-feira, 21 de janeiro de 2011 18:39