none
CRM 2011 - Campo Lookup relacionado RRS feed

  • Pergunta

  • Boa tarde,

    Estou com um problema por aqui, tenho uma entidade "produto da oportunidade" lá tenho dois campos lookup, "produto existente" e "Unidade", eu quero puxar automaticamente a unidade deste produto.


    quarta-feira, 13 de junho de 2012 15:26

Respostas

  • Willer,

    Terá que consumir o WS do CRM via SOAP ou Rest no Change do campo Produto.

    Existe uma biblioteca que me ajuda muito:

    http://xrmservicetoolkit.codeplex.com/

    Att,


    Tiago Michelini Cardoso MVP - MCC - MCTS
    https://tiagomcardoso.wordpress.com/

    quarta-feira, 13 de junho de 2012 15:39
    Moderador
  • Willer tudo bem?

    Voce tem que fazer o acesso ao web service e setar o valor da unidade. este script faz isso, basta colocar a chamada para a funcao no onchange do campo produto. Vale lembrar que para pegar a unidade padrao a lista de preco deve estar setada, pois ele traz a unidade para o produto da lista de preço. este script eu usei no produto do pedido, nao sei se é o seu caso. para funcionar precisa tambem colocar o JQUERY e JSON como recurso da web e colocar no seu formulario.

    function unidadePadrao()
    {
        var productid = Xrm.Page.data.entity.attributes.get("productid").getValue();
        var pricelevelid = window.parent.opener.Xrm.Page.data.entity.attributes.get("pricelevelid").getValue();
        var request = Xrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc/ProductPriceLevelSet?$select=UoMId&$filter=PriceLevelId/Id eq guid'" + pricelevelid[0].id + "' and ProductId/Id eq guid'" + productid[0].id + "'"; 
        $.ajax({
          type: "GET", contentType: "application/json; charset=utf-8", datatype: "json", url: request, async: false,
          beforeSend: 
            function (XMLHttpRequest) 
            { 
                XMLHttpRequest.setRequestHeader("Accept", "application/json"); 
            },
          success: 
            function (data, textStatus, XmlHttpRequest) 
            {
              var result = data.d.results[0]; 
              Xrm.Page.getAttribute("uomid").setValue( [{id: result.UoMId.Id, name: result.UoMId.Name, entityType: result.UoMId.LogicalName}]);             
            },
          error: 
            function (XmlHttpRequest, textStatus, errorThrown) 
            {
              Xrm.Page.getAttribute("uomid").setValue(null);
            }
        });
    }


    Atenciosamente,
    Rodrigo Hentz - MCP.MCPS.MCNPS.MCTS.MBSS.MBSP.MCITP
    Profile
    Blog

    quarta-feira, 13 de junho de 2012 16:51
    Moderador

Todas as Respostas

  • Willer,

    Terá que consumir o WS do CRM via SOAP ou Rest no Change do campo Produto.

    Existe uma biblioteca que me ajuda muito:

    http://xrmservicetoolkit.codeplex.com/

    Att,


    Tiago Michelini Cardoso MVP - MCC - MCTS
    https://tiagomcardoso.wordpress.com/

    quarta-feira, 13 de junho de 2012 15:39
    Moderador
  • Willer tudo bem?

    Voce tem que fazer o acesso ao web service e setar o valor da unidade. este script faz isso, basta colocar a chamada para a funcao no onchange do campo produto. Vale lembrar que para pegar a unidade padrao a lista de preco deve estar setada, pois ele traz a unidade para o produto da lista de preço. este script eu usei no produto do pedido, nao sei se é o seu caso. para funcionar precisa tambem colocar o JQUERY e JSON como recurso da web e colocar no seu formulario.

    function unidadePadrao()
    {
        var productid = Xrm.Page.data.entity.attributes.get("productid").getValue();
        var pricelevelid = window.parent.opener.Xrm.Page.data.entity.attributes.get("pricelevelid").getValue();
        var request = Xrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc/ProductPriceLevelSet?$select=UoMId&$filter=PriceLevelId/Id eq guid'" + pricelevelid[0].id + "' and ProductId/Id eq guid'" + productid[0].id + "'"; 
        $.ajax({
          type: "GET", contentType: "application/json; charset=utf-8", datatype: "json", url: request, async: false,
          beforeSend: 
            function (XMLHttpRequest) 
            { 
                XMLHttpRequest.setRequestHeader("Accept", "application/json"); 
            },
          success: 
            function (data, textStatus, XmlHttpRequest) 
            {
              var result = data.d.results[0]; 
              Xrm.Page.getAttribute("uomid").setValue( [{id: result.UoMId.Id, name: result.UoMId.Name, entityType: result.UoMId.LogicalName}]);             
            },
          error: 
            function (XmlHttpRequest, textStatus, errorThrown) 
            {
              Xrm.Page.getAttribute("uomid").setValue(null);
            }
        });
    }


    Atenciosamente,
    Rodrigo Hentz - MCP.MCPS.MCNPS.MCTS.MBSS.MBSP.MCITP
    Profile
    Blog

    quarta-feira, 13 de junho de 2012 16:51
    Moderador