No me hago responsable si copiaste mal algún código que sale en las páginas de este sitio.
Ojalá sea de ayuda para más de alguno este sitio.
Se agradece si deja algún comentario.

jueves, 23 de septiembre de 2010

Que el campo Codigo de la OT tome el código del Caso

var OTID = crmForm.ObjectId; //GUID de la Orden de Trabajo.

var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;


// Test the FormType and ObjectId properties.
switch (crmForm.FormType)
{
   case CRM_FORM_TYPE_CREATE:
   {
      //alert("El formulario es de tipo Creación.");
 switch (crmForm.ObjectTypeCode)
 {
  case 10000: //En el caso de que la Entidad sea Orden de Trabajo (10000)
  {
 //alert("Este es un formulario de Orden de Trabajo.");
 //alert(crmForm.all.new_incidentid.DataValue[0].id); //GUID del Caso.
 if (crmForm.all.new_incidentid.DataValue != null && crmForm.all.new_otid.DataValue == null)
 {  var incidentid=crmForm.all.new_incidentid.DataValue[0].id;
 var numeroCaso = recuperarNumeroCaso(incidentid);
 if(numeroCaso != null)
 {  
 //alert(numeroCaso);
 var num = numeroCaso.substring(3,numeroCaso.length); //obtener solamente el numero del caso, quitando el prefijo AYS.
 //alert(num);
 var numeroOT = "OT"+num;
 //alert(numeroOT);
//asignar valor campo numero ot en la entidad Orden de Trabajo.
 crmForm.all.new_otid.DataValue=numeroOT;
 crmForm.all.new_otid.disabled=true;
 }
 }
 break;
  }
 }
      break;
   }
   case CRM_FORM_TYPE_UPDATE:
   {
      //alert("El formulario es de tipo Actualización, el ID del formulario es " + crmForm.ObjectId + ".");
 crmForm.all.new_otid.disabled=true;

  switch (crmForm.ObjectTypeCode)
{
  case 10000: //En el caso de que la Entidad sea Orden de Trabajo (10000)
  {
 //alert("Este es un formulario de Orden de Trabajo.");
 //alert(crmForm.all.new_incidentid.DataValue[0].id); //GUID del Caso.
 if (crmForm.all.new_incidentid.DataValue != null && crmForm.all.new_otid.DataValue == null)
 {  var incidentid=crmForm.all.new_incidentid.DataValue[0].id;
   var numeroCaso = recuperarNumeroCaso(incidentid);
 if(numeroCaso != null)
 {  
 //alert(numeroCaso);
 var num = numeroCaso.substring(3,numeroCaso.length); //obtener solamente el numero del caso, quitando el prefijo AYS.
 //alert(num);
 var numeroOT = "OT"+num;
 //alert(numeroOT);
//asignar valor campo numero ot en la entidad Orden de Trabajo.
 crmForm.all.new_otid.DataValue=numeroOT;
 }
 }
 break;
  }
}
        break;
   }
}

function recuperarNumeroCaso(incidentid)
{
// Preparar variable para recuperar el Caso.
var incid = incidentid;
var authenticationHeader = GenerateAuthenticationHeader();

// Preparar mensaje SOAP.
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>"+
"<Retrieve xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
"<entityName>incident</entityName>"+
"<id>"+incid+"</id>"+
"<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'>"+
"<q1:Attributes>"+
"<q1:Attribute>ticketnumber</q1:Attribute>"+
"</q1:Attributes>"+
"</columnSet>"+
"</Retrieve>"+
"</soap:Body>"+
"</soap:Envelope>";
// Preparar ele xmlHttpObject and send the request.
var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xHReq.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Retrieve");
xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xHReq.setRequestHeader("Content-Length", xml.length);
xHReq.send(xml);
// Captura del resultado
var resultXml = xHReq.responseXML;

// Validar errores.
var errorCount = resultXml.selectNodes('//error').length;
if (errorCount != 0)
{
var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
alert(msg);
}
// Retornar el valor recuperado.
else
{
return (resultXml.selectSingleNode("//q1:ticketnumber").nodeTypedValue);
}


}

No hay comentarios:

Publicar un comentario