I was wondering if someone could tell me what purpose subjects have in relation to knowledge management? I understand that they are used as a way to categorize products and services, however do the subjects have any functionality outside of simply 'categorizing' an article in knowledge management? Does the subject play a role in searches, reports etc?
Subject Tree for Knowledge Management
Email Message Entity Created By Field
Does anyone knows what is the behavior of the Created By Field in Email Message Entity?
The scenario is:
User 1 - Sys Admin Role
User 2 - Sys Admin Role
User 3 - Sys Admin Role
User 1 sent an email using CRM to User 2
Checking the records in the advance find
the owner and created by is set to User 1 and has a status reason of sent
after that, there is another record created the owner is set to User 2 and has the status reason of received but the created by is set to someone that is not involved in the email which is User 3.
field value changes after saving.
I am facing a problem with crm forms as when i change the field "imc_totalweight" value from 50 to any other value the calculation of freight is done and after saving the calculations -the number changes back to 50 but the freight calulations are accurate according to the another inserted values.
here is my javascript code:
function launchQuoteDetailsReport() {
var rdlName = "QuoteSalesDetailsParentReport.rdl";
var reportGuid = "828227c6-c644-e211-8f68-000c295e2404";
var entityGuid = Xrm.Page.data.entity.getId();
var entityType = "1084";
var serverUrl = Xrm.Page.context.getClientUrl();
var organizationName = Xrm.Page.context.getOrgUniqueName();
var link = serverUrl + "/crmreports/viewer/viewer.aspx?action=run&context=records&helpID=" + rdlName + "&id={" + reportGuid + "}&records=" + entityGuid + "&recordstype=" + entityType;
openStdDlg(link, null, 800, 600, true, false, null);
}
function Form_onload() {
if (Xrm.Page.ui.getFormType() == 1) {
Xrm.Page.getAttribute("effectivefrom").setValue(new Date);
Xrm.Page.getAttribute("effectivefrom").fireOnChange();
}
Xrm.Page.ui.tabs.get(4).setVisible(false);
if (Xrm.Page.ui.getFormType() == 1 || Xrm.Page.ui.getFormType() == 2) {
var mydate = new Date;
Xrm.Page.getAttribute("imc_timestamp").setValue(mydate);
}
}
function Form_onsave() {
if (Xrm.Page.ui.getFormType() == 1 || Xrm.Page.ui.getFormType() == 2) {
Xrm.Page.getAttribute("imc_calculatefreight").setSubmitMode("always");
Xrm.Page.getAttribute("imc_timestamp").setSubmitMode("always");
}
}
function imc_calculatefreight_onchange() {
var calcFreight = Xrm.Page.getAttribute("imc_calculatefreight").getValue();
if (calcFreight == true) {
var URL = "http://www.example.com";
var zipcode = Xrm.Page.getAttribute("shipto_postalcode").getValue();
var weight = Xrm.Page.getAttribute("imc_totalweight").getValue();
var origin = "63044";
var p = Xrm.Page.getAttribute("imc_shippingfrom").getValue();
if (p == "3") {
origin = "62035";
}
if (p == "2") {
origin = "44146";
}
if (p == "4") {
origin = "92553";
}
if (p == "5") {
origin = "21230";
}
if (p == "100000000") {
origin = "32060";
}
if (p == "100000001") {
origin = "84401";
}
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load(URL + "&origin=" + origin + "&dest=" + zipcode + "&weight1=" + weight);
var error = xmlDoc.getElementsByTagName("error").item(0).text;
var strfreight = xmlDoc.getElementsByTagName("netcharges").item(0).text;
var intdays = xmlDoc.getElementsByTagName("days").item(0).text;
if (error != "") {
alert("Error ocurred retrieving freight cost:\n\n" + error);
Xrm.Page.getAttribute("freightamount").setValue(null);
Xrm.Page.getAttribute("imc_days").setValue(null);
} else {
if (freight != "") {
var freight = strfreight.replace(/\$|,/g, "");
freight = freight * 1.2 + 70.00;
Xrm.Page.getAttribute("freightamount").setValue(parseFloat(freight));
Xrm.Page.getAttribute("imc_days").setValue(parseInt(intdays));
}
}
}
}
function effectivefrom_onchange() {
var start_date = Xrm.Page.getAttribute("effectivefrom").getValue();
var end_date = Xrm.Page.getAttribute("effectiveto");
if (start_date != null && start_date != "") {
var sd_yy = start_date.getYear();
var sd_mm = start_date.getMonth();
var sd_dd = start_date.getDate();
var new_date = start_date.setMonth(start_date.getMonth() + 1);
end_date.setValue(new_date);
}
}
function billto_telephone_onchange() {
var oPhone = Xrm.Page.getAttribute("billto_telephone");
var isError = "false";
var isExtension = "false";
var vPhone = oPhone.getValue();
var rString = /[\(\)\-\. ]/g;
vPhone = vPhone.replace(rString, "");
vPhone = vPhone.replace("ext", "x");
vPhone = vPhone.replace("EXT", "x");
vPhone = vPhone.substring(0, 1) == "1" ? vPhone.substring(1, vPhone.length) : vPhone;
if (vPhone.length < 10) {
isError = "true";
} else {
var vPhone1 = vPhone.substr(0, 3);
var vPhone2 = vPhone.substr(3, 3);
var vPhone3 = vPhone.substr(6);
if (vPhone3.indexOf("x") > 0) {
isExtension = "true";
var vPhone4 = vPhone3.substr(vPhone3.indexOf("x") + 1);
vPhone3 = vPhone3.substr(0, vPhone3.indexOf("x"));
}
}
if (isError == "true" || isNaN(Math.abs(vPhone1)) || isNaN(Math.abs(vPhone2)) || (isNaN(Math.abs(vPhone3)) || vPhone3.length != 4) || isExtension == "true" && (isNaN(Math.abs(vPhone4)) || vPhone4.length > 5)) {
alert("The Phone number entered is not a valid phone number, the phone number must be 10 digits." + "\n\nThe valid format for phone numbers is (234) 567-8901 or with an extension" + "\nthe valid format is (234) 567-8901 x1234." + "\n\nExamples of valid phone numbers, which will get automatically formatted, are:" + "\n\t2345678901 \t2345678901 x1234" + "\n\t234.567.8901 \t234.567.8901 ext 1234" + "\n\t(234)567-8901\t(234)567-8901 EXT1234" + "\n\nPlease reenter the phone number in one of the above formats.\n\n");
oPhone.SetFocus();
event.returnValue = false;
return;
}
oPhone.setValue("(" + vPhone1 + ") " + vPhone2 + "-" + vPhone3 + (isExtension == "true" ? " x" + vPhone4 : ""));
}
function billto_fax_onchange() {
var oPhone = Xrm.Page.getAttribute("billto_fax");
var isError = "false";
var isExtension = "false";
var vPhone = oPhone.getValue();
var rString = /[\(\)\-\. ]/g;
vPhone = vPhone.replace(rString, "");
vPhone = vPhone.replace("ext", "x");
vPhone = vPhone.replace("EXT", "x");
vPhone = vPhone.substring(0, 1) == "1" ? vPhone.substring(1, vPhone.length) : vPhone;
if (vPhone.length < 10) {
isError = "true";
} else {
var vPhone1 = vPhone.substr(0, 3);
var vPhone2 = vPhone.substr(3, 3);
var vPhone3 = vPhone.substr(6);
if (vPhone3.indexOf("x") > 0) {
isExtension = "true";
var vPhone4 = vPhone3.substr(vPhone3.indexOf("x") + 1);
vPhone3 = vPhone3.substr(0, vPhone3.indexOf("x"));
}
}
if (isError == "true" || isNaN(Math.abs(vPhone1)) || isNaN(Math.abs(vPhone2)) || (isNaN(Math.abs(vPhone3)) || vPhone3.length != 4) || isExtension == "true" && (isNaN(Math.abs(vPhone4)) || vPhone4.length > 5)) {
alert("The Fax number entered is not a valid phone number, the phone number must be 10 digits." + "\n\nThe valid format for phone numbers is (234) 567-8901 or with an extension" + "\nthe valid format is (234) 567-8901 x1234." + "\n\nExamples of valid phone numbers, which will get automatically formatted, are:" + "\n\t2345678901 \t2345678901 x1234" + "\n\t234.567.8901 \t234.567.8901 ext 1234" + "\n\t(234)567-8901\t(234)567-8901 EXT1234" + "\n\nPlease reenter the phone number in one of the above formats.\n\n");
oPhone.SetFocus();
event.returnValue = false;
return;
}
oPhone.setValue("(" + vPhone1 + ") " + vPhone2 + "-" + vPhone3 + (isExtension == "true" ? " x" + vPhone4 : ""));
}
function shipto_telephone_onchange() {
var oPhone = Xrm.Page.getAttribute("shipto_telephone");
var isError = "false";
var isExtension = "false";
var vPhone = oPhone.getValue();
var rString = /[\(\)\-\. ]/g;
vPhone = vPhone.replace(rString, "");
vPhone = vPhone.replace("ext", "x");
vPhone = vPhone.replace("EXT", "x");
vPhone = vPhone.substring(0, 1) == "1" ? vPhone.substring(1, vPhone.length) : vPhone;
if (vPhone.length < 10) {
isError = "true";
} else {
var vPhone1 = vPhone.substr(0, 3);
var vPhone2 = vPhone.substr(3, 3);
var vPhone3 = vPhone.substr(6);
if (vPhone3.indexOf("x") > 0) {
isExtension = "true";
var vPhone4 = vPhone3.substr(vPhone3.indexOf("x") + 1);
vPhone3 = vPhone3.substr(0, vPhone3.indexOf("x"));
}
}
if (isError == "true" || isNaN(Math.abs(vPhone1)) || isNaN(Math.abs(vPhone2)) || (isNaN(Math.abs(vPhone3)) || vPhone3.length != 4) || isExtension == "true" && (isNaN(Math.abs(vPhone4)) || vPhone4.length > 5)) {
alert("The Phone number entered is not a valid phone number, the phone number must be 10 digits." + "\n\nThe valid format for phone numbers is (234) 567-8901 or with an extension" + "\nthe valid format is (234) 567-8901 x1234." + "\n\nExamples of valid phone numbers, which will get automatically formatted, are:" + "\n\t2345678901 \t2345678901 x1234" + "\n\t234.567.8901 \t234.567.8901 ext 1234" + "\n\t(234)567-8901\t(234)567-8901 EXT1234" + "\n\nPlease reenter the phone number in one of the above formats.\n\n");
oPhone.SetFocus();
event.returnValue = false;
return;
}
oPhone.setValue("(" + vPhone1 + ") " + vPhone2 + "-" + vPhone3 + (isExtension == "true" ? " x" + vPhone4 : ""));
}
function shipto_fax_onchange() {
var oPhone = Xrm.Page.getAttribute("shipto_fax");
var isError = "false";
var isExtension = "false";
var vPhone = oPhone.getValue();
var rString = /[\(\)\-\. ]/g;
vPhone = vPhone.replace(rString, "");
vPhone = vPhone.replace("ext", "x");
vPhone = vPhone.replace("EXT", "x");
vPhone = vPhone.substring(0, 1) == "1" ? vPhone.substring(1, vPhone.length) : vPhone;
if (vPhone.length < 10) {
isError = "true";
} else {
var vPhone1 = vPhone.substr(0, 3);
var vPhone2 = vPhone.substr(3, 3);
var vPhone3 = vPhone.substr(6);
if (vPhone3.indexOf("x") > 0) {
isExtension = "true";
var vPhone4 = vPhone3.substr(vPhone3.indexOf("x") + 1);
vPhone3 = vPhone3.substr(0, vPhone3.indexOf("x"));
}
}
if (isError == "true" || isNaN(Math.abs(vPhone1)) || isNaN(Math.abs(vPhone2)) || (isNaN(Math.abs(vPhone3)) || vPhone3.length != 4) || isExtension == "true" && (isNaN(Math.abs(vPhone4)) || vPhone4.length > 5)) {
alert("The Fax number entered is not a valid phone number, the phone number must be 10 digits." + "\n\nThe valid format for phone numbers is (234) 567-8901 or with an extension" + "\nthe valid format is (234) 567-8901 x1234." + "\n\nExamples of valid phone numbers, which will get automatically formatted, are:" + "\n\t2345678901 \t2345678901 x1234" + "\n\t234.567.8901 \t234.567.8901 ext 1234" + "\n\t(234)567-8901\t(234)567-8901 EXT1234" + "\n\nPlease reenter the phone number in one of the above formats.\n\n");
oPhone.SetFocus();
event.returnValue = false;
return;
}
oPhone.setValue("(" + vPhone1 + ") " + vPhone2 + "-" + vPhone3 + (isExtension == "true" ? " x" + vPhone4 : ""));
}
;
function launchQuoteDetailsReport() { var rdlName = "QuoteSalesDetailsParentReport.rdl"; var reportGuid = "828227c6-c644-e211-8f68-000c295e2404"; var entityGuid = Xrm.Page.data.entity.getId(); var entityType = "1084"; //var serverUrl = Xrm.Page.context.getServerUrl(); var serverUrl = Xrm.Page.context.getClientUrl(); var organizationName = Xrm.Page.context.getOrgUniqueName(); var link = serverUrl + "/crmreports/viewer/viewer.aspx?action=run&context=records&helpID=" + rdlName + "&id={" + reportGuid + "}&records=" + entityGuid + "&recordstype=" + entityType; openStdDlg(link, null, 800, 600, true, false, null);}function Form_onload(){if (Xrm.Page.ui.getFormType() == 1) { Xrm.Page.getAttribute("effectivefrom").setValue(new Date()); Xrm.Page.getAttribute("effectivefrom").fireOnChange(); //window.top.document.getElementById('quote|NoRelationship|Form|Mscrm.Form.quote.PrintQuoteDetails.Button-//Large').disabled = true; } //hiding the notes tab Xrm.Page.ui.tabs.get(4).setVisible(false); //Adds Calculate Freight button. Created by RN, Quilogy if (Xrm.Page.ui.getFormType() == 1 || Xrm.Page.ui.getFormType() == 2) { var mydate = new Date(); Xrm.Page.getAttribute("imc_timestamp").setValue(mydate); } //if (Xrm.Page.context.isOutlookClientOnline()) //{ //var str = "<input type=button value='Calculate Freight' onClick='crmForm.all.imc_calculatefreight.FireOnChange()')>"; //Xrm.Page.getAttribute("imc_calculatefreight").setValue(false); //Xrm.Page.getAttribute("imc_calculatefreight_c").setValue(str); //Xrm.Page.getControl("imc_calculatefreight_d").setVisible(false); //} //else //{ //Xrm.Page.getControl("imc_calculatefreight_c").setVisible(false); //Xrm.Page.getControl("imc_calculatefreight_d").setVisible(false); //} ////Xrm.Page.getControl("totallineitemamount_c").setVisible(false); ////Xrm.Page.getControl("totallineitemamount_d").setVisible(false); ////Xrm.Page.getControl("totalamountlessfreight_c").setVisible(false); ////Xrm.Page.getControl("totalamountlessfreight_d").setVisible(false);}
function Form_onsave(){if (Xrm.Page.ui.getFormType() == 1 || Xrm.Page.ui.getFormType() == 2){Xrm.Page.getAttribute("imc_calculatefreight").setSubmitMode("always");Xrm.Page.getAttribute("imc_timestamp").setSubmitMode("always");}/*//Following is Disabled. This is being calculated from Callout. 2009-06-17 RNepal//HLuo code belowif (Xrm.Page.ui.getFormType() !=3 && Xrm.Page.ui.getFormType() != 4){var taxexempt = Xrm.Page.getAttribute("imc_taxexempt").getValue();var state = Xrm.Page.getAttribute("shipto_stateorprovince").getValue();var totalamountlessfreight = Xrm.Page.getAttribute("totalamountlessfreight").getValue();var freightamount=Xrm.Page.getAttribute("freightamount").getValue();alert(taxexempt);alert(totalamountlessfreight); var statetaxrate;if (totalamountlessfreight!=null){ if ((state == "MO" || state == "mo" || state == "Mo") && (taxexempt != true)) { statetaxrate = 6.925; } if ((state == "IL" || state == "il" || state == "Il") && (taxexempt != true)) { statetaxrate = 6.85; } if ((state == "OH" || state == "oh" || state == "Oh") && (taxexempt != true)) { statetaxrate = 7.75; } // Added by Shrijan (EvolvIT), if needed to open this in the future for some reason. // CA and NC - 06/03/2013 // MD - 10/16/2013 if ((state == "CA" || state == "ca" || state == "Ca") && (taxexempt != true)) { statetaxrate = 7.75; } if ((state == "NC" || state == "nc" || state == "Nc") && (taxexempt != true)) { statetaxrate = 6.75; } if ((state == "MD" || state == "md" || state == "Md") && (taxexempt != true)) { statetaxrate = 6.00; }if ((state == "FL" || state == "fl" || state == "Fl") && (taxexempt != true)) { statetaxrate = 7.00; }if ((state == "UT" || state == "ut" || state == "Ut") && (taxexempt != true)) { statetaxrate = 6.50; } if (statetaxrate != null && taxexempt != true){ Xrm.Page.getAttribute("imc_totaltax").setValue(Math.round(totalamountlessfreight*statetaxrate )/100); Xrm.Page.getAttribute("imc_totaltax").setSubmitMode("always"); Xrm.Page.getAttribute("imc_totalamount").setValue(totalamountlessfreight+freightamount+Xrm.Page.getAttribute("imc_totaltax").getValue() ); Xrm.Page.getAttribute("imc_totalamount").setSubmitMode("always"); } else { Xrm.Page.getAttribute("imc_totaltax").getValue() =0; Xrm.Page.getAttribute("imc_totaltax").setSubmitMode("always"); Xrm.Page.getAttribute("imc_totalamount").setValue(totalamountlessfreight +freightamount ); Xrm.Page.getAttribute("imc_totalamount").setSubmitMode("always"); }}}//End HLuo code */}function imc_calculatefreight_onchange(){//Calculates Freight. Created by RN, Quilogy//Modified on 2009-02-18 to include shipping from// 02/11/2017 - SRDvar calcFreight = Xrm.Page.getAttribute("imc_calculatefreight").getValue();
if (calcFreight == true){var URL = "www.rlcarriers.com/b2brateparam.asp;class1=50";var zipcode = Xrm.Page.getAttribute("shipto_postalcode").getValue();var weight = Xrm.Page.getAttribute("imc_totalweight").getValue();var origin = "63044";var p = Xrm.Page.getAttribute("imc_shippingfrom").getValue();//Godfrey, Illinoisif (p == "3") origin = "62035";//Walton Hills, Ohio (Cleveland, OH)if (p == "2") origin = "44146";// Added by Shrijan (EvolvIT)// CA - 06/03/2013// MD - 10/16/2013//Moreno Valley, Californiaif (p == "4") origin = "92553";// Baltimore, MDif (p == "5") origin = "21230";//Live Oak, FLif (p == "100000000") origin = "32060";//Live Ogden, UTif (p == "100000001") origin = "84401";var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async = false;xmlDoc.load(URL + "&origin=" + origin + "&dest=" + zipcode + "&weight1=" + weight);var error = xmlDoc.getElementsByTagName("error").item(0).text;var strfreight = xmlDoc.getElementsByTagName("netcharges").item(0).text;var intdays = xmlDoc.getElementsByTagName("days").item(0).text;if (error != ""){alert('Error ocurred retrieving freight cost:\n\n' + error);Xrm.Page.getAttribute("freightamount").setValue(null);Xrm.Page.getAttribute("imc_days").setValue(null);}else if (freight != ""){var freight = strfreight.replace(/\$|,/g, "");freight = (freight * 1.2) + 70.00;Xrm.Page.getAttribute("freightamount").setValue(parseFloat(freight));Xrm.Page.getAttribute("imc_days").setValue(parseInt(intdays));}}
}function effectivefrom_onchange(){//Calculates one date field with a date x many days into the future. var start_date = Xrm.Page.getAttribute("effectivefrom").getValue();var end_date = Xrm.Page.getAttribute("effectiveto");if ((start_date != null) && (start_date != "")){var sd_yy = start_date.getYear();var sd_mm = start_date.getMonth();var sd_dd = start_date.getDate();
//var new_date = new Date(sd_yy, sd_mm, sd_dd + 30);//var new_date = new Date(sd_yy, sd_mm+1, sd_dd);var new_date = start_date.setMonth(start_date.getMonth()+1);end_date.setValue(new_date);}}function billto_telephone_onchange(){// Declare Variablesvar oPhone = Xrm.Page.getAttribute("billto_telephone");var isError = "false";var isExtension = "false";var vPhone = oPhone.getValue();var rString = /[\(\)\-\.\ ]/g;// Remove special charactersvPhone = vPhone.replace(rString, "");vPhone = vPhone.replace("ext", "x");vPhone = vPhone.replace("EXT", "x");// Validate Phone Number is at least 10 digitsvPhone = ((vPhone.substring(0, 1) == "1") ? vPhone.substring(1, vPhone.length) : vPhone);if (vPhone.length < 10){isError = "true";}else{// Parse out the Phone Numbervar vPhone1 = vPhone.substr(0, 3);var vPhone2 = vPhone.substr(3, 3);var vPhone3 = vPhone.substr(6);if (vPhone3.indexOf("x") > 0){isExtension = "true";var vPhone4 = vPhone3.substr(vPhone3.indexOf("x") + 1);vPhone3 = vPhone3.substr(0, vPhone3.indexOf("x"));}}// Makes sure the values are numericif ((isError == "true") || isNaN(Math.abs(vPhone1)) || isNaN(Math.abs(vPhone2)) || (isNaN(Math.abs(vPhone3)) ||(vPhone3.length != 4)) || ((isExtension == "true") && (isNaN(Math.abs(vPhone4)) || (vPhone4.length > 5)) )){alert("The Phone number entered is not a valid phone number, the phone number must be 10 digits." +"\n\nThe valid format for phone numbers is (234) 567-8901 or with an extension" + "\nthe valid format is (234) 567-8901 x1234." + "\n\nExamples of valid phone numbers, which will get automatically formatted, are:" +"\n\t2345678901 \t2345678901 x1234" +"\n\t234.567.8901 \t234.567.8901 ext 1234" +"\n\t(234)567-8901\t(234)567-8901 EXT1234" +"\n\nPlease reenter the phone number in one of the above formats.\n\n");//oPhone.setValue(null);oPhone.SetFocus();event.returnValue = false;return;}oPhone.setValue("(" + vPhone1 + ") " + vPhone2 + "-" + vPhone3 + ((isExtension == "true") ? " x" + vPhone4 : ""));}
function billto_fax_onchange(){// Declare Variablesvar oPhone = Xrm.Page.getAttribute("billto_fax");var isError = "false";var isExtension = "false";var vPhone = oPhone.getValue();var rString = /[\(\)\-\.\ ]/g;// Remove special charactersvPhone = vPhone.replace(rString, "");vPhone = vPhone.replace("ext", "x");vPhone = vPhone.replace("EXT", "x");// Validate Phone Number is at least 10 digitsvPhone = ((vPhone.substring(0, 1) == "1") ? vPhone.substring(1, vPhone.length) : vPhone);if (vPhone.length < 10){isError = "true";}else{// Parse out the Phone Numbervar vPhone1 = vPhone.substr(0, 3);var vPhone2 = vPhone.substr(3, 3);var vPhone3 = vPhone.substr(6);if (vPhone3.indexOf("x") > 0){isExtension = "true";var vPhone4 = vPhone3.substr(vPhone3.indexOf("x") + 1);vPhone3 = vPhone3.substr(0, vPhone3.indexOf("x"));}}// Makes sure the values are numericif ((isError == "true") || isNaN(Math.abs(vPhone1)) || isNaN(Math.abs(vPhone2)) || (isNaN(Math.abs(vPhone3)) ||(vPhone3.length != 4)) || ((isExtension == "true") && (isNaN(Math.abs(vPhone4)) || (vPhone4.length > 5)) )){alert("The Fax number entered is not a valid phone number, the phone number must be 10 digits." +"\n\nThe valid format for phone numbers is (234) 567-8901 or with an extension" + "\nthe valid format is (234) 567-8901 x1234." + "\n\nExamples of valid phone numbers, which will get automatically formatted, are:" +"\n\t2345678901 \t2345678901 x1234" +"\n\t234.567.8901 \t234.567.8901 ext 1234" +"\n\t(234)567-8901\t(234)567-8901 EXT1234" +"\n\nPlease reenter the phone number in one of the above formats.\n\n");//oPhone.setValue(null);oPhone.SetFocus();event.returnValue = false;return;}oPhone.setValue("(" + vPhone1 + ") " + vPhone2 + "-" + vPhone3 + ((isExtension == "true") ? " x" + vPhone4 : ""));}function shipto_telephone_onchange(){// Declare Variablesvar oPhone = Xrm.Page.getAttribute("shipto_telephone");var isError = "false";var isExtension = "false";var vPhone = oPhone.getValue();var rString = /[\(\)\-\.\ ]/g;// Remove special charactersvPhone = vPhone.replace(rString, "");vPhone = vPhone.replace("ext", "x");vPhone = vPhone.replace("EXT", "x");// Validate Phone Number is at least 10 digitsvPhone = ((vPhone.substring(0, 1) == "1") ? vPhone.substring(1, vPhone.length) : vPhone);if (vPhone.length < 10){isError = "true";}else{// Parse out the Phone Numbervar vPhone1 = vPhone.substr(0, 3);var vPhone2 = vPhone.substr(3, 3);var vPhone3 = vPhone.substr(6);if (vPhone3.indexOf("x") > 0){isExtension = "true";var vPhone4 = vPhone3.substr(vPhone3.indexOf("x") + 1);vPhone3 = vPhone3.substr(0, vPhone3.indexOf("x"));}}// Makes sure the values are numericif ((isError == "true") || isNaN(Math.abs(vPhone1)) || isNaN(Math.abs(vPhone2)) || (isNaN(Math.abs(vPhone3)) ||(vPhone3.length != 4)) || ((isExtension == "true") && (isNaN(Math.abs(vPhone4)) || (vPhone4.length > 5)) )){alert("The Phone number entered is not a valid phone number, the phone number must be 10 digits." +"\n\nThe valid format for phone numbers is (234) 567-8901 or with an extension" + "\nthe valid format is (234) 567-8901 x1234." + "\n\nExamples of valid phone numbers, which will get automatically formatted, are:" +"\n\t2345678901 \t2345678901 x1234" +"\n\t234.567.8901 \t234.567.8901 ext 1234" +"\n\t(234)567-8901\t(234)567-8901 EXT1234" +"\n\nPlease reenter the phone number in one of the above formats.\n\n");//oPhone.setValue(null);oPhone.SetFocus();event.returnValue = false;return;}oPhone.setValue("(" + vPhone1 + ") " + vPhone2 + "-" + vPhone3 + ((isExtension == "true") ? " x" + vPhone4 : ""));}function shipto_fax_onchange(){// Declare Variablesvar oPhone = Xrm.Page.getAttribute("shipto_fax");var isError = "false";var isExtension = "false";var vPhone = oPhone.getValue();var rString = /[\(\)\-\.\ ]/g;// Remove special charactersvPhone = vPhone.replace(rString, "");vPhone = vPhone.replace("ext", "x");vPhone = vPhone.replace("EXT", "x");// Validate Phone Number is at least 10 digitsvPhone = ((vPhone.substring(0, 1) == "1") ? vPhone.substring(1, vPhone.length) : vPhone);if (vPhone.length < 10){isError = "true";}else{// Parse out the Phone Numbervar vPhone1 = vPhone.substr(0, 3);var vPhone2 = vPhone.substr(3, 3);var vPhone3 = vPhone.substr(6);if (vPhone3.indexOf("x") > 0){isExtension = "true";var vPhone4 = vPhone3.substr(vPhone3.indexOf("x") + 1);vPhone3 = vPhone3.substr(0, vPhone3.indexOf("x"));}}// Makes sure the values are numericif ((isError == "true") || isNaN(Math.abs(vPhone1)) || isNaN(Math.abs(vPhone2)) || (isNaN(Math.abs(vPhone3)) ||(vPhone3.length != 4)) || ((isExtension == "true") && (isNaN(Math.abs(vPhone4)) || (vPhone4.length > 5)) )){alert("The Fax number entered is not a valid phone number, the phone number must be 10 digits." +"\n\nThe valid format for phone numbers is (234) 567-8901 or with an extension" + "\nthe valid format is (234) 567-8901 x1234." + "\n\nExamples of valid phone numbers, which will get automatically formatted, are:" +"\n\t2345678901 \t2345678901 x1234" +"\n\t234.567.8901 \t234.567.8901 ext 1234" +"\n\t(234)567-8901\t(234)567-8901 EXT1234" +"\n\nPlease reenter the phone number in one of the above formats.\n\n");//oPhone.setValue(null);oPhone.SetFocus();event.returnValue = false;return;}oPhone.setValue("(" + vPhone1 + ") " + vPhone2 + "-" + vPhone3 + ((isExtension == "true") ? " x" + vPhone4 : ""));}
Need help with Delete Record step, currently trying to use msdyncrmWorkflowTools(1.0.5.1.1) but open to suggestions
Need to delete a related record that is stored in an intersect table.
If anyone can help me find a way to be able to delete a record within a workflow I would greatly appreciate it. Here is are the details of the entities, fields, relationships, and workflow steps involved:
Within CONTACTS I have a these custom fields:
"CC1" Text field with Format Email
"Added Email Contact" Lookup field to Added Email Contact entity
I have a custom entity named "Added Email Contact" that has these fields:
"Name" (default)
"Email" (default)
"Linked Contact" Lookup field to Contacts).
I have mapped the Contacts.CC1 to the AddedEmailContact.Email field.
The workflow steps are the following
If Contact:Linked Additional Email does not contain data, then:
If Contact:CC I contains data, then:
Create: Additional Email Contact
Otherwise, if Contact:CC I does not contain data, then:
Get GUID msdyncrmWorkflowTools (I Record ID
Delete Linked Additional Email Contact for CC ImsdyncrmWorkfIowTooIs (I Record
Otherwise, if Contact:Linked Additional Email contains data, then:
If Contact:CC 1 contains data then:
If Contact:CC 1 does not equal [Linked Additional Email (Additional Email Contact):Email Address], then:
Update: Linked Additional Email (Additional Email Contact)
Otherwise, if Contact:CC 1 does not contain data then:
Get GUID msdyncrmWorkflowTools (1.0.51.1):Get Record ID
Delete Linked Additional Email Contact for CC 1msdyncrmWorkflowTools (1.0.51.1):Delete Record
Here are the details on the Delete record step
Property Name | Data Type | Required | Value |
Delete Using Record URL | Two Options | Required | False |
Record URL | Single Line of Text | Optional | {Recors URL(Dynamic)(Linked Additional Email)(Additional Email Contacts)} |
Entity Type Name | Single Line of Text | Optional | clrs additionalemailcontact |
Entity Guid | Single Line of Text | Optional | {Record ID(Get GUID)} |
Error-Creat a new account
CRM 365 "dynamics.com is not responding."
Hello All Experts,
I need to know , why in the browser we are getting this warning.
can anyone help me in this.
Dynamics CRM 2016 on-premise Record Creation and Update Rule
Hi Team,
have anyone experienced Record Creation and Update Rule issue
My issue:
i created more than 10 email Rule for incoming mail for helpdesk
that will create a case and queue then send mail to helpdesk
however, the mails syn into crm from gmail and cases are created regarding to the mail
but my issue is that....some of the mails are in Crm mail but doesn't create case
Any idea for the root of this
Thanks
Fire workflow on change of 1:N relationship
Dear reader,
I'm facing a new challenge on this highly customized environment that I'm working on (2016, on premise).
There is a custom entity called Projects, which is related 1:N to systemuser. In the subgrid on the Project form, the relationship is called something like Project Team.
Now, if anyone wants to remove a user from the Project Team, a simple validation should be done before actually removing it (something like check if there are still unbooked hours that need the relationship to be active until they're really booked).
As far as I know there's no OOTB option to fire off a workflow on change of complex relationships, but obviously I don't know áll assets on the net.
The worst limitation in this quest is that I cannot develop any custom plugins.
Any ideas or directions?
Best regards and thanks for thinking along with me,
Jeroen
Duplicate Records in a Custom Entity
In a Custom Entity when i press "Save" the record is created as many times a press "Save".
Also when i press "Save & Close" the form doesn't close and also creates many records as many times a press "Save & Close".
This happens for all users without administrative rights.
Case Resolution Date and Time (CRM Server)
One of the fears that our customer (using CRM 2015 Service module) has is to manage the case resolution duration as well as date and time the case was closed on. There is an element of trust usually that agents attending will not alter the duration time and date to ensure the closure SLAs are met.
However I would like to know is if there is a way to push the CRM server date and time to the cases being resolved? The purpose being that even if an agent user manages to change his or her client machine's time or date for any reason whatsoever, CRM will still take the server time and date when a case is being closed.
Would appreciate views on this kind of scenario. Thanks :)
How to disable 365 Portal content Editor
Hello everyone,
Could you please anyone guide me for how to disable to the 365 Portal content Editor?
Thanks
Vasanth
Recalculating the Actuals
Hello,
I set up goal-goal metrics and roll up queries with all necessary information except am missing something. At the end, it didnt calculate the actual being and percentage being achieved as shown bellow image .I used the recalculated tab and still yet nothing show up.
Please i need your help to resolve this issue.
Thanks
Dynamics CRM Site is getting very slowness
Hi All,
My dynamic CRM Site is suddenly getting very slow.. I wanted to check what is causing the slowness.
my network(internet speed) is good.. server capacity also good .. It was working good all these days
how to find out what is causing the slow.
Please help me out..
Right click "Field By Field" option is not working properly
Hi All,
On sales order form on header when I right click select "Filter by field" option then the focus is getting back to sales order form's header grid . I mean the focus is not staying on the sysformsearch form field.
What could be the cause?. I tried clearing caches , usage data as well still issue Persists. Where can I debug or Please let me know what could be the fix for this?
Automate switch process when the current one is marked as finished.
I'd like to automate the switch and decide to which process to change according to specific conditions.
Without code.
pass option set value to custom workflow
I'm trying to write a workflow that requires an optionset value to be passed as a required argument
with a string, its easy enough
<RequiredArgument>
<Input("new_Licence")>
Public Property new_Licence() As InArgument(Of String)
Get
Return m_new_Licence
End Get
Set
m_new_Licence = Value
End Set
End Property
Private m_new_Licence As InArgument(Of String)
but I cannot find how to do the same with an option set value
Field values depending on value of other field
Hi,
We have 2 fields on our Lead entity called "Lead Source" and "Lead Catalyst".
Is it possible to make the options of "Lead Catalyst" depending on the "Lead Source" value?
For instance:
If "Lead Source" is "Social Media", "Lead Catalyst" will then have "LinkedIN", "Facebook", "Twitter" etc. as possible values - and only those.
If "Lead Source" is "Web", "Lead Catalyst" will have "Website", "Google" etc.?
We want this to give a better overview, so we don't have all "Catalysts" shown at once.
Thanks!
Create Phone Call Activity for Contact based on contact id using Dynamics Web API
Hi,
Please suggest how to create a phone call activity for a contact based on contact id using Dynamics Web API in ASP.NET Web API.
By passing Entity collection as phone call entity can we create new activity?
Moving dates on appointment - Not syncing this change
Environment Overview
- Dynamics 365 Online (8.2.2.160) and Dynamics 365 for Outlook (not the new Dynamics 365 App for Outlook).
Setup is with Exchange Online and server side synchronization for inbound, outbound and appointments, contacts, tasks status for the users.
- Synchronization Settings are setup to sync Appointment time in both directions
Problem Definition
Synchronized calendar appointment (standard appointment activity type, not recurring) is correctly being created in Exchange and when it is updated to change description or complete the appointment this will sync correctly. We update the date to a new date in Outlook (while appointment is in scheduled status) and this will not reflect in Dynamics 365. Same thing if we go the other way and update in Dynamics 365, it will not update the calendar in Exchange. We can still update the status of the calendar appointment to completed and it will update (either direction) so we know they are still sync'd.
This is a situation we can repeat at will. Can anyone enlighten us?
Thanks much,
Bing Maps and CRM 2013
Hi,
I want to install the update : Bing Maps Ajax upgrade for Microsoft Dynamics CRM 2013 (https://www.microsoft.com/en-us/download/details.aspx?id=55803) but it doesn't work. I've this message when I start the setup : Microsoft Dynamics CRM Server is not installed on this computer.
My server is Windows Server 2012 64 bits in French, CRM is also in French (version 6.1.0.145)
You know a solution for this problem ?
Sorry for my bad english ...