Difference between revisions of "JavaScript Functions"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
Β 
(48 intermediate revisions by the same user not shown)
Line 1: Line 1:
These functions are available anywhere that [[JavaScript]] is running on the platform.
<!--TBD: Functions for use in [[Pages]] and [[Custom Form Actions]]-->
__TOC__
__TOC__
=== Accessing Form Fields ===
{{:Referencing Form Fields in JavaScript}}


{{Note|Examples on this page have newlines added for readability.}}
=== Accessing User Information ===
Β 
This function returns information about the logged-in user in a json object.
====showTab====
Display an object ''list view'' (list of object records) as a tab in the GUI.
Β 
;Syntax:
:<syntaxhighlight lang="javascript" enclose="div">
:<syntaxhighlight lang="javascript" enclose="div">
showTab(key, tabTitle, url);
getUserDetails()
</syntaxhighlight>
</syntaxhighlight>


;Parameters:
Values availble in the json object are:
:* '''key -''' Unique key that identifies the tab. Object ID is recommended.
:* '''id -''' user id
:* '''tabTitle -''' The tab label.
:* '''first_name -''' user's first name.
:* '''url -''' The URL used to render the view, in the form: <tt>Service?t=499&object_id={id}</tt>
:* '''last_name -''' user's last name.
:: Optionally, add <tt>&show_layout={viewId}</tt> to specify a particular view.
:* '''language -''' user's language code. (ex: <tt>en</tt>)
:* '''access_profile_name -''' user's access profile name.
:* '''time_zone_name -''' user's time zone name. (ex:America/Indianapolis)
:* '''time_zone_description -''' localized time zone description.<br>ex: (GMT-05:00) Eastern Standard Time (America/Indianapolis)
:* '''date_format -''' user's date format.
:* '''time_format -''' user's time format.
:* '''locale -''' user's locale code.
:* '''primary_team_name -''' user's primary team.
:* '''current_role_name -''' user's current role.<br>Can be empty if the user has a profile that allows global access, but does not play any specific role in the application.
:* '''roles -''' list of the user's roles in the current application, with current role first.
:* '''teamsΒ  -''' list of teams the user belongs to, with the primary team name first.
:* '''userCustomFields -''' an object containing values for each custom field defined on the User object, where the access key is the field name


''Learn more:''
;Example:
:* [[Get an Object ID]]
This script prefills fields in current form with data for the logged-in user, where each user record has a custom field called <tt>customer_discount</tt>:
:* [[Get a View ID]]
Β 
;Sample Usage:
Here is the basic usage pattern:
:<syntaxhighlight lang="javascript" enclose="div">
:<syntaxhighlight lang="javascript" enclose="div">
<a href="javascript:top.showTab('{objectId}','{Tab title}',
var userDetails = getUserDetails();
'Service?t=499&object_id={objectId}');">{Link title}</a>
setTextFieldValue(_sdForm, "column_id",Β  userDetails.id);
setTextFieldValue(_sdForm, "first_name", userDetails.first_name);
setTextFieldValue(_sdForm, "last_name",Β  userDetails.last_name);
setTextFieldValue(_sdForm, "language",Β  userDetails.language);
setTextFieldValue(_sdForm, "time_zone_name", userDetails.time_zone_name);
setTextFieldValue(_sdForm, "time_zone_description", userDetails.time_zone_description);
setTextFieldValue(_sdForm, "roles",Β  Β  Β  userDetails.roles) ; Β 
setTextFieldValue(_sdForm, "discount",Β  userDetails.userCustomFields.customer_discount);
</syntaxhighlight>
</syntaxhighlight>


Show the default view of the Orders Object (ID=<tt>bd5b766236dd487c8cce3648bd5ffe64</tt>)
=== Hiding Action Items and Assignment Buttons ===
:<syntaxhighlight lang="javascript" enclose="div">
{{Note| To apply these functions with the new AgileApps UI, see the section '''Considerations for Existing Custom Script Methods''' in [[JavaScript Field Type Reference for New AgileApps User Interface]].}}
<a href="javascript:top.showTab('bd5b766236dd487c8cce3648bd5ffe64','Orders',
These functions can be used to hide the actions-menu-items and record-assignment buttons, by calling them from the <tt>On Load Script</tt> section of a [[Form Script]].
'Service?t=499&object_id=bd5b766236dd487c8cce3648bd5ffe64');">View Orders</a>
</syntaxhighlight>


