Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This class provides methods to configure forms. These methods These methods can only be used on the client side only.

You can also use these methods to configure the dependencies between fields and values. For example, changing values in of the fields or clear clearing the fields.

SimpleForm(table, sys_id)


Instantiates a new SimpleForm object.

NameTypeMandatoryDefault Value
tableStringYN
sys_idStringYN


Code Block
languagejs
themeEclipse
titleSimpleForm
linenumberstrue
const formObject = new SimpleForm(s_form.table, s_form.sysId);

Return:

TypeDescriptionObjectThis method returns a form object.

s_form.addErrorMessage(message)

This method displays the error toast message in the bottom right corner.

Parameter(s):

NameTypeMandatoryDefault ValuemessageStringYN

Return:

TypeDescriptionVoidThis method does not return a value.
window.s_widget_custom.submit = async function () {
  await s_widget.serverUpdate();
  const tableName = s_widget.getFieldValue('table_name');
  const recordId = s_widget.getFieldValue('record_id');

  const builtInForm = new SimpleForm(tableName, recordId);
  
  await builtInForm.save().then(s_form.save());
  s_modal.setShow(false);
  s_go.reloadWindow();
}


Return:

TypeDescription
ObjectThis method returns a form object.

Global variable usage


Within any record form, you can use predefined global variables.

Variable

Description

currentFieldLabel

Defines a link to a Wrapper object for a field. The variable is used with the getColumnId() method.
For example, window.currentFieldLabel.getColumnId().

One of the usage cases of this variable is the field context menu call. 

Image Added

currentUiAction

Contains an object with an ID of the UI action record. It is used when the context menu is called.

One of the usage cases is receiving information about UI actions when calling the context menu.

Image Added

s_form.addErrorMessage(message)


This method displays the error toast message in the bottom right corner.


Parameter(s):

NameTypeMandatoryDefault Value
messageString

Example:

Code Block
languagejs
themeEclipse
titleaddErrorMessage
linenumberstrue
s_form.addErrorMessage('Need more information');

s_form.addInfoMessage(message, durationMilliseconds)

This method displays an informational toast message in the bottom right corner. The message is expirable, its expire period (in milliseconds) should be specified by second parameter.

Parameter(s):

NameTypeMandatoryDefault ValuemessageStringYNdurationMillisecondsNumber
YN


Return:

TypeDescription
VoidThis method does not return
a
value.


Example:

