JavaScript Field Type Reference for New AgileApps User Interface

From AgileApps Support Wiki

Accessing and Updating Different Field Types

The following table shows how to access and update the different field types for the revamped AgileApps user interface, where:

  • _sdForm is the variable that references the current form
  • field is a string containing the name of the field
    (as with all strings, literal values must be in quotes)
  • value is a value you specify (generally a string)
  • value is language keyword, typed exactly as shown--as in this line,
    for example, which gets the value from a field called email_address:
_sdForm.email_address.value

Notepad.png

Note:
Form data is in User Format. Data entered into the Form must be in that format, as well. Data going to and from the platform, on the other hand, must be in Database Format.

Learn more: Localization#JavaScript Programming

Notepad.png

Note: JavaScript functions mentioned in the table does not support Web Forms.

Type Getter Setter New UI Support Scripts supported only with New UI
Auto Number n/a n/a n/a n/a
Checkbox

getCheckBoxState(_sdForm, field)
Returns: true or false

setCheckboxState(_sdForm, field, state)
state: true or false

Example:
setCheckboxState(_sdForm, "item_approved", true);

Yes n/a
Currency

getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Yes n/a
Date

_sdForm.fieldname.value
-or-
getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Yes n/a
Date time

_sdForm.fieldname.value
-or-
getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Yes n/a
Dependent Picklist

getPickListSelectedValue(_sdForm, field)
Returns: selected String containing value

setPickListValue(_sdForm, field, value)
value: String containing new value

Yes n/a
Email Address

getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Yes n/a
External Lookup n/a n/a n/a n/a
File Field n/a n/a n/a n/a
Formula n/a n/a n/a n/a
Geolocation

getTextFieldValue(_sdForm, field)
Returns: A string containing a latitude and longitude,
    separated by a comma and a space.
Ex: 37.403930662906106, -121.97971165820213

setTextFieldValue(_sdForm, field, value)
value: A string containing the new geolocation value

Yes n/a
Global Picklist

getPickListSelectedValue(_sdForm, field)
Returns: selected String containing value

setPickListValue(_sdForm, field, value)
value: String containing new value

Yes n/a
Image Field n/a n/a n/a n/a
Lookup

getLookupFieldValue(_sdForm, field)
Returns: String containing record ID

getLookupFieldText(_sdForm, field)
Returns: String containing the displayed text

getDependentLookupFieldsData(_sdForm, field)
Returns: Promise object containing an array of Lookup-Derived Fields value.

setLookupValue(_sdForm, field, value, text)
value: String containing record ID
text: String containing the text to display

Yes

Example for Get dependent lookup field data:
var dependentFieldDataPromise = getDependentLookupFieldsData(_sdForm, field);

dependentFieldDataPromise .then(function(dependentLookupData) {

console.log(dependentLookupData)

}, function(errorMessage){

console.log(errorMessage)

});

Lookup-Derived_Fields

getDependentLookupFieldValue(_sdForm, field)
Returns: Promise object containing the Lookup-Derived Fields value.

n/a

Yes

Example for Get dependent lookup field value:
var dependentFieldValuePromise= getDependentLookupFieldValue(_sdForm, field);

dependentFieldValuePromise.then(function(dependentLookupData) {

console.log(dependentLookupData)

}, function(errorMessage){

console.log(errorMessage)

});

Multiple Checkboxes

getMultiCheckBoxValue(_sdForm, field)
Returns: An array of values, one for each checked box

getMultiCheckBoxValue(_sdForm, field, index)
index: 0 for the first checkbox,
      1 for the second, and so on.
Returns: The value of the box if selected, else undefined

setMultiCheckBoxValue(form, field, [value1, ...])
Argument: Array of values to set

Example:
setMultiCheckBoxValue(_sdForm, field, ["A", "B"])
(Checkboxes for all other values are turned off)

Yes n/a
Multi Object Lookup n/a n/a n/a n/a
Multi Select Picklist

getMultiPickListSelectedValue(_sdForm, field)
Returns: Array of strings, with selected values
Example: ["A", "C"]

setMultiPickListValue(_sdForm, field, [value1, ...])
Argument: Array of values to select

Example:
setMultiPickListValue(_sdForm, field, ["A", "B"])

Yes n/a
Number

_sdForm.fieldname.value
-or-
getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value, or a number

Yes n/a
Number with decimals

sdForm.fieldname.value
-or-
getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value, or a float

Yes n/a
Percentage

sdForm.fieldname.value
-or-
getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Yes n/a
Phone/Fax

sdForm.fieldname.value
-or-
getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Yes n/a
Picklist

getPickListSelectedValue(_sdForm, field)
Returns: selected String containing value

setPickListValue(_sdForm, field, value)
value: String containing new value

Example:
setPickListValue(_sdForm, "status", "Closed");

Yes n/a

setFieldCustomIcons(_sdForm, field, arrayOfCustomIconObject)
Note:This is available only in the revamped user interface.

Yes

