none
Como cerrar una oportunidad con el estado Ganado (Won) con javascript RRS feed

  • Pregunta

  • Holas, alguien tendra una solucion , en javascript de como cambiar el estado como Ganado(Won) de una oportunidad. Yo estoy utilizando MS CRM 4.0 version Ingles.

    Muchas Gracias

    Jorgen B.


    Jorgen B.
    viernes, 22 de julio de 2011 16:38

Respuestas

  • Hola Jimmy, creo que se me hace muy complicado crear un workflow, ya que se tienen muchos campos que se tendria que validar.

    Yo cree un boton en el formulario en la oportunidad :  "Lost" colocando el siguiente codigo, y funciona correctamente. Y solo funciona cuando se pasa el valor de status 4 o 5

    Pero ahora queria crear 2 botones mas : "Hold" y "Win"

     ........

    var authenticationHeader = GenerateAuthenticationHeader();
    var opportunityId = crmForm.ObjectId;
    var 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'>"+
    authenticationHeader+
    "<soap:Body>"+
    "<Execute xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
    "<Request xsi:type='LoseOpportunityRequest'>"+
    "<OpportunityClose xsi:type='opportunityclose'>"+
    "<opportunityid type='opportunity'>"+opportunityId+"</opportunityid>"+
    "<subject>" + subject + "</subject>"+
    "</OpportunityClose>"+
    "<Status>" + closecode + "</Status>"+
    "</Request>"+
    "</Execute>"+
    "</soap:Body>"+
    "</soap:Envelope>";
    var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
    xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    xHReq.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Execute");
    xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xHReq.setRequestHeader("Content-Length", xml.length);
    xHReq.send(xml);
    .....

    Saludos

    Jorgen B


    Jorgen B.
    • Marcado como respuesta Jorgen2008 martes, 26 de julio de 2011 21:34
    lunes, 25 de julio de 2011 17:40

Todas las respuestas

  • Te recomiendo optar por la sigueinte alternativa:

    Crear un workflow que cambie el estado de la oportunidad a cerrado dependiendo de la condición que especifiques.

    No te recomiendo cargar con mucha lógica javascript los formularios de Dynamics ya sea en el evento OnLoad y Onsave.

     


    [MVP]-Microsoft Dynamics CRM | My blog: http://jimmylarrauri.blogspot.com | My twitter: http://twitter.com/jimlarrauri
    viernes, 22 de julio de 2011 21:07
    Moderador
  • Hola Jimmy, creo que se me hace muy complicado crear un workflow, ya que se tienen muchos campos que se tendria que validar.

    Yo cree un boton en el formulario en la oportunidad :  "Lost" colocando el siguiente codigo, y funciona correctamente. Y solo funciona cuando se pasa el valor de status 4 o 5

    Pero ahora queria crear 2 botones mas : "Hold" y "Win"

     ........

    var authenticationHeader = GenerateAuthenticationHeader();
    var opportunityId = crmForm.ObjectId;
    var 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'>"+
    authenticationHeader+
    "<soap:Body>"+
    "<Execute xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
    "<Request xsi:type='LoseOpportunityRequest'>"+
    "<OpportunityClose xsi:type='opportunityclose'>"+
    "<opportunityid type='opportunity'>"+opportunityId+"</opportunityid>"+
    "<subject>" + subject + "</subject>"+
    "</OpportunityClose>"+
    "<Status>" + closecode + "</Status>"+
    "</Request>"+
    "</Execute>"+
    "</soap:Body>"+
    "</soap:Envelope>";
    var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
    xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    xHReq.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Execute");
    xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xHReq.setRequestHeader("Content-Length", xml.length);
    xHReq.send(xml);
    .....

    Saludos

    Jorgen B


    Jorgen B.
    • Marcado como respuesta Jorgen2008 martes, 26 de julio de 2011 21:34
    lunes, 25 de julio de 2011 17:40