Today I face some issue using date attribute with soap xml.
Below I am describing how I resolve issue and check date between two existing dates
Getting Date values using Soap XML
Below I am describing how I resolve issue and check date between two existing dates
Getting Date values using Soap XML
function serviceDate() { var lookupObject = Xrm.Page.getAttribute("pms_timesheet"); if (lookupObject != null) { var lookUpObjectValue = lookupObject.getValue(); if (lookUpObjectValue != null) { var fieldID = lookUpObjectValue[0].name; 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'>" + Xrm.Page.context.getAuthenticationHeader() + "<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>pms_timesheetperiod</q1:EntityName>" + "<q1:ColumnSet xsi:type='q1:ColumnSet'>" + "<q1:Attributes>" + "<q1:Attribute>pms_startdate</q1:Attribute>" + "<q1:Attribute>pms_enddate</q1:Attribute>" + "</q1:Attributes>" + "</q1:ColumnSet>" + "<q1:Distinct>false</q1:Distinct>" + "<q1:Criteria>" + "<q1:FilterOperator>And</q1:FilterOperator>" + "<q1:Conditions>" + "<q1:Condition>" + "<q1:AttributeName>pms_name</q1:AttributeName>" + "<q1:Operator>Equal</q1:Operator>" + "<q1:Values>" + "<q1:Value xsi:type='xsd:string'>" + fieldID + "</q1:Value>" + "</q1:Values>" + "</q1:Condition>" + "</q1:Conditions>" + "</q1:Criteria>" + "</query>" + "</RetrieveMultiple>" + "</soap:Body>" + "</soap:Envelope>"; // Prepare the 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/RetrieveMultiple"); xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); xHReq.setRequestHeader("Content-Length", xml.length); xHReq.send(xml); // Capture the result. var resultXml = xHReq.responseXML; var ServiceDate = Xrm.Page.data.entity.attributes.get("pms_servicedate"); var serdate = ServiceDate.getValue(); if (resultXml.selectSingleNode("//q1:pms_startdate") != null) { if (resultXml.selectSingleNode("//q1:pms_enddate") != null) { var stdate = resultXml.selectSingleNode("//q1:pms_startdate").text; var st1date = FormatCRMdate(stdate); var eddate = resultXml.selectSingleNode("//q1:pms_enddate").text; var ed1date = FormatCRMdate(eddate); var fserdate = formatDate(serdate, 'MM/dd/y'); var fst1date = formatDate(st1date, 'MM/dd/y'); var fed1date = formatDate(ed1date, 'MM/dd/y'); if (fserdate >= fst1date && fserdate <= fed1date) { alert("lies between start and end date"); } else { alert("Not Lies between start and end date"); var today = new Date(); var todayDate = new Date(today.setDate(today.getDate())); ServiceDate.setValue(todayDate); } } } } } }function to change date object value into UTC Date
function FormatCRMdate(_date) { var firstpart = _date.split('T')[0]; var secondpart = _date.split('T')[1].split('+')[0]; var parts = firstpart.split('-'); var parts2 = secondpart.split(':') var modifiedon = new Date(); modifiedon.setYear(parts[0]); modifiedon.setMonth(parts[1] - 1); modifiedon.setDate(parts[2]); modifiedon.setHours(parts2[0]); modifiedon.setMinutes(parts2[1]); modifiedon.setSeconds(parts2[2]); //alert(modifiedon); return modifiedon; }Function to change format of date
var MONTH_NAMES = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); var DAY_NAMES = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); function LZ(x) { return (x < 0 || x > 9 ? "" : "0") + x } function formatDate(date, format) { format = format + ""; var result = ""; var i_format = 0; var c = ""; var token = ""; var y = date.getYear() + ""; var M = date.getMonth() + 1; var d = date.getDate(); var E = date.getDay(); var H = date.getHours(); var m = date.getMinutes(); var s = date.getSeconds(); var yyyy, yy, MMM, MM, dd, hh, h, mm, ss, ampm, HH, H, KK, K, kk, k; // Convert real date parts into formatted versions var value = new Object(); if (y.length < 4) { y = "" + (y - 0 + 1900); } value["y"] = "" + y; value["yyyy"] = y; value["yy"] = y.substring(2, 4); value["M"] = M; value["MM"] = LZ(M); value["MMM"] = MONTH_NAMES[M - 1]; value["NNN"] = MONTH_NAMES[M + 11]; value["d"] = d; value["dd"] = LZ(d); value["E"] = DAY_NAMES[E + 7]; value["EE"] = DAY_NAMES[E]; value["H"] = H; value["HH"] = LZ(h); if (H == 0) { value["h"] = 12; } else if (H > 12) { value["h"] = H - 12; } else { value["h"] = H; } value["hh"] = LZ(value["h"]); if (H > 11) { value["K"] = H - 12; } else { value["K"] = H; } value["k"] = H + 1; value["KK"] = LZ(value["K"]); value["kk"] = LZ(value["k"]); if (H > 11) { value["a"] = "PM"; } else { value["a"] = "AM"; } value["m"] = m; value["mm"] = LZ(e); value["s"] = s; value["ss"] = LZ(s); while (i_format < format.length) { c = format.charAt(i_format); token = ""; while ((format.charAt(i_format) == c) && (i_format < format.length)) { token += format.charAt(i_format++); } if (value[token] != null) { result = result + value[token]; } else { result = result + token; } } return result; }
No comments:
Post a Comment