none
Onchange Não funciona RRS feed

  • Pergunta

  • Tenho uma Entidade chamada Informações nela faço o cadastro de informações referentes as cidades.

    Nela tenho dois campos o primeiro chamado cw_cidadeid e outro cw_sigladoestado que são de um relacionamento da entidade Região.

    No cw_cidadeid tenho a seguinte função:

     

    function Buscar(entidade, id, campoRetorno) {

     

        var XMLRequest = "" +

      "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +

      "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +

      GenerateAuthenticationHeader() +

      " <soap:Body>" +

      " <RetrieveMultiple xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +

      " <query xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:QueryExpression\">" +

      " <q1:EntityName>" + entidade + "</q1:EntityName>" +

      " <q1:ColumnSet xsi:type=\"q1:ColumnSet\">" +

      " <q1:Attributes>" +

      " <q1:Attribute>" + campoRetorno + "</q1:Attribute>" +

      " </q1:Attributes>" +

      " </q1:ColumnSet>" +

      " <q1:Distinct>false</q1:Distinct>" +

      " <q1:Criteria>" +

      " <q1:FilterOperator>And</q1:FilterOperator>" +

      " <q1:Conditions>" +

      " <q1:Condition>" +

      " <q1:AttributeName>" + entidade + "id" + "</q1:AttributeName>" +

      " <q1:Operator>Equal</q1:Operator>" +

      " <q1:Values>" +

      " <q1:Value xsi:type=\"xsd:string\">" + id + "</q1:Value>" +

      "</q1:Values>" +

      " </q1:Condition>" +

      " </q1:Conditions>" +

      " </q1:Criteria>" +

      " </query>" +

      " </RetrieveMultiple>" +

      " </soap:Body>" +

      "</soap:Envelope>" +

      "";

     

        var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");

        xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);

        xmlHttpRequest.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple");

        xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");

        xmlHttpRequest.setRequestHeader("Content-Length", XMLRequest.length);

        xmlHttpRequest.send(XMLRequest);

     

        var Result = xmlHttpRequest.responseXML;

        var BusinessEntityNodes = Result.selectNodes("//RetrieveMultipleResult/BusinessEntities/BusinessEntity");

     

        if (BusinessEntityNodes.length != 0) {

            return BusinessEntityNodes[0].firstChild.text;

        }

     

        return null;

    }

     

     

    var entidade = 'territory';

    var id = crmForm.all.cw_cidadeid.DataValue[0].id;

    var campoRetorno = 'description';

    var retorno = Buscar(entidade, id, campoRetorno);

    crmForm.all.cw_sigladoestado.DataValue = retorno;

     

    Na entidade Informações está função não está funcionando, porém na entidade Atividades de Serviço funciona normalmente.

     

    Por favor me ajudem!

     

    Desde já Muito Obrigado!

     

    Douglas Guilherme

    quinta-feira, 10 de março de 2011 14:36

Respostas

  • Olá Douglas,

     

    Como você comentou, você 'copiou' o fonte da entidade Atividade de Serviço para entidade Informações.

     

    Para o código a estrutura das entidades em relação as entidades Cidade e Estado, e também as nomenclatura de todos os campos devem ser idênticas.

     

    Abs,

     


    Ricardo Alves
    www.ricardoalves.me
    • Sugerido como Resposta RicardoAlves quinta-feira, 17 de março de 2011 20:31
    • Marcado como Resposta RicardoAlves domingo, 20 de março de 2011 22:30
    quinta-feira, 17 de março de 2011 20:30

Todas as Respostas

  • Douglas,

     

    Toda vez que usa "crmForm.all.???" deve possuir este campo no form que está chamando a função, você possui estes campos em ambos forms?

     

    []'s,

     

    Tiago Cardoso

    quinta-feira, 10 de março de 2011 14:44
    Moderador
  • Use o comando "debugger;" e verifique todo o processo, passo a passo observando os valores que são retornados (apenas deixe o mouse sobre a variável, e ele lhe informa as informaçoes que esta variável carrega) ...

    Eu uso visual studio para isto...

     

    Teclas:

    F10 - Executa passo a passo

    F11 - Entra na funcão

     

    Obrigado!

    quinta-feira, 10 de março de 2011 16:18
  • De acordo com o meu código o que eu colocaria em cada FORM?

     

    No Aguardo!

    quinta-feira, 10 de março de 2011 17:32
  • Douglas,

    Conforme eu te disse para recuperar um campo via javascript deve tê-lo no form atual, ou seja, todos campos que você faz "crmForm.all.???" deve existir no form. Caso necessite pegar o valor de um campo que não está no form, precisará realizar um fetchXML utilizando o objeto activex (vulgo ajax).

    []'s,

    Tiago

     

    quinta-feira, 10 de março de 2011 17:36
    Moderador
  • Olá Douglas,

     

    Como você comentou, você 'copiou' o fonte da entidade Atividade de Serviço para entidade Informações.

     

    Para o código a estrutura das entidades em relação as entidades Cidade e Estado, e também as nomenclatura de todos os campos devem ser idênticas.

     

    Abs,

     


    Ricardo Alves
    www.ricardoalves.me
    • Sugerido como Resposta RicardoAlves quinta-feira, 17 de março de 2011 20:31
    • Marcado como Resposta RicardoAlves domingo, 20 de março de 2011 22:30
    quinta-feira, 17 de março de 2011 20:30