Microsoft Dynamics 365 v9.x JavaScript Useful Codes
Execute workflow using javascript
Javascript code to open records in the modal dialog window
Use fetch XML query in JavaScript code
1. Function to Execute all On Load events
function OnLoad(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Sample code for On Load Event
Xrm.Utility.alertDialog("This is an alert for On Load Event.");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
2. Function to Execute all OnSave events
function OnSave(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Sample code for On Save Event
Xrm.Utility.alertDialog("This is an alert for On Save Event.");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
3. Function to Execute Field on Change events , This could be specific to each field
function OnChange(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Sample code for On Change Event
Xrm.Utility.alertDialog("This is an alert for On Change Event.");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
4. Function to Get Lookup ID
function GetLookupId(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get lookup ID here, Give lookup field logical name here
var lookupId = formContext.getAttribute("new_organizationid").getValue()[0].id;
Xrm.Utility.alertDialog(lookupId);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
5. Get Lookup Name
function GetLookupName(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get lookup name here, Give lookup field logical name here
var lookupName = formContext.getAttribute("new_organizationid").getValue()[0].name;
Xrm.Utility.alertDialog(lookupName);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
6. Get the Entity Logical Name
function GetEntityLogicalName(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get entity logical name here, Give lookup field logical name here
var entityName = formContext.getAttribute("new_organizationid").getValue()[0].entityType;
Xrm.Utility.alertDialog(entityName);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
7. Get the text value from Filed
function GetTextValue(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get text value of the field here, Give field logical name here
var textValue = formContext.getAttribute("new_employeebusinessid").getValue();
Xrm.Utility.alertDialog(textValue);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
8.Get the Data base value from Option Set Field
function GetOptionSetDataBaseValue(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get data base value of the option set field here, Give field logical name here
var databaseValue = formContext.getAttribute("new_gender").getValue();
Xrm.Utility.alertDialog(databaseValue);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
9. Get the Option Set text value
function GetOptionSetTextValue(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get text value of the option set field here, Give field logical name here
var optionSetTextValue = formContext.getAttribute("new_gender").getText();
Xrm.Utility.alertDialog(optionSetTextValue);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
10. Get the Data base value from Two Option Set Field
function GetTwoOptionSetDataBaseValue(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get the value of the two option set field here, Give field logical name here
var databaseValue = formContext.getAttribute("new_type").getValue();
Xrm.Utility.alertDialog(databaseValue);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
11. Get the Date Field Value
function GetDateFieldValue(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Getvalue of the field here, Give field logical name here
var dateOfBirth = formContext.getAttribute("new_dateofbirth").getValue();
Xrm.Utility.alertDialog(dateOfBirth);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
12. Get the Date, Month, Year from Date Field Value
function GetDateFieldValues(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get value of the field here, Give field logical name here
var dateOfBirth = formContext.getAttribute("new_dateofbirth").getValue();
//Get Year
Xrm.Utility.alertDialog(dateOfBirth.getFullYear());
//Get Month
Xrm.Utility.alertDialog(dateOfBirth.getMonth());
//Get Date(Day)
Xrm.Utility.alertDialog(dateOfBirth.getDate());
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
13. Set the text value to Text Field
function SetTextFieldValue(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Set the field value here
formContext.getAttribute("new_employeebusinessid").setValue("abcd");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
14. Set the Data base value to Option Set Field
function SetOptionSetDataBaseValue(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Set the field value here
formContext.getAttribute("new_gender").setValue(123456);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
15. Set the Data base value to Two Option Set Field
function SetTwoOptionSetDataBaseValue(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Set the field value here - true
formContext.getAttribute("new_type").setValue(true);
//Set the field value here - false
formContext.getAttribute("new_type").setValue(false);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
16. Set the Date Field Value
function SetDateFieldValue(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get the current Date
var dateOfBirth = new Date();
//Set the Current Date to date field
formContext.getAttribute("new_dateofbirth").setValue(dateOfBirth);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
17. Set the Lookup Field Value
function SetLookUpFieldValue(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
var lookupValue = new Array();
var lookupValue[0]= new Object();
lookupValue[0].id = "919F28C4-F9BB-E911-A977-000D3AF04F8C";//Guid of the Record to be set
lookupValue[0].name = "Tata Consultancy Services"; //Name of the record to be set
lookupValue[0].entityType = "new_organization" //Entity Logical Name
formContext.getAttribute("new_organizationid").setValue(lookupValue);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
18. Set the Field Requirement Level
function SetTheFieldRequirementLevel(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Set as Business Required
formContext.getAttribute("new_dateofbirth").setRequiredLevel("required");
//Set as Buiness Recommended
formContext.getAttribute("new_dateofbirth").setRequiredLevel("recommended");
//Set as Optional
formContext.getAttribute("new_dateofbirth").setRequiredLevel("none");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
19. Enable or Disable Field(Lock / Unlock)
function SetTheFieldState(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Set field as Read only
formContext.getAttribute("new_dateofbirth").setDisabled(true);
//Set field as Editable
formContext.getAttribute("new_dateofbirth").setDisabled(false);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
20. Apply Lookup Filter
function ApplyLookUpFilter(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get the custom filter
var filter = "";
//Get the lookup field
var lookupField = formContext.getAttribute("new_organizationid");
//Apply custom Filter for lookup
lookupField.addPreSearch(function () {
lookupField.addCustomFilter(filter);
});
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
21. Show Hide Fields
function ShowHideFields(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Show Field
formContext.getAttribute("new_dateofbirth").setVisible(true);
//Hide Field
formContext.getAttribute("new_dateofbirth").setVisible(false);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
22. Show or Hide Navigation Items
function ShowHideNavigationItems(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Show Organizations
formContext.ui.navigation.items.get("organizations").setVisible(true);
//Hide Organizations
formContext.ui.navigation.items.get("organizations").setVisible(false);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
23. Set Form Notification
function SetFormNotification(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Set Form Notification
formContext.ui.setFormNotification("This is a MS DYNAMICS CRM Form Notification", "INFO", "1");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
24. Clear Form Notification
function ClearFormNotification(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Clear Form Notification
formContext.ui.clearFormNotification("This is a MS DYNAMICS CRM Form Notification", "INFO", "1");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
25. Show Progress Indicator
function ShowProgressIndicator() {
try {
Xrm.Utility.showProgressIndicator("The Page is Loading... Please wait...");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
26.Clear Progress Indicator
function ClearProgressIndicator() {
try {
Xrm.Utility.closeProgressIndicator();
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
27. Show Hide Tabs based on field values
function ShowHideTabs(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
var isProcessed = formContext.getAttribute("progres_isprocessed").getValue(); //Two Option set field
var generalTab = formContext.ui.tabs.get("GENERAL"); //Get Tab
if (isProcessed === false) {
generalTab.setVisible(false); //Hide Tab
} else {
generalTab.setVisible(true); //Show Tab
}
formContext.ui.tabs.get("CASH_PLAN_FLOW_DETAILS").setDisplayState("collapsed"); //Collapse Tab
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
28. Show Hide Sections based on field values
function ShowHideSections(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
var isProcessed = formContext.getAttribute("progres_isprocessed").getValue(); //Two Option set field
var generalTab = formContext.ui.tabs.get("GENERAL"); //Get Tab
var asstPackages = generalTab.sections.get("ASSISTANCE_PACKAGES"); //Get sections
var payments = generalTab.sections.get("PAYMENT_RECORDS"); //Get sections
if (isProcessed === false) {
asstPackages.setVisible(true); //Show Section
payments.setVisible(false); //Hide Section
} else {
asstPackages.setVisible(false); //Show Section
payments.setVisible(true); //Show Section
}
formContext.ui.tabs.get("CASH_PLAN_FLOW_DETAILS").setDisplayState("collapsed"); //Collapse Tab
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
29. Save Form
function SaveForm(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Save Form
formContext.data.entity.save();
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
30. Save Form and Close Record
function SaveFormAndClose(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Save Form and Close
formContext.data.entity.save("saveandclose");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
31. Save Form and Open Create Form
function SaveFormAndOpenCreateForm(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Save Form and Close
formContext.data.entity.save("saveandnew");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
32. Close Form
function CloseForm(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Close Form
formContext.ui.close();
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
33. Save the data on Read Only Field
function ForceSaveDataOnReadOnlyField(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Save forcefully
formContext.getAttribute("new_employeetype").setSubmitMode("always");
//Save forcefully
formContext.getAttribute("new_employeetype").setSubmitMode("never");
//Save forcefully
formContext.getAttribute("new_employeetype").setSubmitMode("dirty");
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
34. Get Dirty Fields from Form
function GetFormDirtyFields(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
var attributes = formContext.data.entity.attributes.get()
for (var i in attributes) {
var attribute = attributes[i];
if (attribute.getIsDirty()) {
Xrm.Utility.alertDialog("Attribute dirty: " + attribute.getName());
}
}
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
35. Get Form Type
function GetFormType(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get Form Type
var formType = formContext.ui.getFormType();
Xrm.Utility.alertDialog(formType);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
36. Get GUID of the Current Record
function GetGuidOfTheRecord(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get the current Record Guid
var recordGuid = formContext.data.entity.getId();
Xrm.Utility.alertDialog(recordGuid);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
37. Get GUID of the Current User
function GetGuidOfTheRecord(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get the Current User Guid
var userGuid = formContext.context.getUserId();
Xrm.Utility.alertDialog(userGuid);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
38. Get the Security Roles of Current User
function GetSecurityRolesOfCurrentUser(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get the Current User Guid
var userRoles = formContext.context.getUserRoles();
Xrm.Utility.alertDialog(userRoles);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
39. Get the CRM Clinet Url
function GetTheCRMClientUrl(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get the Client Url
var clientUrl = formContext.context.getClientUrl();
Xrm.Utility.alertDialog(clientUrl);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
40. Get the User Language ID
function GetTheUserLanguageID(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get the Current User Language ID
var userLanguage = formContext.context.getUserLcid();
Xrm.Utility.alertDialog(userLanguage);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
41. Get the Current User Name
function GetTheCurrentUserName(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
//Get the Current User Name
var userName = formContext.context.userSettings.userName;
Xrm.Utility.alertDialog(userName);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
42. Create Record using Xrm.WebApi
function CreateRecord() {
try {
var entityName = "new_organization"; //Entity Logical Name
//Data used to Create record
var data = {
"new_organizationname": "Tata Consultancy Services",
"new_description": "This is the description of Tata Consultancy Services",
"new_noofemployees": 400000,
"new_revenue": 20000000
}
Xrm.WebApi.createRecord(entityName, data).then(
function success(result) {
Xrm.Utility.alertDialog("Success");
},
function (error) {
Xrm.Utility.alertDialog("Error");
}
);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
43. Update Record using Xrm.WebApi
function UpdateRecord() {
try {
var entityName = "new_organization"; //Entity Logical Name
var recordId = "919F28C4-F9BB-E911-A977-000D3AF04F8C"; //Guid of the Record
//Data used to Create record
var data = {
"new_organizationname": "Tata Consultancy Services",
"new_description": "This is the description of Tata Consultancy Services",
"new_noofemployees": 450000,
"new_revenue": 30000000
}
Xrm.WebApi.updateRecord(entityName, recordId, data).then(
function success(result) {
Xrm.Utility.alertDialog("Success");
},
function (error) {
Xrm.Utility.alertDialog("Error");
}
);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
44. Delete Record using Xrm.WebApi
function DeleteRecord() {
try {
var entityName = "new_organization"; //Entity Logical Name
var recordId = "919F28C4-F9BB-E911-A977-000D3AF04F8C"; //Guid of the Record
Xrm.WebApi.deleteRecord(entityName, recordId).then(
function success(result) {
Xrm.Utility.alertDialog("Success");
},
function (error) {
Xrm.Utility.alertDialog("Error");
}
);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
45. Retrieve Record using Xrm.WebApi
function RetrieveRecord() {
try {
var entityName = "new_organization"; //Entity Logical Name
var recordId = "919F28C4-F9BB-E911-A977-000D3AF04F8C"; //Guid of the Record
var columnsToRetrieve = "$select=new_organizationname, new_noofemployees, new_revenue"; //Columns to Retrieve
Xrm.WebApi.retrieveRecord(entityName, recordId, columnsToRetrieve).then(
function success(result) {
Xrm.Utility.alertDialog("Success");
},
function (error) {
Xrm.Utility.alertDialog("Error");
}
);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
46. Retrieve Multiple Record using Xrm.WebApi
function RetrieveMultipleRecords() {
try {
var entityName = "new_organization"; //Entity Logical Name
var query = "?$select=new_organizationname, new_noofemployees, new_revenue&$top=3"; //Columns to Retrieve
Xrm.WebApi.retrieveMultipleRecords(entityName, query).then(
function success(result) {
Xrm.Utility.alertDialog("Success");
},
function (error) {
Xrm.Utility.alertDialog("Error");
}
);
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
47. Call Asynchronous Action
function CallAsynchronousAction(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
var webApiVersionNumber = "v9.1";
var serverURL = formContext.context.getClientUrl() + "/api/data/" + webApiVersionNumber + "/";;
var actionName = "new_customaction"; //Action name
var data = {}; //Action Parameters
if (typeof (data) === "undefined") {
data = {};
}
var oDataEndPoint = serverURL + actionName;
var req = new XMLHttpRequest();
req.open("POST", oDataEndPoint, true); //Action will be invoked Asynchronously
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 204 || this.status === 200) {
if (this.statusText === "No Content" || this.statusText === "") // In case of 204
var response = req.response;
else {
var response = JSON.parse(req.response);
}
} else {
var error = JSON.parse(req.response).error;
Xrm.Utility.alertDialog(error.message);
}
}
};
req.send(JSON.stringify(data));
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
48. Call Synchronous Action
function CallSynchronousAction(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
var webApiVersionNumber = "v9.1";
var serverURL = formContext.context.getClientUrl() + "/api/data/" + webApiVersionNumber + "/";;
var actionName = "new_customaction"; //Action name
var data = {}; //Action Parameters
if (typeof (data) === "undefined") {
data = {};
}
var oDataEndPoint = serverURL + actionName;
var req = new XMLHttpRequest();
req.open("POST", oDataEndPoint, false); //Action will be invoked synchronously
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 204 || this.status === 200) {
if (this.statusText === "No Content" || this.statusText === "") // In case of 204
var response = req.response;
else {
var response = JSON.parse(req.response);
}
} else {
var error = JSON.parse(req.response).error;
Xrm.Utility.alertDialog(error.message);
}
}
};
req.send(JSON.stringify(data));
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
49. Associate request using Web Api
function AssociateRequest(executionContext) {
try {
//Get the form context
var formContext = executionContext.getFormContext();
var serverURL = formContext.context.getClientUrl();
var currentEntityPlurarName = "fieldsecurityprofiles";
var currentEntityId = "4E7C654C-7150-E711-811F-C4346BACBA84";//Get Field Security Profile id
var relationShipName = "systemuserprofiles_association";
var otherEntityPlurarName = "systemusers";
var otherEntityId = "2F5FC0F6-F247-E811-810F-C4346BDCF131"; //Get System User id
var associate = {}
associate["@odata.id"] = serverURL + "/api/data/v9.1/" + otherEntityPlurarName + "(" + otherEntityId + ")";
var req = new XMLHttpRequest();
req.open("POST", serverURL + "/api/data/v9.1/" + currentEntityPlurarName + "(" + currentEntityId + ")/" + relationShipName + "/$ref", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
req.onreadystatechange = null;
if (this.status == 204) {
//Success
} else {
var error = JSON.parse(this.response).error;
Xrm.Utility.alertDialog(error.message);
}
}
};
req.send(JSON.stringify(associate));
}
catch (e) {
Xrm.Utility.alertDialog(e.message);
}
}
No comments:
Post a Comment