Use the following script to set custom field icons:
var arrayOfCustomIconObject = [
{
value: '2',
url: 'https://companies.mybroadband.co.za/files/2015/07/Software-AG-logo.jpg>',
altText: 'abcd',
iconPosition: 'right'
}
];
where;

  • value - this is the picklist value that you want to use.
  • url - this is the path to the image file which you want to use an icon.
  • altText - this is the text you want to display when you move the cursor over the icon image.
  • iconPosition - this is the icon position you want to use. You can choose right or left.
Radio Buttons

getRadioButtonValue(_sdForm, field)
Returns: String containing selected value

setRadioButtonValue(_sdForm, field, value)
value: String containing new value to select

Example:
setRadioButtonValue(_sdForm, "color", "Black");

Yes n/a
Rich Text Area

getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Example:
setTextFieldValue(_sdForm, "detailed_description", "test description");

Yes n/a
Rollup Summary Field n/a n/a n/a n/a
TextArea

_sdForm.fieldname.value
-or-
getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Yes n/a
TextField

_sdForm.fieldname.value
-or-
getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Example:
setTextFieldValue(_sdForm, "first_name", "Adam");

Yes n/a
Time

_sdForm.fieldname.value
-or-
getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Yes n/a
URL

_sdForm.fieldname.value
-or-
getTextFieldValue(_sdForm, field)
Returns: String containing value

setTextFieldValue(_sdForm, field, value)
value: String containing new value

Yes n/a


Variables and Methods Introduced in the Revamped UI

The following variables and methods are introduced in the revamped UI for Form scripts:

Variables

  • objectId - Use this variable to retrieve the object ID.
  • recordId - Use this variable to retrieve the record ID.
  • formAction - Use this variable to get the form action mode. The possible return values are add or update.

Methods

Method Name Description Syntax Example Output & Return Type
getDependentLookupFieldValue This method provides the derived lookup field data corresponding to the field column name asynchronously. It returns the Promise object with fulfilled or rejected, the respective handler function (onFulfilled or onRejected) is called asynchronously. getDependentLookupFieldValue(_sdForm, fieldId)
fieldId: Lookup dependent field Id value.
To find out the dependent(derived) lookup field value:
Input: getDependentLookupFieldValue(_sdForm, ‚Äė95f1ce7608c546d69294211e3d0a4565‚Äė);
Output: Derived lookup field object with name and id property.
Return Type: Promise


Example 1:
var dependentFieldValuePromise= getDependentLookupFieldValue(_sdForm, fieldId);
dependentFieldValuePromise.then(function(dependentLookupData){
console.log(dependentLookupData);
}, function(errorMessage){
console.log(errorMessage)}
);


Example 2: Some fields contains HTML tags in the value. This example shows you how to remove these tags and get the plain value.
var dependentFieldValuePromise= getDependentLookupFieldValue(_sdForm, fieldId);
dependentFieldValuePromise.then(function(dependentLookupData) {‚Äč‚Äč‚Äč‚Äč‚Äč‚Äč
dependentLookupData['name'] = dependentLookupData['name'].replace(/(<([^>]+)>)/gi, );
console.log(dependentLookupData);
}‚Äč‚Äč‚Äč‚Äč‚Äč‚Äč, function(errorMessage){‚Äč‚Äč‚Äč‚Äč‚Äč‚Äč
console.log(errorMessage)
}‚Äč‚Äč‚Äč‚Äč‚Äč‚Äč);
getDependentLookupFieldsData Get all the dependent(derived) lookup field data for a record using the parent lookup field. It returns the Promise object with fulfilled or rejected, the respective handler function (onFulfilled or onRejected) is called asynchronously. getDependentLookupFieldsData(_sdForm, ‚ÄėfieldTableColumn‚Äô);
fieldTableColumn: Parent(Lookup) field table column name value.
To find out the dependent(derived) lookup field value:
Input: getDependentLookupFieldsData (_sdForm, ‚Äėobject_table_column_name‚Äė);
Output: Array of derived lookup field object contains name and id property.
Return Type: Promise


Example 1:
var dependentFieldDataPromise = getDependentLookupFieldsData(_sdForm, ‚ÄėfieldTableColumn‚Äô);
dependentFieldDataPromise.then(function(dependentLookupData) {
console.log(dependentLookupData)
}, function(errorMessage){
console.log(errorMessage)}
);
Example 2: Some fields contains HTML tags in the value. This example shows you how to remove these tags and get the plain value.
var dependentFieldDataPromise = getDependentLookupFieldsData(_sdForm, ‚ÄėfieldTableColumn‚Äô);
dependentFieldDataPromise .then(function(dependentLookupData) {‚Äč‚Äč‚Äč‚Äč‚Äč
Object.entries(dependentLookupData).forEach(([key, value]) => {‚Äč‚Äč‚Äč‚Äč‚Äč
dependentLookupData[key]['name'] = dependentLookupData[key]['name'].replace(/(<([^>]+)>)/gi, );
}‚Äč‚Äč‚Äč‚Äč‚Äč);
console.log(dependentLookupData)
}‚Äč‚Äč‚Äč‚Äč‚Äč, function(errorMessage){‚Äč‚Äč‚Äč‚Äč‚Äč
console.log(errorMessage)
}‚Äč‚Äč‚Äč‚Äč‚Äč);
getUserRoleNames Use this method to retrieve user role names. getUserRoleNames() Assuming login user is assigned 2 roles, Agent and Manager
Input: getUserRoleNames()
Output: ["Agent", "Manager"]
Return Type: Array
isUserHasRole Use this method to find out if a user is assigned to a particular role. isUserHasRole("roleName") To find out if a user has an Admin role,
Input: isUserHasRole("Admin")
Output: true
Return type: Boolean