Code Block
languagejs
themeEclipse
titleaddInfoMessageaddErrorMessage
linenumberstrue
s_form.addInfoMessageaddErrorMessage('RecordPlease successfully created', 1000enter a valid email address using the following format: joe@example.com');

s_form.

addOption

addInfoMessage(

fieldName

message,

choiceValue

durationMilliseconds)


This method adds a choice option to the end of the choice list field (if option with passed choiceValue defined for fieldName for current table options set).

Note

Please note that this method is asynchronous; for better performing, use the await keyword like shown in the code example below.

Parameter(s):

displays an informational toast message at the bottom right corner. The message disappears after a certain period of time. Specify this period in milliseconds in the second parameter.


Parameter(s):

NameType
NameType
MandatoryDefault Value
fieldName
messageStringYN
choiceValue
durationMilliseconds
String
Number
Y
NN


Return:

TypeDescription
VoidThis method does not return
a
value.


Example:

const states = ['-1', '0', '2', '5'];
Code Block
languagejs
themeEclipse
titleaddOptionaddInfoMessage
linenumberstrue
s_form.addInfoMessage('Link copied to clipboard', 2000);

s_form.

clearOptions('state'); states.forEach(stateValue => { await s_form.addOption('state', stateValue); }

addSuccessMessage(message, durationMilliseconds)


This method displays a message about a successul action in the bottom right corner. The message disappears after a certain period of time. Specify this period in milliseconds in the second parameter.


Parameter(s):

NameTypeMandatoryDefault Value
messageStringYN
durationMillisecondsNumberNN


Return:

s_form.clearMessages()

This method is used to close all kinds of messages (both informational and error) in the form.

Return:

Type
Type
Description
VoidThis method does not return
a
value.


Example:

Code Block
languagejs
themeEclipse
titleclearMessages()addSuccessMessage
linenumberstrue
s_i18nform.getMessageaddSuccessMessage('EndRecord datewas time cannot be less than start date timesuccessfully added!', (response) => {
  3000);

s_form.

clearMessages

addWarningMessage(

); s_form.addErrorMessage(response); return false; // abort form submit });

message, durationMilliseconds)


This method displays a warning message in the bottom right corner. The message disappears after a certain period of time. Specify this period in milliseconds in the second parameter

s_form.clearOptions(fieldName)

Using this method, you can remove all options from the choice list.

Parameter(s):

NameTypeMandatoryDefault Value
fieldName
messageStringYN
durationMillisecondsNumberNN


Return:

TypeDescription
VoidThis method does not return
a
value.


Example:

Code Block
languagejs
themeEclipse
titleclearOptionsaddWarningMessage
linenumberstrue
const choices =
  {
    "Phone": "10",
    "Email": "20",
    "Self-service": "30"
  };
const choicesArray = Object.keys(choices);
s_form.clearOptions('contact_type');
choicesArray.forEach((choiceValue) => {
  s_form.addOption('contact_type', choices[choiceValue]);
});

s_form.clearValue(fieldName)

This method is used to clear out any field, i.e., delete its value.

Using this method you can select a value and remove it from the field.

It returns 'true' if it is able to clear the value from the field.

It returns 'true' in the following cases:

  • if the column_type is either Boolean or Record Class;
  • if the column_name is equal to 'sys_id';
  • if the column_type is Choice and it does not have a default value.

If the method returns 'false', then the field. will not be cleared.

Parameter(s):

s_form.addWarningMessage('This record has been modified by another user', 3000);

s_form.addOption(fieldName, choiceValue)


This method adds a choice option to the end of the choice list field if option with passed choiceValue defined for fieldName for current table options set.

Note

Please note that this method is asynchronous; for better performance, use the await keyword as shown in the code example below.


Parameter(s):

fieldName
NameTypeMandatoryDefault Value
fieldNameStringYN
choiceValue
NameTypeMandatoryDefault Value
StringYN


Return:

TypeDescription
Boolean
PromiseThis method returns
the boolean value ('true' or 'false') in the cases described above
a Promise object.


Example:

Code Block
languagejs
themeEclipse
titleclearValueaddOption
linenumberstrue
if (!s_form.getValue('sprint')) {
 const states = ['-1', '0', '2', '5'];

s_form.clearOptions('state');
states.forEach(async (stateValue) => {
  await s_form.clearValueaddOption('pointsstate', stateValue);
})

s_form.

isFieldChanged

clearMessages(

fieldName

)


This method is used to check if the specified field has been changed or not.

Info

If there is a client script running on the specified form and changing it, this method will return 'true'. That is, it is not necessary that the change is made by a user, the form can be changed by a script.

Parameter(s):

NameTypeMandatoryDefault ValuefieldNameStringYN

Return:

TypeDescriptionBoolean

This method returns 'true' if the specified field has been changed; otherwise returns 'false'.

close all kinds of messages (both informational and error) in the form.


Return:

TypeDescription
VoidThis method does not return value.


Code Block
languagejs
themeEclipse
titleclearMessages()
linenumberstrue
s_i18n.getMessage('End date time cannot be less than start date time', (response) => {
  s_form.clearMessages();
  s_form.addErrorMessage(response);
});
return false; // abort form submit

s_form.clearOptions(fieldName)


Using this method, you can remove all options from the choice list.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN


Return:

TypeDescription
VoidThis method does not return a value

Example:

Code Block
languagejs
themeEclipse
titles_form.isFieldChanged
linenumberstrue
if (s_form.isFieldChanged('state') && s_form.getValue('state') != 'new') {
    return false;
}

s_form.formId

This class property returns the current form ID for the current user. The form view ID is an ID of the record in the UI Forms (sys_ui_form) dictionary.

Return:

Type

Description

StringThis method returns the record form view ID (ID of the record in the UI Forms (sys_ui_form) dictionary)
.


Example:

Code Block
languagejs
themeEclipse
titleformIdclearOptions
linenumberstrue
const urlchoices = new URL(`${API_BASE_URL}/export/excel`);
if (typeof s_form !== "undefined") {
  url.searchParams.set('form_id', s_form.formId);
}
window.open(url, "_blank"[
  "Phone",
  "Email",
  "Self-service"
];

s_form.clearOptions('contact_type');
choices.forEach(async (choiceValue) => {
  await s_form.addOption('contact_type', choiceValue);
});

s_form.

getChanges

clearValue(fieldName) 
Anchor
s_form.clearValue
s_form.clearValue


This method is used to retrieve information about changed fields: field name, previous value, current value.

Info

If there is a client script running on this form and changing it, the getChanges() method will include such fields in the array. That is, it is not necessary that the change is made by a user, it can be done by a script.

Return:

TypeDescriptionArray

This method returns an array of objects with field changes. Object contains field name, previous value and the current value.

clear out any field, i.e., delete its value.

Using this method you can select a value and remove it from the field.

It returns 'false' if it is unable to clear the value of the field in the following cases:

  • if the column_type is either Boolean or Record Class.
  • if the column_name is equal to 'sys_id'.
  • if the column_type is Choice and it does not have a default value.

If the method returns 'true', then the field will be cleared.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN


Return:

TypeDescription
BooleanThis method returns the boolean value ('true' or 'false') in the cases described above.


Example:

Code Block
languagejs
themeEclipse
titleclearValue
linenumberstrue
if (!s_form.getValue('sprint')) {
  s_form.clearValue('points');
}

s_form.isFieldChanged(fieldName)


This method is used to check if the specified field has been changed or not.


Info

If there is a client script running on the specified form and changing it, this method will return 'true'. It is not necessary that the change is made by a user, the form can be changed by a script.

Parameter(

Code Block
languagejs
themeEclipse
titles_form.getChanges
linenumberstrue
if (s_form.isChanged()) {
    const changedFields = s_form.getChanges();
    let payload = {};
    changedFields.forEach((field) => {
      payload[field.fieldName] = field.currentValue;
    });
    SimpleStorage.setItem('payload', payload);
}

s_form.getLabelOf(fieldName)

The method returns the label text value.

Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN


Return:

TypeDescription
String
Boolean

This method returns

string containing attribute label value

'true' if the specified field has been changed; otherwise returns 'false'.


Example:

Code Block
languagejs
themeEclipse
titlegetLabelOfs_form.isFieldChanged
linenumberstrue
if (s_form.getValueisFieldChanged('namestate').match(/[\/|_*]/g) && s_form.getValue('state') != 'new') {
  s_form.addErrorMessage(`Field "${s_form.getLabelOf('name')}" contains invalid characters.`);return false; // abort form submit
}

s_form.

getREMDisplayValue(fieldName)

formId


This

method gets the displayable REM attribute value.

class property returns the current form ID for the current user. The form view ID is an ID of the record in the UI Forms (sys_ui_form) dictionary.

Parameter(s):

Name

Type

Mandatory

Default Value

fieldNameStringYN

Return:

Type

Description

StringThis method returns attribute displayable valuethe record form view ID (ID of the record in the UI Forms (sys_ui_form) dictionary).


Example:

Code Block
languagejs
themeEclipse
titleformId
linenumbersgetREMDisplayValuetrue
const url = new URL(`${API_BASE_URL}/export/excel`);
if (typeof s_form !== "undefined") {
  url.searchParams.set('form_id', s_form.formId);
}
window.open(url, "_blank"s_form.addErrorMessage(`Service "${s_form.getREMDisplayValue('service')}" is not available`);

s_form.

getREMLabelOf

getChanges(

fieldName

)


This method gets the label text value of the REM attribute.

Parameter(s):

is used to retrieve information about changed fields: field name, previous value, current value.

Info

If there is a client script running on this form and changing it, the getChanges() method will include such fields in the array. It is not necessary that the change is made by a user, it can be done by a script.

Name

Type

Mandatory

Default Value

fieldNameStringYN

Return:

String string containing attribute label value.
TypeDescription
Array

This method returns

Example:

an array of objects with field changes. Object contains field name, previous value and the current value.


Code Block
languagejs
themeEclipse
titlegetREMLabelOfs_form.getChanges
linenumberstrue
if (!!s_form.getValue('phone').match(/[^\+\s\d\(\)\-]/gisChanged()) {
  const  s_form.addErrorMessage(`Field "${changedFields = s_form.getREMLabelOfgetChanges('phone')}" contains invalid characters.`);
}

s_form.getREMValue(fieldName)

);
  let payload = {};
  changedFields.forEach((field) => {
    payload[field.fieldName] = field.currentValue;
  });
  SimpleStorage.setItem('payload', payload);
}


s_form.getLabelOf(fieldName)


The method returns the label text This method gets the REM attribute value.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN


Return:

TypeDescription
StringThis method returns a string containing the
internal value of the specified field
attribute label value.


Example:

Code Block
languagejs
themeEclipse
titlegetREMValuegetLabelOf
linenumberstrue
if (!!const FIELD_LABEL = s_form.getREMValuegetLabelOf('modelusername')) {
    s_form.hideFieldMsg('model');
};
s_form.addErrorMessage(`Field "${FIELD_LABEL}" contains invalid characters.`);

s_form.

getSections

getREMDisplayValue(fieldName)

Using this method, you can get an array of sections.


This method gets the displayable REM attribute value.


Parameter(s):

Name

Type

Mandatory

Default Value

fieldNameStringYN

Return:

Type

Description

Array of HTML elementsThe form sections.

s_form.getSectionNames()

This method allows returning an array, which will contain the names of all sections, visible or not.

Return:

TypeDescription
StringThis method returns the attribute displayable value.

Example:

Code Block
languagejs
themeEclipse
titlegetREMDisplayValue
s_form.addErrorMessage(`Service "${s_form.getREMDisplayValue('service')}" is not available`);
Array of stringsThis method returns array containing section names.


s_form.

getTableName

getREMLabelOf(fieldName)


This method returns the table name to which the specified record relates.

Note

The method returns system table name, not the table title. Example:

gets the label text value of the REM attribute.


Parameter(s):

Name

Type

Mandatory

Default Value

fieldNameStringYN
Table nameitsm_incidentTable titleIncidents


Return:

System table name

Type

Description

StringThis method returns a string containing the attribute label value.

Example:

Code Block
languagejs
themeEclipse
titlegetTableNamegetREMLabelOf
linenumberstrue
if (['article', 'model'].includes(const FIELD_LABEL = s_form.getTableNamegetREMLabelOf())) {
    'phone');
s_form.setSectionMandatory('Review', true);
} else {
    s_form.setSectionMandatory('Review', false);
}addErrorMessage(`Field "${FIELD_LABEL}" contains invalid characters.`);

s_form.

getUniqueValue

getREMValue(fieldName)


This method returns the unique record ID (sys_id).gets the REM attribute value.

Parameter(s):

Name

Type

Mandatory

Default Value

fieldNameStringYN

Return:

Type

Description

StringThis method returns the
record ID; otherwise, returns NULL
database value of the specified field.

Example:

Code Block
languagejs
themeEclipse
titlegetUniqueValuegetREMValue
linenumberstrue
const sysId = if (s_form.getUniqueValuegetREMValue();
const currentRecord = new SimpleRecord('model')) {
  s_form.tablehideFieldMsg('model');
currentRecord.get(sysId, ()=> {
  if (currentRecord.type == 'unavailable') {
    return false; // abort form submit
  }
});}

s_form.getSections()


Using this method, you can get an array of sections.


Return:

TypeDescription
Array of HTML elementsThe form sections.

s_form.getSectionNames()


This method allows returning an array, which will contain the names of all sections, visible or not.


Return:

TypeDescription
Array of stringsThis method returns an array containing section names.

s_form.

getValue

getTableName(

fieldName

)


This method returns the

database value of

table name to which the specified

field

record relates.

Warning

IsDisplayValue parameter was maintained in earlier versions but has been deprecated from version 1.1 and no longer valid. Avoid using it in your scripts. To get a displayed value of a field, use the s_form.getDisplayValue method.

Parameter(s):

Note

The method returns the system table name, not the table title. Example:

Table nameitsm_incident
Table titleIncidents


NameTypeMandatoryDefault ValuefieldNameStringYN

Return:

TypeDescription
String
This method returns the database value of the specified field
System table name.


Example:
Code Block
languagejs
themeEclipse
titlegetValuegetTableName
linenumberstrue
const callerIdTABLE_NAME = s_form.getValuegetTableName('caller_id');
console.log(TABLE_NAME);

s_form.getUniqueValue()


This method returns the unique record ID (sys_id).


Return:

TypeDescription
StringThis method returns the record ID; otherwise, returns NULL.


Example:

Code Block
languagejs
themeEclipse
titlegetUniqueValue
linenumberstrue
const TABLE_NAME = s_form.getTableName();
const RECORD_ID = s_form.getUniqueValue();
const currentRecord = new SimpleRecord(TABLE_NAME);
currentRecord.get(RECORD_ID, ()=> {
  if (currentRecord.sys_id === RECORD_ID) {
if (!callerId) {
  const callerRecord = new SimpleRecord('employee');
  callerRecord.get(callerId, ()=> {
    if (!!callerRecord.sys_id &&
      callerRecord.personal_schedule) {
      await s_form.setValue('schedule', callerRecord.personal_schedule);
    } else {
      s_form.addInfoMessage('Users schedule is not defined'currentRecord.sys_created_at);
    }
  });
}

s_form.

getDisplayValue

getValue(fieldName)


This method returns the

displayed

database value of the specified field.


Parameter(s):

NameTypeMandatoryDefault
value
Value
fieldNameStringYN


Return:

TypeDescription
String
The displayed

This method returns the database value of the specified field.


Example:

Code Block
languagejs
themeEclipse
titlegetDisplayValuegetValue
linenumberstrue
s_form.addInfoMessage(`Service "${const callerId = s_form.getDisplayValuegetValue('service')}" is no available`);

s_form.goBack()

This method allows to perform redirect to the previous page; if not possible then redirect direction is a list view of the current essence (for example, to a list of incidents out of a incident record).

Return:

Type

Description

VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titlegoBack
linenumberstrue
if (s_form.isChanged()) {
    s_form.save().then(() => s_form.goBack());
caller_id');
if (!callerId) {
  const callerRecord = new SimpleRecord('employee');
  callerRecord.get(callerId, ()=> {
    if (callerRecord.sys_id &&
      callerRecord.personal_schedule) {
      await s_form.setValue('schedule', callerRecord.personal_schedule);
    } else {
      s_form.goBack(addInfoMessage('Users schedule is not defined');
    }
  });
}

s_form.

isChanged

getDisplayValue(fieldName)


This method allows to get information whether a record form has been changed or not.

Return:

returns the displayed value of the field.


Parameter(s):

NameTypeMandatoryDefault value
fieldNameStringYN


Return:

TypeDescription
StringThe displayed value of the specified field

Type

Description

BooleanThe method returns 'true' if any changes were made on the record form; otherwise, it returns 'false'
.


Example:

Code Block
languagejs
themeEclipse
titleisChangedgetDisplayValue
linenumberstrue
if (s_form.isChangedaddInfoMessage())`Service "${
    s_form.savegetDisplayValue().then(() => 'service')}" is not available`);

s_form.goBack()

); } else { s_form.goBack(); }

s_form.hideFieldMsg(input)

This method, as opposed to the s_form.showFieldMsg() method, allows to hide informational or error messages on the specified form field.

Parameter(s):

NameTypeMandatoryDefault ValueinputStringYN

Return:

TypeDescriptionVoidThis method does not return a value.


This method allows performing redirect to the previous page; if not possible then redirect to the list view of the current essence, for example, to a list of incidents out of a incident record.


Return:

Type

Description

VoidThis method does not return value.


ExampleExample:

Code Block
languagejs
themeEclipse
titlehideFieldMsggoBack
linenumberstrue
if (!!s_form.getValueisChanged('state')) {
  s_form.hideFieldMsg('state');
}save().then(() => s_form.
hideRelatedLists()
goBack());
} else {
  s_form.goBack();
}


s_form.isChanged()


This method allows to get information whether a record form has been changed or not

Using this method, you can hide all related lists on the form.


Return:

Type

Description

Void
Boolean
This method does not return a value
The method returns 'true' if any changes were made on the record form; otherwise, it returns 'false'.


Example:

Code Block
languagejs
themeEclipse
titlehideRelatedListisChanged
linenumberstrue
if (s_form.getValueisChanged('type')) == 'internal'){
  s_form.save().then(() => s_form.goBack());
} else {
  s_form.hideRelatedListsgoBack();
}

s_form.

isMandatory

hideFieldMsg(fieldName)


This method is used to check if the specified field is mandatory or not, as opposed to the s_form.showFieldMsg() method, allows hidding informational or error messages in the specified form field.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN


Return:

TypeDescription
Boolean
VoidThis method
returns 'true' if the field is mandatory; otherwise returns 'false'
does not return value.


Example:

Code Block
languagejs
themeEclipse
titles_form.isMandatoryhideFieldMsg
linenumberstrue
if (s_form.isMandatory('state') && !s_form.getValue('state')) {
    s_form.addInfoMessagehideFieldMsg('State cannot be Nonestate');
}

s_form.

hideRelatedList

hideRelatedLists(

relListTitle

)


Using this method, you can specify a related list you want to hide.

Parameter(s):

hide all related lists on the form.


NameTypeMandatoryDefault ValuerelListTitleStringYN

Return:

TypeDescription
VoidThis method does not return
a
value.


Example:

Code Block
languagejs
themeEclipse
titlehideRelatedList
linenumberstrue
if (s_form.getValue('type') == 'externalinternal') {
  s_form.hideRelatedListhideRelatedLists('Customer');
}

s_form.

isNewRecord

isMandatory(fieldName)

If the record was never saved, this method returns 'true'; otherwise, it returns 'false'.

This method is used to check if the specified field is mandatory or not.

Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN

Return:

TypeDescription
Boolean
If the record was never saved then this
This method returns 'true'
; otherwise, it
if the field is mandatory; otherwise returns 'false'.

Example:

Code Block
languagejs
themeEclipse
titleisNewRecords_form.isMandatory
linenumberstrue
if (!!s_form.isNewRecordisMandatory()'state') {
  await && !s_form.setValuegetValue('state', 'new');)) {
  s_form.setReadOnlyaddInfoMessage('state', trueState cannot be None');
}

s_form.

isReadonly

hideRelatedList(

fieldName

relListTitle)


This method is used to check if the specified field is editable or read-onlyUsing this method, you can specify a related list you want to hide.


Parameter(s):

NameTypeMandatoryDefault Value
fieldName
relListTitleStringYN


Return:

TypeDescription
Boolean
VoidThis method
returns 'true' if the field is read-only; otherwise returns 'false'
does not return value.


Example:

Code Block
languagejs
themeEclipse
titles_from.isReadonlyhideRelatedList
linenumberstrue
if (!s_form.isReadonlygetValue('statetype')) {
    await== 'external') {
  s_form.setValuehideRelatedList('state', 'new'Customer');
}

s_form.

isSectionVisible

isNewRecord(

sectionName

)

This method defines if a specified section is visible or not.

Parameter(s):


If the record was never saved, this method returns 'true'; otherwise, it returns 'false'.


NameTypeMandatoryDefault ValuesectionNamestringYN

Return:

TypeDescription
Boolean
This
If the record was never saved then this method returns 'true'
if the section is visible
;
otherwise
 otherwise, it returns 'false'.


Example:

Code Block
languagejs
themeEclipse
titlegetSectionNamesisNewRecord
linenumberstrue
if (s_form.isSectionVisibleisNewRecord('Instructions')) {
  await s_form.addInfoMessagesetValue('state'Check out the "Instructions" section, 'new');
  s_form.setReadOnly('state', 5000true);
}

s_form.

isValid

isReadonly(fieldName)


This method is used to check if the specified form field is valid editable or not.read-only.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN


Return:

TypeDescription
BooleanThis method returns 'true' if the form field is validread-only; otherwise , returns 'false'.
Note

It makes sense to use this method if a form contains fields of the Date, Date/Time and Date/Time Specific types, due the method does not support validation checks for fields of other types.

Example:


Example:

Code Block
Code Block
languagejs
themeEclipse
titles_formfrom.isValidisReadonly
linenumberstrue
if (!s_form.isValidisReadonly('state')) {
   await s_form.addErrorMessagesetValue('This form is invalidstate', 'new');
}

s_form.

isVisible

isSectionVisible(

fieldName

sectionName)


This method is used to check if the specified field defines if a specified section is visible or not.


Parameter(s):

NameTypeMandatoryDefault Value
fieldName
sectionName
String
stringYN


Return:

TypeDescription
Boolean
The
This method returns 'true' if the
field
section is visible; otherwise, it returns 'false'.

Example:


Code Block
languagejs
themeEclipse
titles_form.isVisiblegetSectionNames
linenumberstrue
if (s_form.isVisibleisSectionVisible('stateInstructions')) {
    s_form.setSectionDisplayaddInfoMessage('ControlsCheck out the "Instructions" section', true5000);
}

s_form.

removeOption

isValid(

fieldName, choiceValue

)

Using this method, you can specify and delete an option from the list.

Parameter(s):

NameTypeMandatoryDefault ValuefieldNameStringYNchoiceValueStringYNReturn:TypeDescriptionVoid

This method is used to check if the specified form is valid or not.


Return:

TypeDescription
BooleanThis method returns 'true' if the form is valid; otherwise, returns 'false'.


Note

It makes sense to use this method if the form contains fields of the Date, Date/Time and Date/Time Specific types, due the method does not support validation checks for fields of other types

This method does not return a value

.


Example:

Code Block
languagejs
themeEclipse
titleremoveOptions_form.isValid
linenumberstrue
const serviceId = if (!s_form.getValueisValid('service');
if (!!serviceId) {
  const service = new SimpleRecord('sys_cmdb_ci_service');
  service.get(serviceId, ()=> {
    if (service.business_criticality > '1') {
      s_form.removeOption('impact', 'low');
      s_form.removeOption('urgency', 'low');
    }
  });
}

s_form.save()

This method saves the record without leaving its form (just updating).
)) {
  s_form.addErrorMessage('This form is invalid');
}

s_form.isVisible(fieldName)


This method is used to check if the specified field is visible or not.

Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN

Return:

TypeDescription
Object
Boolean
This method returns a promise containing specific data
The method returns 'true' if the field is visible; otherwise returns 'false'.

Example:

Code Block
languagejs
themeEclipse
titlesave()s_form.isVisible
linenumberstrue
if (s_form.saveisVisible('state').finally(__resolveServerResponse);) {
  s_form.setSectionDisplay('Controls', true);
}

s_form.

setLabelOf

refreshUiActions(

fieldName, value

)


This method sets the text value of the field label.

Parameter(s):

reloads all UI actions on the form and recalculates the server condition defined for these UI actions without refreshing the page.

NameTypeMandatoryDefault ValuefieldNameStringYNvalueStringYN

Return:

TypeDescription
VoidThis method does not return a value.
Example:


Code Block
languagejs
themeEclipse
titlesetLabelOfs_form.refreshUiActions()
linenumberstrue
ifconst stateValue = (s_form.tablegetValue('state');
if (stateValue == 'userin-progress') {  
    s_form.setLabelOf('email', 'Email'refreshUiActions(); 
} else {
  s_


s_form.

setLabelOf('email', 'Personal Email'); }

removeOption(fieldName, choiceValue)


Using this method, you can specify and delete an option from the list.

s_form.setMandatory(fieldName, mandatory)

This method is used to change a specified field to mandatory field, i.e., it cannot be null.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN
mandatory
choiceValue
Boolean
StringYN


Return:

TypeDescription
VoidThis method does not return
a
value.


Example:

Code Block
languagejs
themeEclipse
titlesetMandatoryremoveOption
linenumberstrue
const mandatoryColumnserviceId =
  (scriptType == 'onChange' || scriptType == 'onCellEdit');
s_form.setMandatory('column_id', mandatoryColumn);

s_form.setReadOnly(fieldName, readOnly)

This method is used to change a specified field to read-only or editable.

If the field is mandatory, it cannot be set to read-only. First, use the s_form.setMandatory() method and then make it read-only.

Parameter(s):

NameTypeMandatoryDefault ValuefieldNameStringYNreadOnlyBooleanYNReturn:
s_form.getValue('service');
if (serviceId) {
  const service = new SimpleRecord('sys_cmdb_ci_service');
  service.get(serviceId, ()=> {
    if (service.business_criticality > '1') {
      s_form.removeOption('impact', 'low');
      s_form.removeOption('urgency', 'low');
    }
  });
}


s_form.save()


This method saves the record without leaving its form.


Return:

TypeDescription
StringThis method returns the ID of the saved record.
TypeDescriptionVoidThis method does not return a value


Example:

Code Block
languagejs
themeEclipse
titlesetReadOnlysave()
linenumberstrue
if (!!const sysId = await s_form.getValue('any_tables')){
 save().finally(__resolveServerResponse);
await s_formuser.setReadOnly('table_id'setPreference(preferenceApplicationName, truepackApplicationId);
 await s_formuser.setMandatory('table_id'setPreference(preferenceLocalPackName, falsesysId);
await  s_formpref.setVisible('table_id', falserefresh();
}


s_form.

setREMLabelOf

setLabelOf(fieldName, value)


This message method sets the plain text value of the REM attribute field label.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN
valueStringYN


Return:

TypeDescription
String
VoidThis method does not return
a
value.


Example:

Code Block
languagejs
themeEclipse
titlesetREMLabelOfsetLabelOf
linenumberstrue
if (s_form.getTableName() == 'user'"employee") {  
  s_form.setLabelOf("email",  s"Personal Email");
  s_form.setREMLabelOfsetLabelOf('"manager.email'", "Manager's Email'");
} else {
    s_form.setREMLabelOfsetLabelOf('"email'", 'Personal "Email'");
}


s_form.

setREMMandatory

setMandatory(fieldName, mandatory)


This method allows is used to make change a field specified by REM attribute mandatoryspecified field to a mandatory field, i.e., it cannot be null.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN
mandatoryBoolean
Y
N
'
true
'


Return:

TypeDescription
Boolean

This method returns 'true' if its execution has been successful; otherwise, it returns 'false'.

Example:

This method returns false in the following cases:

  • If a field is read-only and does not contain any value.
  • If a field is mandatory, it is impossible to clear the Mandatory checkbox with the s_form.setMandatory('some_field', false) method.



Example:

Code Block
languagejs
themeEclipse
titlesetMandatory
linenumberstrue
const scriptType = 
Code Block
languagejs
themeEclipse
titlesetREMMandatory
linenumberstrue
const isDeliveryFilled = !!s_form.getValue('delivery''type');
const mandatoryColumn = ['onChange', 'onCellEdit'].includes(scriptType);
s_form.setREMMandatorysetVisible('phonecolumn_id', isDeliveryFilledmandatoryColumn);
s_form.
setREMReadOnly(fieldName, readOnly)
setMandatory('column_id', mandatoryColumn);

s_form.setReadOnly(fieldName, readOnly)


This method is used to change a specified field to read-only or editable

This method allows to make a field specified by REM attribute read-only.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN
readOnlyBoolean
Y
N
'
true
'


Return:

TypeDescription
Boolean

This method returns 'true' if its execution has been successful; otherwise, it returns 'false'.

This method returns false in the following cases:

  • If a field is read-only, it is impossible to clear the Read Only checkbox with the s_form.setReadOnly('some_field', false) method.
  • If a mandatory field is empty and read-only.

Example:

Code Block
languagejs
themeEclipse
titlesetREMReadOnlysetReadOnly
linenumberstrue
if (!!s_form.isNewRecordgetValue('any_tables')) {
  s_form.setMandatory('table_id', false);
  s_form.setREMValuesetReadOnly('statetable_id', 'new'true);
    s_form.setREMReadOnlysetVisible('statetable_id', truefalse);
}

s_form.

setREMValue

setREMLabelOf(fieldName,

databaseValue

value)


This method allows to set a message sets the plain text value of the REM attribute label.


Parameter(s):

Object

Name

Type

Mandatory

Default Value

fieldNameStringYN
databaseValuevalueStringYN


Return:

Type

Description

Void
StringThis method
does not return a
returns the set value.


Example:

Code Block
languagejs
themeEclipse
titlesetREMValuesetREMLabelOf
linenumberstrue
if (!!s_form.isNewRecordgetTableName() == 'user') {
    s_form.setREMValuesetREMLabelOf('stateemail', 'newEmail');
} else {
  s_form.setREMLabelOf('email', 'Personal Email');
}


s_form.

setREMVisible

setREMMandatory(fieldName,

display

mandatory)


This method allows to define visibility of making the field specified by REM attribute mandatory.


Parameter(s):

Name

Type

Mandatory

Default Value

fieldNameStringYN
display
mandatoryBooleanY
N
'true'


Return:

Type

Description

VoidThis method does not return a value.

Boolean

This method returns 'true' if its execution has been successful; otherwise, it returns 'false'.

This method returns false in the following cases:

  • If a field is read-only and does not contain any value.
  • If a field is mandatory, it is impossible to clear the Mandatory checkbox with the s_form.setMandatory('some_field', false) method.


Example:

Code Block
languagejs
themeEclipse
titlesetREMMandatory
linenumberssetREMVisibletrue
const isDeliveryFilled = !!s_form.setREMVisiblegetValue('additional_info', !delivery');
s_form.isNewRecord())setREMMandatory('phone', isDeliveryFilled);


s_form.

setSectionDisplay

setREMReadOnly(

sectionName

fieldName,

display

readOnly)


Using this method, you can specify a section you want to hideThis method allows making the field specified by REM attribute read-only.


Parameter(s):

Name

Type

Mandatory

Default Value

sectionName
fieldNameStringYN
display
readOnlyBooleanY
N
'true'


Return:

Type

Description

Void
Boolean

This method

does not return a value.

Example:

returns 'true' if its execution has been successful; otherwise, it returns 'false'.

This method returns false in the following cases:

  • If a mandatory field is empty and set to read-only.
  • If a field is read-only, it is impossible to clear the Read Only checkbox with the s_form.setReadOnly('some_field', false) method.

Example:

Code Block
languagejs
themeEclipse
titlesetREMReadOnly
linenumberstrue
Code Block
languagejs
themeEclipse
titlesetSectionDisplay
linenumberstrue
if (s_form.getValueisNewRecord('state') == '7') { // Completed
  s_form.setSectionDisplaysetREMValue('Closure Informationstate', true'new');
  s_form.setSectionMandatorysetREMReadOnly('Closure Informationstate', true);
  }

s_form.

setMandatory('closure_code', true); s_form.setMandatory('closure_notes', true); } else { s_form.setMandatory('closure_code', false); s_form.setMandatory('closure_notes', false); s_form.setSectionDisplay('Closure Information', false); s_form.setSectionMandatory('Closure Information', false); }

setREMValue(fieldName, databaseValue)


This method allows setting the value of the REM attribute label.

Note

Please note that this method is asynchronous; for better performance, use the await keyword as shown in the code example below.

Parameter(s):

Name

Type

Mandatory

Default Value

fieldNameStringYN
databaseValueAnyYN


Return:

Type

Description

VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titlesetREMValue
linenumberstrue
await s_form.setREMValue('state', 'new');
s_form.save();


s_form.setREMVisible(fieldName, display)


This method allows defining visibility of the field specified by REM attribute.


Parameter(s):

Name

Type

Mandatory

Default Value

fieldNameStringYN
displayBooleanYN


s_form.setValue(fieldName, databaseValue)

This method sets the field value. 

Warning

IsDisplayValue parameter has been maintained in earlier versions but will be deprecated after version 1.1. Avoid using it in your scripts.

Note

Use s_form.clearValue() method for field clearing instead of setting an empty string value.

Also please note that this method is asynchronous; for better performing, use the await keyword like shown in the code example below.

Parameter(s):

NameTypeMandatoryDefault ValuefieldNameStringYNdatabaseValueStringYN

Return:

Type

Description

VoidThis method
returns a Promise object
does not return value.


Example:

Code Block
languagejs
themeEclipse
titlesetValue
linenumberstrue
setREMVisible
await s_form.setValuesetREMVisible('stateadditional_info', '7'); // Completed
await s!s_form.setValue('closure_notes', articleBodies.join('\n'isNewRecord());
await 

s_form.

setValue('closure_code', '1'); // Solved 1st Level s_form.save() .then(() => { s_i18n.getMessage(`The typical solution is applied`, (e) => { s_form.addInfoMessage(e); }) });

setSectionDisplay(sectionName, display)


Using this method, you can specify the section you want to hide.


Parameter(s):

NameTypeMandatoryDefault Value
sectionNameStringYN
displayBooleanYN


Return:

TypeDescription
VoidThis method does not return value.


Example:

Code Block
languagejs
themeEclipse
titlesetSectionDisplay
linenumberstrue
if (s_form.getValue('state') == '7') { // Completed
  s_form.setSectionDisplay('Closure Information', true);
  s_form.setMandatory('closure_code', true);
  s_form.setMandatory('closure_notes', true);
} else {
  s_form.setMandatory('closure_code', false);
  s_form.setMandatory('closure_notes', false);
  s_form.setSectionDisplay('Closure Information', false);
}

s_form.setValue(fieldName, databaseValue)


This method sets the field value. 


Note

Use s_form.clearValue() method for field clearing instead of setting an empty string value.

Also please note that this method is asynchronous; for better performance, use the await keyword as shown in the code example below.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN
databaseValueStringYN


Return:

TypeDescription
VoidThis method returns a Promise object.


Example:

Code Block
languagejs
themeEclipse
titlesetValue
linenumberstrue
await s_form.setValue('state', '7'); // Completed
await s_form.setValue('closure_notes', articleBodies.join('\n'));
await s_form.setValue('closure_code', '1'); // Solved 1st Level
s_form.save()
  .then(() => {
    s_i18n.getMessage(`The typical solution is applied`, (e) => {
      s_form.addInfoMessage(e);
    })
  });

s_form.setVisible(fieldName, display)


This method manage displaying of the fields that were added to the form through the Form Layout. With this method, you can hide or show the field. The hidden field state is similar as if this field has been removed from the form view.

Note

Hiding a field for which the mandatory attribute is set on a column level (including the mandatory override described in the Column Overriding article) will lead to validation errors after the form is submitted from the client-side.


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN
displayBooleanYN


Return:

TypeDescription
VoidThis method does not return value.


Example:

Code Block
languagejs
themeEclipse
titlesetVisible
linenumberstrue
if (!s_form.isNewRecord()) {
  s_form.setVisible('subject', true);
  s_form.setVisible('reason', false);
}

s_form.showFieldMsg(fieldName, message, type)


This method is used to display a message containing 'info', 'error', or 'warning' value under the specified form field. 


Parameter(s):

NameTypeMandatoryDefault Value
fieldNameStringYN
messageStringYN
typeStringYN


Return:

TypeDescription
VoidThis method does not return value.


Example:

Code Block
languagejs
themeEclipse
titleshowFieldMsg
linenumberstrue
s_form.showFieldMsg('subject', 'Cannot be empty', 'info');


Code Block
languagejs
themeEclipse
titleshowFieldMsg
linenumberstrue
s_form.showFieldMsg('subject', 'Cannot be empty', 'warning');


s_form.setVisible(fieldName, display)

This method allows to manage displaying of the fields that were added to the form through the Form Layout. With this method, you can hide or show the field. The hidden field state is similar as if this field has been removed from the form view.

Note

Hiding a field for which the mandatory attribute is set on a column level (including mandatory override described in the Column Overriding article) will lead to validation errors after the form submitting from the client-side.

Parameter(s):

NameTypeMandatoryDefault ValuefieldNameStringYNdisplayBooleanYN

Return:

TypeDescriptionVoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titlesetVisibleshowFieldMsg
linenumberstrue
if (!s_form.isNewRecord()) {
  s_form.setVisible('subject', true);
  showFieldMsg('subject', 'Cannot be empty', 'error');

s_form.

setVisible('reason', false); }

showRelatedLists()


This method allows displaying all lists related to the form.


Return:

TypeDescription
VoidThis method does not return value.

s_form.

showFieldMsg(fieldName, message, type

showRelatedList(listTitle)


This method is used to display a message containing 'info', 'error', or 'warning' value under the specified form field. allows displaying the specified lists related to the form.


Parameter(s):

NameTypeMandatoryDefault ValuefieldNameStringYNmessageStringYNtypeStringYN

Return:

TypeDescriptionVoidThis method does not return a value.

NameTypeMandatoryDefault Value

listTitle

StringYN


Return:

TypeDescription
VoidThis method does not return value.


Example:

Code Block
languagejs
themeEclipse
titleshowRelatedList
linenumberstrue
s_form.showRelatedList('UI Action');

s_form.submit()


This method allows submitting the record form.


Return:

TypeDescription
VoidThis method does not return value.


Deprecated methods


This subsection contains methods that are not recommended to use in application design. They are deprecated as the platform evolves; new methods are developed instead of each of them.

s_form.fieldHasChanges(fieldName)


This method is used to check if the specified field has been changed or not.

Warning

This method is deprecated and not recommended to use. Use the s_form.isFieldChanged(fieldName) method instead.


Info

If there is a client script running on the specified form and changing it, the s_form.fieldHasChanges(fieldname) method returns 'true'. That is, it is not necessary that the change is made by a user, the form can be changed by a script.

Parameter(s):

Name

Type

Mandatory

Default Value

fieldNameStringYN

Return:

Type

Description

Boolean

This method returns 'true' if the specified field has been changed; otherwise, it returns 'false'.

Example:

Code Block
languagejs
themeEclipse
titleshowFieldMsg
linenumberstrue
s_form.showFieldMsg('subject', 'Cannot be empty', 'info');
Code Block
languagejs
themeEclipse
titleshowFieldMsg
linenumberstrue
s_form.showFieldMsg('subject', 'Cannot be empty', 'warning');


Code Block
languagejs
themeEclipse
titleshowFieldMsgfieldHasChanges
linenumberstrue
s_formconsole.showFieldMsg('subject', 'Cannot be empty', 'error');

s_form.showRelatedLists()

This method allows displaying all lists related to the form.

Return:TypeDescriptionVoidThis method does not return a value.
log(s_form.fieldHasChanges('state'));

s_form.

showRelatedList

hasChanges(

listTitle

)


This method allows displaying the specified lists related to the form.

Parameter(s):

getting information whether a record form has been changed or not.

Warning

This method is deprecated and not recommended to use. Use the s_form.isChanged() method instead.


NameTypeMandatoryDefault Value

listTitle

StringYN

Return:

Type

Description

VoidThis method does not return a value
BooleanThe method returns 'true' if any changes were made on the record form; otherwise, it returns 'false'.

Example:

Code Block
languagejs
themeEclipse
titleshowRelatedListhasChanges
linenumberstrue
if (s_form.showRelatedListhasChanges('UI Action');)) {
  s_form.save().then(() => s_form.
submit
goBack(
)

This method allows to submit the record form.

Return:

TypeDescriptionVoidThis method does not return a value.
));
} else {
  s_form.goBack();
}


Table of Contents
absoluteUrltrue