JAVASCRIPT REFERENCE
1. Get the GUID value of a lookup field:
Note: this example reads and pops the GUID of the primary contact on the Account form
1
2
3
4
|
function AlertGUID() {
var primaryContactGUID = Xrm.Page.data.entity.attributes.get( "primarycontactid" ).getValue()[0].id;
alert(primaryContactGUID);
}
|
2. Get the Text value of a lookup field:
Note: this example reads and pops the name of the primary contact on the Account form
1
2
3
4
|
function AlertText() {
var primaryContactName = Xrm.Page.data.entity.attributes.get( "primarycontactid" ).getValue()[0].name;
alert(primaryContactName);
}
|
3. Get the value of a text field:
Note: this example reads and pops the value of the Main Phone (telephone1) field on the Account form
1
2
3
4
|
function AlertTextField() {
var MainPhone = Xrm.Page.data.entity.attributes.get( "telephone1" ).getValue();
alert(MainPhone);
}
|
4. Get the database value of an Option Set field:
Note: this example reads and pops the value of the Address Type (address1_addresstypecode) field on the Account form
1
2
3
4
5
6
|
function AlertOptionSetDatabaseValue() {
var AddressTypeDBValue = Xrm.Page.data.entity.attributes.get( "address1_addresstypecode" ).getValue();
if (AddressTypeDBValue != null ) {
alert(AddressTypeDBValue);
}
}
|
5. Get the text value of an Option Set field:
Note: this example reads and pops the value of the Address Type (address1_addresstypecode) field on the Account form
1
2
3
4
5
6
|
function AlertOptionSetDisplayValue() {
var AddressTypeDisplayValue = Xrm.Page.data.entity.attributes.get( "address1_addresstypecode" ).getText();
if (AddressTypeDisplayValue != null ) {
alert(AddressTypeDisplayValue);
}
}
|
6. Get the database value of a Bit field:
1
2
3
4
|
// example GetBitValue("telephone1");
function GetBitValue(fieldname) {
return Xrm.Page.data.entity.attributes.get(fieldname).getValue();
}
|
7. Get the value of a Date field:
returns a value like: Wed Nov 30 17:04:06 UTC+0800 2011
and reflects the users time zone set under personal options
1
2
3
4
|
// example GetDate("createdon");
function GetDate(fieldname) {
return Xrm.Page.data.entity.attributes.get(fieldname).getValue();
}
|
8. Get the day, month and year parts from a Date field:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
// This function takes the fieldname of a date field as input and returns a DD-MM-YYYY value
// Note: the day, month and year variables are numbers
function FormatDate(fieldname) {
var d = Xrm.Page.data.entity.attributes.get(fieldname).getValue();
if (d != null ) {
var curr_date = d.getDate();
var curr_month = d.getMonth();
curr_month++; // getMonth() considers Jan month 0, need to add 1
var curr_year = d.getFullYear();
return curr_date + "-" + curr_month + "-" + curr_year;
}
else return null ;
}
// An example where the above function is called
alert(FormatDate( "new_date2" ));
|
9. Set the value of a string field:
Note: this example sets the Account Name field on the Account Form to “ABC”
1
2
3
4
|
function SetStringField() {
var Name = Xrm.Page.data.entity.attributes.get( "name" );
Name.setValue( "ABC" );
}
|
10. Set the value of an Option Set (pick list) field:
Note: this example sets the Address Type field on the Account Form to “Bill To”, which corresponds to a database value of “1”
1
2
3
4
|
function SetOptionSetField() {
var AddressType = Xrm.Page.data.entity.attributes.get( "address1_addresstypecode" );
AddressType.setValue(1);
}
|
11. Set a Date field / Default a Date field to Today:
1
2
|
//set date field to now (works on date and date time fields)
Xrm.Page.data.entity.attributes.get( "new_date1" ).setValue( new Date());
|
12. Set a Date field to 7 days from now:
1
2
3
4
5
6
|
function SetDateField() {
var today = new Date ();
var futureDate = new Date (today.setDate(today.getDate() + 7 ));
Xrm.Page.data.entity.attributes. get ( "new_date2" ).setValue(futureDate);
Xrm.Page.data.entity.attributes. get ( "new_date2" ).setSubmitMode( "always" ); // Save the Disabled Field
}
|
13. Set the Time portion of a Date Field:
1
2
3
4
5
6
7
8
9
10
11
|
// This is a function you can call to set the time portion of a date field
function SetTime(attributeName, hour, minute) {
var attribute = Xrm.Page.getAttribute(attributeName);
if (attribute.getValue() == null ) {
attribute.setValue( new Date());
}
attribute.setValue(attribute.getValue().setHours(hour, minute, 0));
}
// Here's an example where I use the function to default the time to 8:30am
SetTime('new_date2', 8, 30);
|
14. Set the value of a Lookup field:
Note: here I am providing a reusable function…
1
2
3
4
5
6
7
8
9
10
11
|
// Set the value of a lookup field
function SetLookupValue(fieldName, id, name, entityType) {
if (fieldName != null ) {
var lookupValue = new Array();
lookupValue[0] = new Object();
lookupValue[0].id = id;
lookupValue[0].name = name;
lookupValue[0].entityType = entityType;
Xrm.Page.getAttribute(fieldName).setValue(lookupValue);
}
}
|
Here’s an example of how to call the function (I retrieve the details of one lookup field and then call the above function to populate another lookup field):
1
2
3
4
5
6
|
var ExistingCase = Xrm.Page.data.entity.attributes.get( "new_existingcase" );
if (ExistingCase.getValue() != null ) {
var ExistingCaseGUID = ExistingCase.getValue()[0].id;
var ExistingCaseName = ExistingCase.getValue()[0].name;
SetLookupValue( "regardingobjectid" , ExistingCaseGUID, ExistingCaseName, "incident" );
}
|
15. Split a Full Name into First Name and Last Name fields:
1
2
3
4
5
6
7
8
|
function PopulateNameFields() {
var ContactName = Xrm.Page.data.entity.attributes.get( "customerid" ).getValue()[0].name;
var mySplitResult = ContactName.split( " " );
var fName = mySplitResult[0];
var lName = mySplitResult[1];
Xrm.Page.data.entity.attributes.get( "firstname" ).setValue(fName);
Xrm.Page.data.entity.attributes.get( "lastname" ).setValue(lName);
}
|
16. Set the Requirement Level of a Field:
Note: this example sets the requirement level of the Address Type field on the Account form to Required.
Note: setRequiredLevel(“none”) would make the field optional again.
1
2
3
4
|
function SetRequirementLevel() {
var AddressType = Xrm.Page.data.entity.attributes.get( "address1_addresstypecode" );
AddressType.setRequiredLevel( "required" );
}
|