Get the value of a Text field:
//------------------------------------------------------------------------------------------- // getTextField //------------------------------------------------------------------------------------------- function getTextField(e){ // Get the Form Context var formContext = e.getFormContext(); // Get the value of a Contact's first name var firstName = formContext.getAttribute("firstname").getValue(); }
Set the value of a Text field:
//------------------------------------------------------------------------------------------- // setTextField //------------------------------------------------------------------------------------------- function setTextField(e){ // Get the Form Context var formContext = e.getFormContext(); // Set the Contact's first name to Joe formContext.getAttribute("firstname").setValue("Joe"); // Set the Contact's first name to a variable var firstName = "Joe"; formContext.getAttribute("firstname").setValue(firstName); }
Get the text of a Lookup field:
//------------------------------------------------------------------------------------------- // getLookupFieldText //------------------------------------------------------------------------------------------- function getLookupFieldText(e){ // Get the Form Context var formContext = e.getFormContext(); // Get the Parent Company name of a Contact var companyName = formContext.getAttribute("parentcustomerid").getValue()[0].name; }
Set the value and text of a Lookup field:
//------------------------------------------------------------------------------------------- // setLookupField //------------------------------------------------------------------------------------------- function setLookupField(e){ // Get the Form Context var formContext = e.getFormContext(); // First, you need the GUID, Name and Entity Type stored as variables // For this example, let's assume we have a "Parent Customer 2" field // on a Contact and we want to populate it with the same value as the // Parent Customer // Get the GUID var id = formContext.getAttribute("primarycustomerid").getValue()[0].id; // Get the Company Name var name = formContext.getAttribute("primarycustomerid").getValue()[0].name; // Set the entity type - Account, Contact, Lead, Opportunity, etc. var entityType = "Account"; // If the ID isn't null, then create a variable to store the new Object if (id != null) { var lookupVal = new Array(); lookupVal[0] = new Object(); lookupVal[0].id = guid; lookupVal[0].name = name; lookupVal[0].entityType = entityType; // Set the value of the custom "Parent Customer 2" field formContext.getAttribute("new_parentcustomerid2").setValue(lookupVal); } }
Get the value of a Numeric field
//------------------------------------------------------------------------------------------- // getNumericField //------------------------------------------------------------------------------------------- function getNumericField(e){ // Get the Form Context var formContext = e.getFormContext(); // Get the value of a custom Age field on a Contact var age = formContext.getAttribute("new_age").getValue(); }
Set the value of a Numeric field:
//------------------------------------------------------------------------------------------- // setNumericField //------------------------------------------------------------------------------------------- function setNumericField(e){ // Get the Form Context var formContext = e.getFormContext(); // Set the Contact's age to 25 formContext.getAttribute("new_age").setValue(25); // Set the Contact's age to a variable var age = 25; Xrm.Page.data.entity.attributes.get("new_age").setValue(age); }
Get the value of a Bit field:
//------------------------------------------------------------------------------------------- // getBitField //------------------------------------------------------------------------------------------- function getBitField(e) { // Get the value of a custom "Is Decision Maker" checkbox on a Contact var decisionMaker = formContext.getAttribute("new_isDecisionMaker").getValue(); // checked will return 1; unchecked will return 0; }
Set the value of a Bit field:
//------------------------------------------------------------------------------------------- // setBitField //------------------------------------------------------------------------------------------- function setBitField(e){ // Get the Form Context var formContext = e.getFormContext(); // Set the value of a custom "Is Decision Maker" checkbox to checked formContext.getAttribute("new_isDecisionMaker").setValue(1); // Set the value of a custom "Is Decision Maker" checkbox to unchecked formContext.getAttribute("new_isDecisionMaker").setValue(0); }
Get the database value and text of an Option Set
//------------------------------------------------------------------------------------------- // getOptionSetField //------------------------------------------------------------------------------------------- function getOptionSetField(e){ // Get the Form Context var formContext = e.getFormContext(); // Get the database value of the Opportunity Status Reason field var statusReason = formContext.getAttribute("statuscode").getValue(); // Get the text of the Opportunity Status Reason field var statusReason = formContext.getAttribute("statuscode").getText(); }
Set the text and value of an Option Set:
//------------------------------------------------------------------------------------------- // setOptionSetField //------------------------------------------------------------------------------------------- function setOptionSetField(e){ // Get the Form Context var formContext = e.getFormContext(); // Set the value of the Opportunity Status Reason field // Note: Option Set fields are set based on the database id, rather than the name formContext.getAttribute("statuscode").setValue(100000001); // Set the value of the Opportunity Status Reason field to a variable var statusReasonId = 100000001; formContext.getAttribute("statuscode").setValue(statusReasonId); }
Get the value of a Date field (01/31/2018 or 31/01/2018)
//------------------------------------------------------------------------------------------- // getDateField //------------------------------------------------------------------------------------------- function getDateField(e){ // Get the Form Context var formContext = e.getFormContext(); // Get the value of the Opportunity Est. Close Date var date = formContext.getAttribute("estimatedclosedate").getValue(); if (date != null) { var day = date.getDate(); var month = date.getMonth(); var year = date.getFullYear(); month++; // Add leading 0's to single digit days and months if (day < 10) {day = "0" + day;} if (month < 10) {month = "0" + month;} // Create a variable with the formatted date as MM/DD/YYYY var formattedDate = month + "/" + day + "/" + year; // Create a variable with the formatted date as DD/MM/YYYY //var formattedDate = date + "/" + month + "/" + year; } }
Customizing forms:
//------------------------------------------------------------------------------------------- // showHideFormSections //------------------------------------------------------------------------------------------- // Consider using Business Rules before using this code function showHideFormSections(e){ // Get the Form Context var formContext = e.getFormContext(); // Create variables for the tab an section var tab=formContext.ui.tabs.get("TabName"); var section = tab.sections.get("SectionName"); // Hide a section section.setVisible(false); // Show a section section.setVisible(true); }Show/hide form fields:
//------------------------------------------------------------------------------------------- // showHideFields //------------------------------------------------------------------------------------------- // Consider using Business Rules before using this code function showHideFields(e){ // Get the Form Context var formContext = e.getFormContext(); // Show a form field formContext.getControl("new_formField").setVisible(true); // Hide a form field formContext.getControl("new_formField").setVisible(false); }Set field requirement level:
//------------------------------------------------------------------------------------------- // setRequiredLevel //------------------------------------------------------------------------------------------- function setRequiredLevel(e){ // Consider using Business Rules before using this code // Get the Form Context var formContext = e.getFormContext(); // Set Opportunity Est. Close Date as optional formContext.getAttribute("estimatedclosedate").setRequiredLevel("none"); // Set Opportunity Est. Close Date as required formContext.getAttribute("estimatedclosedate").setRequiredLevel("required"); }Use the value of an Option Set to set up form:
//------------------------------------------------------------------------------------------- // setCustomFormLayout //------------------------------------------------------------------------------------------- function setCustomFormLayout(e){ // Consider using Business Rules before using this code // Get the Form Context var formContext = e.getFormContext(); // This example assumes a company uses the same Opportunity form, // but shows/hides sections and makes fields required/optional based // on the value of a new_division field // hook this up to the onLoad event and the onChange event of the new_division field // Create variables for the form sections var tab = formContext.ui.tabs.get("tab_division"); var sectionComputers = tab.sections.get("section_computers"); var sectionMonitors = tab.sections.get("section_monitors"); var sectionPeripherals = tab.sections.get("section_peripherals"); // Set all sections as hidden sectionComputers.setVisible(false); sectionMonitors.setVisible(false); sectionPeripherals.setVisible(false); // Set all required fields as not required formContext.getAttribute("new_computerField").setRequiredLevel("none"); formContext.getAttribute("new_monitorField").setRequiredLevel("none"); formContext.getAttribute("new_peripheralField").setRequiredLevel("none"); // Get the text of the Division field var division = formContext.getAttribute("new_division").getText(); // Make sure Division is populated if (division != null) { // Use a switch statement to set up the form for each division switch(division) { // Computer division case "Computers": sectionComputers.setVisible(true); formContext.getAttribute("new_computerField").setRequiredLevel("required"); break; // Monitor division case "Monitors": sectionMonitors.setVisible(true); formContext.getAttribute("new_monitorField").setRequiredLevel("required"); break; // Peripherals division case "Peripherals": sectionPeripherals.setVisible(true); formContext.getAttribute("new_peripheralField").setRequiredLevel("required"); break; } } }Open a specific form based on a field value:
//------------------------------------------------------------------------------------------- // openSpecificForm //------------------------------------------------------------------------------------------- function openSpecificForm(e){ // Get the Form Context var formContext = e.getFormContext(); //if the form is update form if (formContext.ui.getFormType()==2) { // variable to store the name of the form var lblForm; // get the value picklist field var relType = formContext.getAttribute("customertypecode").getValue(); // switch statement to assign the form to the picklist value // change the switch statement based on the forms numbers and picklist values switch (relType) { case 1: lblForm = "Information1"; break; case 2: lblForm = "Information2"; break; default: lblForm = "Information"; } //check if the current form is form need to be displayed based on the value if (formContext.ui.formSelector.getCurrentItem().getLabel() != lblForm) { var items = Xrm.Page.ui.formSelector.items.get(); for (var i in items) { var item = items[i]; var itemId = item.getId(); var itemLabel = item.getLabel() if (itemLabel == lblForm) { //navigate to the form item.navigate(); } } } } }Pulling data from related entities:
//------------------------------------------------------------------------------------------- // getRelatedInfo //------------------------------------------------------------------------------------------- function getRelatedInfo(e) { // Get the Form Context var formContext = e.getFormContext(); // Set variables for the related entity to get data from try{var recordGuid = formContext.getAttribute("lookupField").getValue()[0].id; } catch(err) {} // If the recordGuid contains data if (recordGuid != null) { // Use the WebApi to get data Xrm.WebApi.retrieveRecord("entityName", recordGuid, "?$select=name,revenue").then( // If successful, set variables for the results function success(result) { var abc = result.field1Name; var def = result.field2Name; // Set the form fields formContext.getAttribute("field1").setValue(abc); }, // If there's an error in the WebApi call, log the error and alert the user function (error) { console.log(error.message); // handle error conditions var errorMessage = 'Error: An error occurred in the GetRelatedInfo function: ' + error.message; var alertStrings = { confirmButtonLabel: "Yes", text: errorMessage }; var alertOptions = { height: 120, width: 260 }; Xrm.Navigation.openAlertDialog(alertStrings, alertOptions).then( function success(result) { console.log("Alert dialog closed"); }, function (error) { console.log(error.message); } ); } ); } }Reference:https://www.dynamicconsulting.com/2020/08/14/dynamics-365-crm-javascript-reference/