var totalNotes = getTotalNotes(crmForm.ObjectId); setNoteTabName(totalNotes); function setNoteTabName(count) { /* update note tab */ if (crmForm.FormType != 1) { var cells = document.getElementsByTagName("A"); for (var i = 0; i < cells.length; i++) { if (cells[i].innerText == "Notes") { if (count > 0) { cells[i].innerText = "Notes (" + count + ")"; document.all.crmTabBar.style.width = "auto"; } break; } } } } // Helper method to return the total notes associated with an object function getTotalNotes(objectId) { // Define SOAP message 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>", "<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>annotation</q1:EntityName>", "<q1:ColumnSet xsi:type=\"q1:ColumnSet\"><q1:Attributes><q1:Attribute>createdon</q1:Attribute></q1:Attributes></q1:ColumnSet>", "<q1:Distinct>false</q1:Distinct><q1:Criteria><q1:FilterOperator>And</q1:FilterOperator>", "<q1:Conditions><q1:Condition><q1:AttributeName>objectid</q1:AttributeName><q1:Operator>Equal</q1:Operator>", "<q1:Values><q1:Value xsi:type=\"xsd:string\">", objectId, "</q1:Value></q1:Values></q1:Condition></q1:Conditions></q1:Criteria>", "</query>", "</RetrieveMultiple>", "</soap:Body>", "</soap:Envelope>" ].join(""); var resultXml = executeSoapRequest("RetrieveMultiple", xml); return getMultipleNodeCount(resultXml, "q1:createdon"); } // Helper method to execute a SOAP request function executeSoapRequest(action, xml) { var actionUrl = "http://schemas.microsoft.com/crm/2007/WebServices/"; actionUrl += action; var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false); xmlHttpRequest.setRequestHeader("SOAPAction", actionUrl); xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); xmlHttpRequest.setRequestHeader("Content-Length", xml.length); xmlHttpRequest.send(xml); var resultXml = xmlHttpRequest.responseXML; return resultXml; } // Helper method to return total # of nodes from XML function getMultipleNodeCount(tree, el) { var e = null; e = tree.getElementsByTagName(el); return e.length; }
Search
Wednesday, January 19, 2011
Showing Number of Notes on Notes Tab
Subscribe to:
Posts (Atom)