none
Numeración automatica RRS feed

  • Pregunta

  • Buenas tardes, nosotros teníamos implementado el siguiente desarrollo para numeracion automatica en oportunidades, pero con la actualización q12 de microsoft, dejo de funcionar, alguien podria ayudarme a actualizarlo, o si conocen alguna otra forma de generar la numeración automática por código?

    function ProxNumSec() {
        var x;
        var v_cant_car_nro;
        var v_maxnro_opp;
        var v_maxnro_ofe;
        var v_proxnro;
        var v_proxnro_str;
        var Resp;
        var xml;
        var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        var DOM = new ActiveXObject("Msxml2.DOMDocument");
        var v_IdRegion;

        v_cant_car_nro = 5; // Cantidad de caracteres del número devuelto. Ej: 5 => 00001

        // Obtener el último número de oportunidad.

        xml = "" +
     "<?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>opportunity</q1:EntityName>" +
     " <q1:ColumnSet xsi:type='q1:ColumnSet'>" +
     " <q1:Attributes>" +
     " <q1:Attribute>flow_sequencenumber</q1:Attribute>" +
     " </q1:Attributes>" +
     " </q1:ColumnSet>" +
     " <q1:Distinct>false</q1:Distinct>" +
      " </query>" +
     " </RetrieveMultiple>" +
     " </soap:Body>" +
     "</soap:Envelope>";

        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", xml.length);
        xmlHttpRequest.send(xml);

        DOM.loadXML(xmlHttpRequest.responseText);

        Resp = DOM.getElementsByTagName("q1:flow_sequencenumber");

        v_maxnro_opp = 0;
        for (x = 0; x < Resp.length; x++) {
            if (CDbl(Resp(x).firstChild.nodeValue) > v_maxnro_opp)
                v_maxnro_opp = CDbl(Resp(x).firstChild.nodeValue);
        }


        // Obtener el último número de oferta.

        xml = "" +
     "<?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>quote</q1:EntityName>" +
     " <q1:ColumnSet xsi:type='q1:ColumnSet'>" +
     " <q1:Attributes>" +
     " <q1:Attribute>flow_sequencenumber</q1:Attribute>" +
     " </q1:Attributes>" +
     " </q1:ColumnSet>" +
     " <q1:Distinct>false</q1:Distinct>" +
      " </query>" +
     " </RetrieveMultiple>" +
     " </soap:Body>" +
     "</soap:Envelope>";

        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", xml.length);
        xmlHttpRequest.send(xml);

        DOM.loadXML(xmlHttpRequest.responseText);

        Resp = DOM.getElementsByTagName("q1:flow_sequencenumber");

        v_maxnro_ofe = 0;
        for (x = 0; x < Resp.length; x++) {
            if (CDbl(Resp(x).firstChild.nodeValue) > v_maxnro_ofe)
                v_maxnro_ofe = CDbl(Resp(x).firstChild.nodeValue);
        }

        if (v_maxnro_opp >= v_maxnro_ofe)
            v_proxnro = v_maxnro_opp + 1;
        else
            v_proxnro = v_maxnro_ofe + 1;


        if ((v_proxnro.toString()).length < v_cant_car_nro) {
            v_proxnro_str = ReplicateStr('0', v_cant_car_nro) + v_proxnro.toString();
            v_proxnro_str = v_proxnro_str.substr(v_proxnro_str.length - v_cant_car_nro, v_cant_car_nro);
        }
        else
            v_proxnro_str = v_proxnro.toString();
        return v_proxnro_str;
    }


    martes, 29 de enero de 2013 23:23

Todas las respuestas