Господа убил все выходные не смог разобраться что не так с этим кодом.
Вроде все поменял как надо на salesorder и на salesorderdetail. Письмо открывается а описание не вставляется.
Вот код в ISV
Код:
var url = '/' + ORG_UNIQUE_NAME + '/activities/email/edit.aspx?pId=' + crmForm.ObjectId + '&pType='+crmForm.ObjectTypeCode+ '&pName=' + crmForm.all.name.DataValue + '&FillWithSalesOrderDetails=1'; window.open(url);
Вот кот на e-mail
Код:
function InsertDescription()
{
var descrFrame = document.getElementById('descriptionIFrame');
if(descrFrame.readyState != 'Complete')
return;
var salesorderid = '';
if (crmForm.all.regardingobjectid.DataValue != null && crmForm.all.regardingobjectid.DataValue[0] != null)
salesorderid = crmForm.all.regardingobjectid.DataValue[0].id;
else
return;
var textbody = "sрошу выставить счет по данным продуктам:";
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'>"+
GenerateAuthenticationHeader()+
"<soap:Body>"+
"<Fetch xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
"<fetchXml><fetch mapping='logical'>"+
"<entity name='SalesOrderDetail'>"+
"<attribute name='productdescription'/>"+
"<attribute name='quantity'/>"+
"<attribute name='productid'/>"+
"<attribute name='uomid'/>"+
"<filter type='and'>"+
"<condition attribute='SalesOrderid' operator='eq' value='" + salesorderid + "'/>"+
"</filter>"+
"</entity>"+
"</fetch></fetchXml>"+
"</Fetch>"+
"</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/Fetch");
xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xHReq.setRequestHeader("Content-Length", xml.length);
xHReq.send(xml);
var resultXml = xHReq.responseXML;
var resultSet = resultXml.text;
resultSet.replace('<','<');
resultSet.replace('>','>');
var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
oXmlDoc.async = false;
oXmlDoc.loadXML(resultSet);
var results = oXmlDoc.getElementsByTagName('result');
//debugger;
for (var i=0; i < results.length;i++)
{
textbody = textbody + "<br/>"+
(results[i].selectSingleNode('./productid') == null ? "" : results[i].selectSingleNode('./productid').getAttribute('name')) +
" " + (results[i].selectSingleNode('./productdescription') == null ? "" : results[i].selectSingleNode('./productdescription').nodeTypedValue)
+
" в количестве " + (results[i].selectSingleNode('./quantity') == null ? "" : results[i].selectSingleNode('./quantity').nodeTypedValue) +
" " + (results[i].selectSingleNode('./uomid') == null ? "" : results[i].selectSingleNode('./uomid').getAttribute('name'));
}
var descrWindow = document.frames['descriptionIFrame'];
descrWindow.document.body.innerHTML = textbody;
}
if (crmForm.FormType == 1 && window.location.href.indexOf('FillWithSalesOrderDetails=1') != -1)
{
var descrFrame = document.getElementById('descriptionIFrame');
descrFrame.attachEvent('onreadystatechange',InsertDescription);
}
Гляньте своим зорким глазом. что может быть не так. Могут быть проблемы из-за того что у меня русская локализация?