none
Função que retorne o tipo da entidade RRS feed

  • Pergunta

  • Olá Pessoal, estou em uma atividade que em determinado momento do meu código faço uma consulta a uma entidade que esta no banco de dados. Dai consigo buscar os valores dos atributos, ex: first name, lastname e email. Só que além disso preciso de um atributo que retorne o tipo de entidade, por causa que no meu codigo, tem um campo que se chama "CLIENTE PROVAVEL", e esse campo pode ser uma entidade ACCOUNT ou CONTACT.
    quarta-feira, 9 de julho de 2014 13:18

Respostas

  • Wagner,

    Bom dia!

    Quando você está manipulando um atributo que é do tipo Consulta (lookup), você pode identificar qual a entidade desse objeto através da propriedade "LogicalName" (c#) ou "entityName" (js)


    Exemplo:

    JavaScript (dentro da função REST).

    var cliente_Id = result.CustomerId.Id;
    var cliente_Name = result.CustomerId.Name;
    var cliente_LogicalName = result.CustomerId.LogicalName;
    JavaScript (usando Xrm.Page)
    ...
    var cliente = Xrm.Page.getAttribute("customerid").getValue();
    
    var entidade = cliente[0].entityType;

    C# (Plugin)

    ...
    Entity cliente;
    String entidade = cliente.LogicalName;
    ...


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.


    • Sugerido como Resposta Azevedo PedroMVP quarta-feira, 9 de julho de 2014 14:56
    • Marcado como Resposta _Wagner dos Santos quarta-feira, 9 de julho de 2014 15:29
    • Editado Marcos Rocha quarta-feira, 9 de julho de 2014 16:32 Correção no código antigo: entityName novo: entityType
    • Não Marcado como Resposta _Wagner dos Santos quarta-feira, 9 de julho de 2014 17:32
    • Marcado como Resposta _Wagner dos Santos quarta-feira, 27 de agosto de 2014 14:14
    quarta-feira, 9 de julho de 2014 14:05
  • Boas Wagner,

    O que o Marcos referiu não está 100% correcto não é entityName mas sim entityType.

    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    quarta-feira, 9 de julho de 2014 14:40

Todas as Respostas

  • Wagner,

    Bom dia!

    Quando você está manipulando um atributo que é do tipo Consulta (lookup), você pode identificar qual a entidade desse objeto através da propriedade "LogicalName" (c#) ou "entityName" (js)


    Exemplo:

    JavaScript (dentro da função REST).

    var cliente_Id = result.CustomerId.Id;
    var cliente_Name = result.CustomerId.Name;
    var cliente_LogicalName = result.CustomerId.LogicalName;
    JavaScript (usando Xrm.Page)
    ...
    var cliente = Xrm.Page.getAttribute("customerid").getValue();
    
    var entidade = cliente[0].entityType;

    C# (Plugin)

    ...
    Entity cliente;
    String entidade = cliente.LogicalName;
    ...


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.


    • Sugerido como Resposta Azevedo PedroMVP quarta-feira, 9 de julho de 2014 14:56
    • Marcado como Resposta _Wagner dos Santos quarta-feira, 9 de julho de 2014 15:29
    • Editado Marcos Rocha quarta-feira, 9 de julho de 2014 16:32 Correção no código antigo: entityName novo: entityType
    • Não Marcado como Resposta _Wagner dos Santos quarta-feira, 9 de julho de 2014 17:32
    • Marcado como Resposta _Wagner dos Santos quarta-feira, 27 de agosto de 2014 14:14
    quarta-feira, 9 de julho de 2014 14:05
  • Boas Wagner,

    O que o Marcos referiu não está 100% correcto não é entityName mas sim entityType.

    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    quarta-feira, 9 de julho de 2014 14:40
  • Muito Obrigado mais uma vez Azevedo
    quarta-feira, 9 de julho de 2014 15:29
  • Boas Wagner,

    Não é necessário agradecer, temos que nos ajudar uns aos outros. Neste caso o Marcos Rocha é que deu a maior ajuda :D


    Pedro Azevedo Crm Specialist 4.0\2011

    quarta-feira, 9 de julho de 2014 16:20
  • Marcos e Azevedo, se não estou enganado, este código funciona para pegar o tipo de um campo no próprio formulário, mas o que preciso e buscar em uma entidade relacionada fazendo uma consulta SOAP.

    Exemplo:

    Estou no PRODUTO DA COTAÇÃO , preciso saber se o "Cliente provavel" da COTAÇÃO  e uma conta ou um contato.

    quarta-feira, 9 de julho de 2014 17:32
  • Boas Wagner,

    Para a próxima tenta dar logo estes detalhes para que as respostas sejam mais especificas. Assumindo que já tens a query SOAP feita se não tiveres diz que eu coloco aqui um exemplo, mas assumindo que já tens feito para ir buscar o tipo da entidades faz assim:

    .... (construção da SOAP query)
    
    xmlHttpRequest.send(xml);
    resultXml = xmlHttpRequest.responseXML;
    
    if (resultXml != null && resultXml.selectSingleNode('//q1:customerid') != null) {
    	var idCustomer = resultXml.selectSingleNode('//q1:customerid').nodeTypedValue);
    	var nameCustomer = resultXml.selectSingleNode('//q1:customerid').getAttribute("name");
    	var typeOfCustomer = resultXml.selectSingleNode('//q1:customerid').getAttribute("type");
    }

    Resumindo na variável typeOfCustomer vem se é acccount ou contact.

    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    • Sugerido como Resposta Azevedo PedroMVP quinta-feira, 10 de julho de 2014 08:53
    quinta-feira, 10 de julho de 2014 08:53
  • Função que retorna o tipo da entidade dentro um campo Lookup

    Xrm.Page.data.entity.attributes.get("parentaccountid ").getValue()[0].typename;               

    Função usada dentro do SDK.REST.retrieveRecord

    var variavel= new Array();
    variavel[0] = new Object();
    variavel[0].id = result.new_Campo.Id;
    variavel[0].name = result.new_Campo.Name;
    variavel[0].entityType = result.new_Campo.LogicalName;

    terça-feira, 5 de agosto de 2014 18:21