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