Assuming login user is assigned 2 roles, Agent and Manager

Input: isUserHasRole("Agent")
Output: true
Return type: Boolean
getUserActiveRole Use this method to get the currently active role name. getUserActiveRole() Assuming login user is assigned 2 roles, Agent and Manager
Input: getUserActiveRole()
Output: "Manager"
Return type: String
hideQuickResponseMessages Use this method to hide the quick text responses or email templates in the Notes Editor. hideQuickResponseMessages() Example:
  • hideQuickResponseMessages(["c37ce2afe3e24a178bf6d558353cd05a","56fe26ccbd4945a184f6b0dd85a2d548"]);
Where c37ce2afe3e24a178bf6d558353cd05a can be the ID of the text response or the email template.
displayToastMessage This method is used to display the message in the toaster. displayToastMessage(type, message, dismissTime);
  • The method parameters should be in the same order.
  • type: This is a mandatory parameter. It accepts "SUCCESS" or "ERROR" value.
  • message: This is a mandatory parameter.
  • dismissTime: This is an optional parameter. When this parameter is not passed, the toaster message has to be dismissed manually. The value is in milliseconds and in multiples of 1000.
Examples:
  • displayToastMessage("SUCCESS", "Record Saved", "3000");
  • displayToastMessage("ERROR", "Failed to save the record");
displayRecordDialog Use this method to open the new or existing object form layout record in the dialog. displayRecordDialog(objectId, layoutId, title, recordId);
  • The method parameters should be in the same order.
  • objectId: This is a mandatory parameter.
  • layoutId: This is an optional parameter. This parameter takes default value of default object layout id.
  • title: This is an optional parameter. This parameter takes default value of object name.
  • recordId: This is an optional parameter. This parameter opens a new record by default. If record is passed, then it opens the respective record.
Examples:
  • displayRecordDialog("8fbe08246af94241a7aa842ebb5d3b7d", "e519a71bf21c4a7daec6763ea19dac85", "New Case", "780325538");
  • displayRecordDialog("8fbe08246af94241a7aa842ebb5d3b7d", "e519a71bf21c4a7daec6763ea19dac85");
  • displayRecordDialog("8fbe08246af94241a7aa842ebb5d3b7d", "", "New Case");
getDataOnPostSave

Use this method to provide the record meta data on successfully saving the record. This method returns the promised object with RESOLVED or REJECT. If the record saved successfully then the promise gets resolved, else it returns reject.

Use the method onSave form script to get the promise object after saving the record.

getDataOnPostSave();
  • Object properties containing record meta data, are listed below.
  • Optional properties are denoted with a '?' mark at the end of the property.


interface PostSaveEventData{
recordId: string;
objectId: string;
status: ResponseStatus;
statusMessage: string;
isUpdateAction: boolean;
layoutId?: string;
recordLocator?: string;
serverErrorMessage?: any;
}


Output: Object<PostSaveEventData>
Return Type: Promise
Example:

var postSavePromise = getDataOnPostSave();
postSavePromise.then(data => {
console.log(["post save data",data]);
const recordId = data['recordId'];
const objectId = data['objectId'];
const url = `/records/detail/${objectId}/${recordId}?useRID=true`
navigateToInAppUrl(url)
}, (error) => {
console.log(["error on post save data",error]);
});
navigateToInAppUrl Use this method to navigate inside application routes. It navigates only registered routes in an application. This method accepts only one parameter, which is the URL as a relative path. This is an application registered path. navigateToInAppUrl(url) Return Type: Void

Example:

const url = `/records/detail/${objectId}/${recordId}?useRID=true`
navigateToInAppUrl(url)

Methods Deprecated in the Revamped UI

The following method is deprecated in the revamped UI:

  • hideClaimAndAssignButtons(['assignOwnerShipButton','assignTeamOwnerShipButton','claimOwnerShipButton']);

This is deprecated as the ownership details are included in a single place in the new UI, and is now part of the People menu People-menu-newui.png in the record details.

Considerations for Existing Custom Script Methods

For Form Scripts

1. hideActionsMenuItems(['assignOwnerShipButton','assignTeamOwnerShipButton']);
  • In the new UI, we show the ownership change option in People-menu-newui.png instead of the Actions menu.
When you click the Change link in the new UI and provide any input, the application searches in the "Users" and "Teams" objects.
  • If we hide "assignOwnerShipButton", no search is performed in the users list.
  • If we hide "assignTeamOwnerShipButton", no search is performed in the teams list.
  • If we hide "claimOwnerShipButton", the Assign to me option is not visible.

Notepad.png

Note: If we hide the above three options from form script, the Change link does not appear on the UI.

The following screenshot provides details of the Action menu described here:
Ownership change.png