Show a specific view with ID <tt>de5dnnn8798</tt>, instead of the default view:
==== hideActionsMenuItems ====
Hide one or more items in the ACTIONS menu:
:<syntaxhighlight lang="javascript" enclose="div">
:<syntaxhighlight lang="javascript" enclose="div">
<a href="javascript:top.showTab('bd5b766236dd487c8cce3648bd5ffe64','Orders',
hideActionsMenuItems(['value-1', 'value-2', ...]); Β 
'Service?t=499&object_id=bd5b766236dd487c8cce3648bd5ffe6464
&show_layout=de5dnnn8798');">Orders</a>
</syntaxhighlight>
</syntaxhighlight>
where the parameter is an array of strings that contains the menu-item values (found by inspecting the <tt>value</tt> attribute of elements in the UI).
;Example:<tt>hideActionsMenuItems(['assignOwnerShipButton','claimOwnerShipButton']);</tt>
The above example hides "assign to user" and "claim" options from actions menu.


====showTabInIFrame====
==== hideClaimAndAssignButtons ====
Display a record form as a tab in the GUI, using the form either to add a record to an object or to display record details.
Hide the Claim-record and Assign-record buttons.
Β 
;Syntax:
:<syntaxhighlight lang="javascript" enclose="div">
:<syntaxhighlight lang="javascript" enclose="div">
showTabInIframe(key, tabTitle, url, preserveTabTitle);
hideClaimAndAssignButtons(['id-1', 'id-2', ...]); Β 
</syntaxhighlight>
Β 
;Parameters:
:* '''key -''' Unique key that identifies the tab. <tt>{objectId}-1</tt> is recommended.
::* When a new record is displayed using that key, the tab is reused. Adding a dash and a one differentiates the record tab from a view tab.
::* Using the record ID for that purpose isn't recommended, because records in different objects could conceivably have the same record ID.
::* To make every record open in a different tab, you could use <tt>{objectId}-{recordId}</tt>
Β 
:* '''tabTitle -''' The tab label.
::* When displaying a record, the label is overwritten with the Object name and the [[Record Identifier]]
::* Standard practice in that case is to use it as a temporary label. For example: <tt>'Loading...'</tt>
Β 
:* '''url -''' The URL used to display the record: <tt>Service?t=498&object_id={id}</tt>
::* Add <tt>&a=view</tt> to add a new record
::* Add <tt>&a=view&policyaction=view</tt> to display an existing record
::: (The [[Form]] used in each case is determined by the user's [[Role]] and the action being performed.)
:* '''displayTitle -''' Boolean value that determines whether or not the specified title is used.
::* If true, the specified title is used for the tab label. (Must be true for a temporary label to be displayed, as well.)
::* If false, the Object name is used, instead.
Β 
''Learn more:''
:* [[Get an Object ID]]
:* [[Get a Record ID]]
Β 
;Sample Usage:
Here is the basic usage pattern:
:<syntaxhighlight lang="javascript" enclose="div">
<a href="javascript:top.showTabInIframe('{objectId}-1','{Tab title}',
'Service?t=498&id=-1&a={action}&object_id={objectId}', true);">{Link Title}</a>
</syntaxhighlight>
Β 
This example opens a tab to add a record to the Orders Object (ID=<tt>bd5b766236dd487c8cce3648bd5ffe64</tt>):
:<syntaxhighlight lang="javascript" enclose="div">
<a href="javascript:top.showTabInIframe('bd5b766236dd487c8cce3648bd5ffe64-1',
'New Order','Service?t=498&id=-1&a=add&object_id=bd5b766236dd487c8cce3648bd5ffe64');">
Add Order</a>
</syntaxhighlight>
Β 
This example opens a tab to display a record, where:
:* objectID = 088d7ac50c4349b5b08d06cc8fa4e732
:* recordID = 255796565
:<syntaxhighlight lang="javascript" enclose="div">Β  Β 
<a href="javascript:top.showTabInIframe('088d7ac50c4349b5b08d06cc8fa4e732-1',
'Loading...','Service?t=498&id=255796565&object_id=088d7ac50c4349b5b08d06cc8fa4e732
&a=view&policyaction=view', true);">Details</a>
</syntaxhighlight>
</syntaxhighlight>
where the parameter is an array of strings which contains ID-attributes from the respective buttons.
;Example:<tt>hideClaimAndAssignButtons(['assignOwnerShipButton','assignTeamOwnerShipButton','claimOwnerShipButton']);</tt>
The above example hides "assign to user", "assign to team" and "claim" buttons from owner pop-up.


