You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 107 Next »
This class provides methods to configure forms. These methods can 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 the fields or clear the fields.
SimpleForm(table, sys_id)
Instantiates a new SimpleForm object.
Name | Type | Mandatory | Default Value |
---|---|---|---|
table | String | Y | N |
sys_id | String | Y | N |
const formObject = new SimpleForm(s_form.table, s_form.sysId);
Return:
Type | Description |
---|---|
Object | This method returns a form object. |
s_form.addErrorMessage(message)
This method displays the error toast message in the bottom right corner.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
message | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
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):
Name | Type | Mandatory | Default Value |
---|---|---|---|
message | String | Y | N |
durationMilliseconds | Number | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
s_form.addInfoMessage('Record successfully created', 1000);
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).
Please note that this method is asynchronous; for better performing, use the await keyword like shown in the code example below.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
choiceValue | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
const states = ['-1', '0', '2', '5']; s_form.clearOptions('state'); states.forEach(stateValue => { await s_form.addOption('state', stateValue); }
s_form.clearMessages()
This method is used to close all kinds of messages (both informational and error) in the form.
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
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):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
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 FALSE 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):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
Return:
Type | Description |
---|---|
Boolean | This method returns the boolean value (TRUE or FALSE) in the cases described above. |
Example:
if (!s_form.getValue('sprint')) { s_form.clearValue('points'); }
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 |
---|---|
String | Returns the record form view ID (ID of the record in the UI Forms (sys_ui_form) dictionary). |
Example:
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.getLabelOf(fieldName)
The method returns the label text value.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
Return:
Type | Description |
---|---|
String | The label text. |
Example:
if (s_form.getValue('name').match(/[\/|_*]/g)) { s_form.addErrorMessage(`Field "${s_form.getLabelOf('name')}" contains invalid characters.`); }
s_form.getREMDisplayValue(fieldName)
This method gets the displayable REM attribute value.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
Return:
Type | Description |
---|---|
String | Method returns attribute displayable value. |
Example:
s_form.addInfoMessage(`Service "${s_form.getREMDisplayValue('service')}" is not available`);
s_form.getREMLabelOf(fieldName)
This message gets the plain text value of the REM attribute label.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
Return:
Type | Description |
---|---|
String | This method returns string containing attribute label value. |
Example:
if (s_form.getValue('name').match(/[\/|_*]/g)) { s_form.addErrorMessage(`Field "s_form.getREMLabelOf('name')" contains invalid characters.`); }
s_form.getREMValue(fieldName)
This method gets the attribute value.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
Return:
Type | Description |
---|---|
Object | This method returns the current attribute object. |
Example:
if (!!s_form.getREMValue('state')) { s_form.hideFieldMsg('state'); }
s_form.getSections()
Using this method, you can get an array of sections.
Return:
Type | Description |
---|---|
Array of HTML elements | The form sections. |
s_form.getSectionNames()
This method allows returning an array, which will contain the names of all sections, visible or not.
Return:
Type | Description |
---|---|
Array of strings | This method returns array containing section names. |
s_form.getTableName()
This method returns the table name to which the specified record relates.
The method returns system table name, not the table title. Example:
Table name | itsm_incident |
Table title | Incidents |
Return:
Type | Description |
---|---|
String | System table name. |
if (['article', 'model'].includes(s_form.getTableName())) { s_form.setSectionMandatory('Review', true); } else { s_form.setSectionMandatory('Review', false); }
s_form.getUniqueValue()
This method returns the unique record ID (sys_id).
Return:
Type | Description |
---|---|
String | Returns the record ID; otherwise, returns NULL. |
Example:
const sysId = s_form.getUniqueValue(); const currentRecord = new SimpleRecord(s_form.table); currentRecord.get(sysId, ()=> { if (currentRecord.type == 'unavailable') { return false; // abort form submit } });
s_form.getValue(fieldName)
This method returns the internal (written down to the database) value of the specified field.
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):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
Return:
Type | Description |
---|---|
String | This method returns the internal (written down to the database) value of the specified field. |
Example:
const callerId = s_form.getValue('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.addInfoMessage('Users schedule is not defined'); } }); }
s_form.getDisplayValue(fieldName)
This method returns the displayed value of the field.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
fieldName | String | Y | N |
Return:
Type | Description |
---|---|
String | The displayed value of the specified field. |
Example:
s_form.addInfoMessage(`Service "${s_form.getDisplayValue('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 |
---|---|
Void | This method does not return a value. |
Example:
if (s_form.hasChanges()) { s_form.save().then(() => s_form.goBack()); } else { s_form.goBack(); }
s_form.hasChanges()
This method allows to get information whether a record form has been changed or not.
Return:
Type | Description |
---|---|
Boolean | The method returns 'true' if any changes were made on the record form; otherwise, it returns 'false'. |
Example:
if (s_form.hasChanges()) { s_form.save().then(() => 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):
Name | Type | Mandatory | Default Value |
---|---|---|---|
input | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
if (!!s_form.getValue('state')) { s_form.hideFieldMsg('state'); }
s_form.hideRelatedLists()
Using this method, you can hide all related lists on the form.
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
if (s_form.getValue('type') == 'internal') { s_form.hideRelatedLists(); }
s_form.hideRelatedList(relListTitle)
Using this method, you can specify a related list you want to hide.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
relListTitle | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
if (s_form.getValue('type') == 'external') { s_form.hideRelatedList('Customer'); }
s_form.isNewRecord()
If the record was never saved, this method returns TRUE; otherwise, it returns FALSE.
Return:
Type | Description |
---|---|
Boolean | If the record was never saved then this method returns TRUE; otherwise, it returns FALSE. |
Example:
if (!!s_form.isNewRecord()) { await s_form.setValue('state', 'new'); s_form.setReadOnly('state', true); }
s_form.isSectionVisible(sectionName)
This method defines if a specified section is visible or not.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
sectionName | string | Y | N |
Return:
Type | Description |
---|---|
Boolean | This method returns TRUE if the section is visible; otherwise, it returns FALSE. |
if (s_form.isSectionVisible('Instructions')) { s_form.addInfoMessage('Check out the "Instructions" section', 5000); }
s_form.removeOption(fieldName, choiceValue)
Using this method, you can specify and delete an option from the list.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
choiceValue | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
const serviceId = 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 (just updating).
Return:
Type | Description |
---|---|
Object | This method returns a promise containing specific data. |
s_form.save().finally(__resolveServerResponse);
s_form.setLabelOf(fieldName, value)
This method sets the text value of the field label.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
value | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
if (s_form.table == 'user') { s_form.setLabelOf('email', 'Email'); } else { s_form.setLabelOf('email', 'Personal Email'); }
s_form.setSectionMandatory(sectionName, mandatory)
This method allows making the specified section mandatory.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
sectionName | String | Y | N |
mandatory | Boolean | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
if (s_form.getValue('state') == '7') { // Completed s_form.setSectionDisplay('Closure Information', true); s_form.setSectionMandatory('Closure Information', true); s_form.setMandatory('closure_code', true); s_form.setMandatory('closure_notes', true); }
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):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
mandatory | Boolean | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
const mandatoryColumn = (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):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
readOnly | Boolean | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value |
Example:
if (!!s_form.getValue('any_tables')){ s_form.setReadOnly('table_id', true); s_form.setMandatory('table_id', false); s_form.setVisible('table_id', false); }
s_form.setREMLabelOf(fieldName, value)
This method allows changing the displayable attribute label.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
value | String | Y | N |
Return:
Type | Description |
---|---|
String | This method returns new value of the attribute label. |
Example:
if (s_form.table == 'user') { s_form.setREMLabelOf('email', 'Email'); } else { s_form.setREMLabelOf('email', 'Personal Email'); }
s_form.setREMMandatory(fieldName, mandatory)
This method allows to make a field specified by REM attribute mandatory.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
mandatory | Boolean | Y | 'true' |
Return:
Type | Description |
---|---|
Boolean | This method returns "true" if its execution has been successful; otherwise, it returns "false". |
Example:
const mandatoryColumn = (scriptType == 'onChange' || scriptType == 'onCellEdit'); s_form.setREMMandatory('column_id', mandatoryColumn);
s_form.setREMReadOnly(fieldName, readonly)
This method allows to make a field specified by REM attribute read-only.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
readonly | Boolean | Y | 'true' |
Return:
Type | Description |
---|---|
Boolean | This method returns "true" if its execution has been successful; otherwise, it returns "false". |
Example:
if (!!s_form.isNewRecord()) { s_form.setValue('state', 'new'); s_form.setREMReadOnly('state', true); }
s_form.setREMValue(fieldName, databaseValue)
This method allows to set a value of the REM attribute label.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
databaseValue | Object | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
if (!!s_form.isNewRecord()) { s_form.setREMValue('name', 'Name created by system'); }
s_form.setREMVisiblle(fieldName, display)
This method allows to define visibility of the field specified by REM attribute.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
display | Boolean | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
s_form.setREMVisible('chronology', !s_form.isNewRecord());
s_form.setSectionDisplay(sectionName, display)
Using this method, you can specify a section you want to hide.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
sectionName | String | Y | N |
display | Boolean | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
if (s_form.getValue('state') == '7') { // Completed s_form.setSectionDisplay('Closure Information', true); s_form.setSectionMandatory('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.setSectionMandatory('Closure Information', false); }
s_form.setValue(fieldName, databaseValue)
This method sets the field value.
IsDisplayValue parameter has been maintained in earlier versions but will be deprecated after version 1.1. Avoid using it in your scripts.
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):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
databaseValue | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method returns a Promise object. |
Example:
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 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.
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):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
display | Boolean | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
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):
Name | Type | Mandatory | Default Value |
---|---|---|---|
fieldName | String | Y | N |
message | String | Y | N |
type | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
s_form.showFieldMsg('subject', 'Cannot be empty', 'info');
s_form.showFieldMsg('subject', 'Cannot be empty', 'warning');
s_form.showFieldMsg('subject', 'Cannot be empty', 'error');
s_form.showRelatedLists()
This method allows displaying all lists related to the form.
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
s_form.showRelatedList(listTitle)
This method allows displaying the specified lists related to the form.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|---|---|---|
listTitle | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
s_form.showRelatedList('UI Action');
s_form.submit()
This method allows to submit the record form.
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
- No labels