:''Learn more:'' For a complete example in context, see [[Create a JSP Record List from a SQL Query]]
=== Localization ===
These functions are used to format and parse data.<br>
''Learn more:'' [[Localization#JavaScript Programming]]


====lj_closeDialog====
:<tt>L10n.formatCurrency(''value'', ''precision'')</tt>
Close the current dialog. Typically used in conjunction with [[#lj_refreshCurrentTab|<tt>lj_refreshCurrentTab</tt>]].
::* Format a value-string specified in [[Database Format]] with no currency character and no grouping indicators (commas), and with a decimal point for fractional amounts.
::* Return a String with the value formatted using the company's locale setting for currencies, with the number of decimal places specified for the <tt>precision</tt>. If the conversion fails, return the original string.


;Syntax:
:<tt>L10n.formatDate(''value'')</tt>
:<syntaxhighlight lang="javascript" enclose="div">
::* Format a date value.
lj_refreshCurrentTab();
::* Return a String with the date formatted using the user's date format.
</syntaxhighlight>
:::'''Note:'''<br>As best practice, do not hardcode a date string, as that value will fail for a user in a different locale. Instead, create an instance of a JavaScript <tt>Date</tt> object and pass that value as the argument to the function.


;Sample Usage:
:<tt>L10n.formatDateTime(''value'')</tt>
{{:JavaScript closeDialog Sample}}
::* Format a date/time value.
::* Return a String with the date formatted using the user's date format, and time formatted for the user's locale.
:::'''Note:'''<br>As best practice, do not hardcode a date or time string, as that value will fail for a user in a different locale. Instead, create an instance of a JavaScript <tt>Date</tt> object and pass that value as the argument to the function.


====lj_printRecord====
:<tt>L10n.formatNumber(''value'', ''precision'')</tt>
This function displays a customized print dialog for a record. Use it to set defaults, to limit the available choices, and to choose the [[Print Template]] which is used. (It is only available for {{type|}}s.)
::* Format a value-string specified in [[Database Format]] with no grouping indicators (commas), with a decimal point for fractional amounts.
::* Return a String with the value formatted using the user's locale, with the number of decimal places specified for the <tt>precision</tt>. If the conversion fails, return the original string.


;Syntax:
:<tt>L10n.formatPercent(''value'', ''precision'')</tt>
:<syntaxhighlight lang="javascript" enclose="div">
::* Convert a value-string specified in [[Database Format]] with no percent sign, no grouping indicators (commas), and with a decimal point for fractional amounts.
lj_printRecord('{option1}={value}&{option2}={value}&...');
::* Return a String with the value formatted using the user's locale, with the number of decimal places specified for the <tt>precision</tt>. If the conversion fails, return the original string.
</syntaxhighlight>


;Parameters:
:<tt>L10n.formatTime(''value'')</tt>
Each option has two parameters: One to specify a default value, the other to determine whether it should be displayed so it can be overridden by the user. Β 
::* Format a date/time value.
::* Return a String with the time formatted for the user's locale
:::'''Note:'''<br>As best practice, do not hardcode a date or time string, as that value will fail for a user in a different locale. Instead, create an instance of a JavaScript <tt>Date</tt> object and pass that value as the argument to the function.


By default, an option is always shown, unless explicitly hidden.
:<tt>L10n.parseCurrency(''value'')</tt>
::* Parse a currency value-string in the format specified by the company's locale setting for currencies.
::* Return a String in [[Database Format]] format. If parsing fails, return the original string.


:{| border="1" cellpadding="5" cellspacing="1"
:<tt>L10n.parseDate(''value'')</tt>
! align="left"| Parameter !! align="left"| Description
::* Parse a date-string in the format specified by the user's settings.
|-
::* Return a JavaScript <tt>Date</tt> object. If parsing fails, returns null.
| default_print_layout || '''form''' (default) - use a [[Print Form]]<br>'''template''' - use a [[Print Template]]
|-
| show_print_layout || '''yes''' (default) - allows user to specify which kind of layout to use
|-
| default_print_document || The name of the form or template to pre-select in the list of possible choices.
|-
| show_print_document || '''yes''' - allows user to change the default choice
|-
| print_immediately || '''no''' (default) - The print dialog is shown. The user can then change any options that are displayed. Printing occurs when the user clicks the Print button).<br>'''yes''' - printing occurs immediately and the results are displayed in a new window. (It only works if both <tt>default_print_layout</tt> and <tt>default_print_document</tt> are specified.)
|-
| default_page_orientation || '''portrait''' (default) or '''landscape'''
|-
| show_page_orientation || '''yes''' - allows user to change page orientation
|-
| default_pdf || '''yes''' - otherwise, an HTML page is generated
|-
| show_pdf || '''yes''' - allows user to choose HTML or PDF
|}


;Sample Usage:
:<tt>L10n.parseDateTime(''value'')</tt>
This code adds a '''[Custom Print]''' button to a [[Form]], when placed in an On Load [[Form Script]]. In this case, the goal is to restrict a user who has access to that form to a specific template. (The standard Print operation makes all templates available. A standard [[Action]] button, meanwhile, is present in every form. This code puts the button in a specific form, to restrict template access for users whose role causes it to be displayed.)
::* Parse a date/time string, where the date format is specified by the user's settings and the time format is determined by the user's locale.
:<syntaxhighlight lang="javascript" enclose="div">
::* Return a JavaScript <tt>Date</tt> object. If parsing fails, returns null.
$("#print_button").remove();
$("#edit_button").parent().append(
"<input type='button' id='customPrint' value='Custom Print' class='lj-button fg-button ui-state-default ui-corner-all' onClick=\"javascript:lj_printRecord('default_print_layout=template&show_print_layout=no&default_print_document=jsp&default_page_orientation=landscape&default_pdf=yes&show_pdf=no&print_immediately=yes');\">"
);
</syntaxhighlight>
:;How it Works:
::; <tt>$("#print_button").remove()</tt>: Remove the standard print button
::; <tt>$("#edit_button").parent().append</tt>: Finds the location of the edit button (present in every form), gets it's parent (the toolbar), and adds the new button to it.
::; <tt>class='lj-button fg-button ui-state-default ui-corner-all'</tt>: The standard CSS style elements for platform buttons.
::; <tt><nowiki><input type='button' ...</nowiki></tt>: Define the button. (The entire string is one uninterrupted line.)
::; <tt>onClick=\"javascript:lj_printRecord(...</tt>: Specify the button's action


====lj_refreshCurrentTab====
:<tt>L10n.parseNumber(''value'')</tt>
Refresh the current tab. Typically used in conjunction with [[#lj_closeDialog|<tt>lj_closeDialog</tt>]]
::* Parse a numeric value-string (with or without a fractional amount) in the format specified by the user's locale.
::* Return a String in [[Database Format]] format. If parsing fails, return the original string.


;Syntax:
:<tt>L10n.parsePercent(''value'')</tt>
:<syntaxhighlight lang="javascript" enclose="div">
::* Parse a percentage-string in the format specified by the user's locale.
lj_refreshCurrentTab();
::* Return a String in [[Database Format]] format. If parsing fails, return the original string.
</syntaxhighlight>


;Sample Usage:
:<tt>L10n.parseTime(''value'')</tt>
{{:JavaScript closeDialog Sample}}
::* Parse a time-string in the format specified by the user's locale setting.
::* Return a JavaScript <tt>Date</tt> object. If parsing fails, returns null.


====lj_refreshTab====
:<tt>L10n.validateCurrency(''value'')</tt>
Refresh a specific tab. Typically used in conjunction with [[#lj_closeDialog|<tt>lj_closeDialog</tt>]]
::* Verify that the currency value-string is in the format specified by the company's locale setting for currencies.
::* Return <tt>true</tt> if the data is in the expected format, otherwise <tt>false</tt>.


;Syntax:
:<tt>L10n.validateDate(''value'')</tt>
:<syntaxhighlight lang="javascript" enclose="div">
::* Verify that the date string is in the format specified by the user's settings.
{window}.lj_refreshTab();
::* Return <tt>true</tt> if the data is in the expected format, otherwise <tt>false</tt>.
</syntaxhighlight>
Β 
;Sample Usage:
{{:JavaScript closeDialog Sample}}
Β 
====lj_showDialog====
This function displays a JSP/HTML [[Page]] as a dialog.
;Syntax:
:<syntaxhighlight lang="javascript" enclose="div">
lj_showDialog(url, height, width, "dialog style", "title");
</syntaxhighlight>


;Parameters:
:<tt>L10n.validateDateTime(''value'')</tt>
::* Verify the date/time string, where the date is in the format specified by the user's settings and the time format is determined by the user's locale.
::* Return <tt>true</tt> if the data is in the expected format, otherwise <tt>false</tt>.


:{| border="1" cellpadding="5" cellspacing="1"
:<tt>L10n.validateNumber(''value'')</tt>
! align="left"| Parameter !! align="left"| Description
::* Verify that the numeric value-string (with or without a fractional amount) is in the format specified by the user's locale.
|-
::* Return <tt>true</tt> if the data is in the expected format, otherwise <tt>false</tt>.
| url || A string that gives the URL of a JSP/HTML [[Page]] in the platform, in the form <tt>/networking/pages/SomePage.jsp</tt> with optional query parameters to pass data: <tt>?param1=abc&param2=xyz&...</tt>
|-
| height ||Β  The height of the dialog window, in pixels.
|-
| width || The width of the dialog window, in pixels.
|-
| dialog style || A string that specifies the display style.
:* '''popupdialogWithCloser -''' Displays the dialog with a close button.
:* '''popupdialog -''' Displays the dialog without a close button.
:: ''Note'':<br>There is also no close icon in the corner, with this option.<br>When using it, add your own controls to close the dialog.
|-
| title || Displayed in the banner of the dialog.
|}
;Sample Usage:
This sample displays a page at the specified URL in a popup dialog that has a close button.


:<syntaxhighlight lang="javascript" enclose="div">
:<tt>L10n.validatePercent(''value'')</tt>
var url = "/networking/pages/MyPage.jsp?recordId="+someValue
::* Verify that the percentage-string is in the format specified by the user's locale.
Β  Β  Β  Β  + "&returnUrl="+encodeURIComponent(lj_window_src);
::* Return <tt>true</tt> if the data is in the expected format, otherwise <tt>false</tt>.


top.lj_showDialog(url,300,350,"popupdialogWithCloser","My Page Title");
:<tt>L10n.validateTime(''value'')</tt>
</syntaxhighlight>
::* Verify that the time-string is in the format specified by the user's locale.
::* Return <tt>true</tt> if the data is in the expected format, otherwise <tt>false</tt>.
<noinclude>
<noinclude>


[[Category:JavaScript APIs]]
[[Category:JavaScript APIs]]
</noinclude>
</noinclude>

Latest revision as of 11:08, 13 August 2020

Accessing Form Fields

JavaScript is a powerful language that can do many things. But one of it's most common uses is to dynamically modify the behavior of Forms, using Form Scripting and Field Scripting.

Notepad.png

Note: To reference Form fields in JavaScript for the new AgileApps UI, see JavaScript Field Type Reference for New AgileApps User Interface.

Referencing the Current Form

In the HTML document object model (DOM), the current form is named _sdForm.
This line of code gets a reference to it and puts it in the form variable:

<syntaxhighlight lang="javascript" enclose="div">

var form = _sdForm; </syntaxhighlight>

Accessing Fields in the Current Form

To find the name of a field in the platform:

  1. Go to GearIcon.png > Customization > Objects > {object} > Fields
  2. Find the label of the field you're interested in
  3. Get its name from the Field Name column
    That name can then be used in the JavaScript code.

All fields can be accessed using the platform's JavaScript functions, as described in the Field Types section below. The most commonly accessed field types (TextField, TextArea, Date, DateTime, Time, and URL) can also be accessed using _sdForm[0]. For example, this line of code gets a reference to the first_name field, and puts it in the variable fName_field:

<syntaxhighlight lang="javascript" enclose="div">

var fName_field = _sdForm[0].first_name; </syntaxhighlight>

Fields have two properties that you can access in JavaScript:

  • name: the name of the field
  • value: the value of the field

So this line retrieves the value of the field:

<syntaxhighlight lang="javascript" enclose="div">

var fName = fName_field.value; </syntaxhighlight>

As does this longer version:

<syntaxhighlight lang="javascript" enclose="div">

var fName = _sdForm[0].first_name.value; </syntaxhighlight>

Other fields can be accessed using the platform's JavaScript functions.
For a complete list, see the Field Types section below.

Updating Fields in the Current Form

The method used to update a field depends on the field type. All of the methods have the general form:

<syntaxhighlight lang="javascript" enclose="div">

set...Value(_sdForm, field, value); </syntaxhighlight>

Below are some examples of common methods. (The section that follows contains a complete list.)

<syntaxhighlight lang="javascript" enclose="div">

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

setPickListValue(_sdForm, "first_name", "Adam");

setMultiPickListValue(_sdForm, "first_name", ["new","closed"]);

   // value is an array of strings

setRadioButtonValue(_sdForm, "first_name", "Adam");

setCheckboxState(_sdForm, "first_name", true); // checked setCheckboxState(_sdForm, "first_name", false); // unchecked

setLookupValue(_sdForm, "project_number", "123456", "My Project");

   // where 123456 is the record ID of the target record 
   // "My Project" is the value of the record locator field(s) for that record

</syntaxhighlight>

Field Type Reference

Notepad.png

Note: To view the field type reference in the new AgileApps user interface, see JavaScript Field Type Reference for New AgileApps User Interface.

The following table shows how to access and update the different field types, 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
Auto Number 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);

Currency

getTextFieldValue(_sdForm, field)
Returns: String containing value

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

Date

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

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

Date time

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

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

Dependent Picklist

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

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

Email Address

getTextFieldValue(_sdForm, field)
Returns: String containing value

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

External Lookup n/a n/a
File Field n/a n/a
Formula 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

Global Picklist

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

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

Image Field n/a n/a
Lookup

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

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

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

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 an empty string

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

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

Multi Object Lookup 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"] )

Number

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

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

Number with decimals

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

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

Percentage

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

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

Phone/Fax

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

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

Picklist

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

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

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

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");

Rich Text Area n/a n/a
Rollup Summary Field n/a n/a
TextArea

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

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

TextField

_sdForm[0].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");

Time

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

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

URL

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

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


Accessing User Information

This function returns information about the logged-in user in a json object.

<syntaxhighlight lang="javascript" enclose="div">

getUserDetails() </syntaxhighlight>

Values availble in the json object are:

  • id - user id
  • first_name - user's first name.
  • last_name - user's last name.
  • language - user's language code. (ex: en)
  • access_profile_name - user's access profile name.
  • time_zone_name - user's time zone name. (ex:America/Indianapolis)
  • time_zone_description - localized time zone description.
    ex: (GMT-05:00) Eastern Standard Time (America/Indianapolis)
  • date_format - user's date format.
  • time_format - user's time format.
  • locale - user's locale code.
  • primary_team_name - user's primary team.
  • current_role_name - user's current role.
    Can be empty if the user has a profile that allows global access, but does not play any specific role in the application.
  • roles - list of the user's roles in the current application, with current role first.
  • teams - list of teams the user belongs to, with the primary team name first.
  • userCustomFields - an object containing values for each custom field defined on the User object, where the access key is the field name
Example

This script prefills fields in current form with data for the logged-in user, where each user record has a custom field called customer_discount:

<syntaxhighlight lang="javascript" enclose="div">

var userDetails = getUserDetails(); setTextFieldValue(_sdForm, "column_id", userDetails.id); setTextFieldValue(_sdForm, "first_name", userDetails.first_name); setTextFieldValue(_sdForm, "last_name", userDetails.last_name); setTextFieldValue(_sdForm, "language", userDetails.language); setTextFieldValue(_sdForm, "time_zone_name", userDetails.time_zone_name); setTextFieldValue(_sdForm, "time_zone_description", userDetails.time_zone_description); setTextFieldValue(_sdForm, "roles", userDetails.roles) ; setTextFieldValue(_sdForm, "discount", userDetails.userCustomFields.customer_discount); </syntaxhighlight>

Hiding Action Items and Assignment Buttons

Notepad.png

Note: To apply these functions with the new AgileApps UI, see the section Considerations for Existing Custom Script Methods in JavaScript Field Type Reference for New AgileApps User Interface.

These functions can be used to hide the actions-menu-items and record-assignment buttons, by calling them from the On Load Script section of a Form Script.

hideActionsMenuItems

Hide one or more items in the ACTIONS menu:

<syntaxhighlight lang="javascript" enclose="div">

hideActionsMenuItems(['value-1', 'value-2', ...]); </syntaxhighlight> where the parameter is an array of strings that contains the menu-item values (found by inspecting the value attribute of elements in the UI).

Example
hideActionsMenuItems(['assignOwnerShipButton','claimOwnerShipButton']);

The above example hides "assign to user" and "claim" options from actions menu.

hideClaimAndAssignButtons

Hide the Claim-record and Assign-record buttons.

<syntaxhighlight lang="javascript" enclose="div">

hideClaimAndAssignButtons(['id-1', 'id-2', ...]); </syntaxhighlight> where the parameter is an array of strings which contains ID-attributes from the respective buttons.

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

The above example hides "assign to user", "assign to team" and "claim" buttons from owner pop-up.

Localization

These functions are used to format and parse data.
Learn more: Localization#JavaScript Programming

L10n.formatCurrency(value, precision)
  • Format a value-string specified in Database Format with no currency character and no grouping indicators (commas), and with a decimal point for fractional amounts.
  • Return a String with the value formatted using the company's locale setting for currencies, with the number of decimal places specified for the precision. If the conversion fails, return the original string.
L10n.formatDate(value)
  • Format a date value.
  • Return a String with the date formatted using the user's date format.
Note:
As best practice, do not hardcode a date string, as that value will fail for a user in a different locale. Instead, create an instance of a JavaScript Date object and pass that value as the argument to the function.
L10n.formatDateTime(value)
  • Format a date/time value.
  • Return a String with the date formatted using the user's date format, and time formatted for the user's locale.
Note:
As best practice, do not hardcode a date or time string, as that value will fail for a user in a different locale. Instead, create an instance of a JavaScript Date object and pass that value as the argument to the function.
L10n.formatNumber(value, precision)
  • Format a value-string specified in Database Format with no grouping indicators (commas), with a decimal point for fractional amounts.
  • Return a String with the value formatted using the user's locale, with the number of decimal places specified for the precision. If the conversion fails, return the original string.
L10n.formatPercent(value, precision)
  • Convert a value-string specified in Database Format with no percent sign, no grouping indicators (commas), and with a decimal point for fractional amounts.
  • Return a String with the value formatted using the user's locale, with the number of decimal places specified for the precision. If the conversion fails, return the original string.
L10n.formatTime(value)
  • Format a date/time value.
  • Return a String with the time formatted for the user's locale
Note:
As best practice, do not hardcode a date or time string, as that value will fail for a user in a different locale. Instead, create an instance of a JavaScript Date object and pass that value as the argument to the function.
L10n.parseCurrency(value)
  • Parse a currency value-string in the format specified by the company's locale setting for currencies.
  • Return a String in Database Format format. If parsing fails, return the original string.
L10n.parseDate(value)
  • Parse a date-string in the format specified by the user's settings.
  • Return a JavaScript Date object. If parsing fails, returns null.
L10n.parseDateTime(value)
  • Parse a date/time string, where the date format is specified by the user's settings and the time format is determined by the user's locale.
  • Return a JavaScript Date object. If parsing fails, returns null.
L10n.parseNumber(value)
  • Parse a numeric value-string (with or without a fractional amount) in the format specified by the user's locale.
  • Return a String in Database Format format. If parsing fails, return the original string.
L10n.parsePercent(value)
  • Parse a percentage-string in the format specified by the user's locale.
  • Return a String in Database Format format. If parsing fails, return the original string.
L10n.parseTime(value)
  • Parse a time-string in the format specified by the user's locale setting.
  • Return a JavaScript Date object. If parsing fails, returns null.
L10n.validateCurrency(value)
  • Verify that the currency value-string is in the format specified by the company's locale setting for currencies.
  • Return true if the data is in the expected format, otherwise false.
L10n.validateDate(value)
  • Verify that the date string is in the format specified by the user's settings.
  • Return true if the data is in the expected format, otherwise false.
L10n.validateDateTime(value)
  • Verify the date/time string, where the date is in the format specified by the user's settings and the time format is determined by the user's locale.
  • Return true if the data is in the expected format, otherwise false.
L10n.validateNumber(value)
  • Verify that the numeric value-string (with or without a fractional amount) is in the format specified by the user's locale.
  • Return true if the data is in the expected format, otherwise false.
L10n.validatePercent(value)
  • Verify that the percentage-string is in the format specified by the user's locale.
  • Return true if the data is in the expected format, otherwise false.
L10n.validateTime(value)
  • Verify that the time-string is in the format specified by the user's locale.
  • Return true if the data is in the expected format, otherwise false.