SimpleRecord Client-Side
This class provides methods for managing the database in client-side scripts: auto population of the fields, displaying some form elements and setting mandatory attribute for them regarding the values set in the Reference Fields.
The SimpleRecord client class allows a user to manage both records in the tables and its fields.
In this class, client-side queries are executed on the server. That is, to get a record data, a request from the client side should be sent to the server.
The functionality of the client-side SimpleRecord class might be not enough for managing some business tasks. In this case, use the SimpleAjax class or Table API.
addQuery(field, operator, value)
Use this method to filter the records by specifying certain conditions (field, operator, value). You can also add a condition to get records with a field equal to the value or that is in the list.
In this method, you can use any required operator from the condition operators list, specified in lower- or uppercase. Use the system names of the operators in the scripts.
Use the following operators without a value:
- ISEMPTY
- ISNOTEMPTY
- ANYTHING
- VALCHANGES
- IN (you can also use it with a value)
- NOT IN (you can also use it with a value)
- NOTHING
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
field | String | Y | N |
operator | String | N | N |
value | Integer/String/Boolean/Array | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
const record = new SimpleRecord('task');
record.addQuery('number', 'like', 'TSK');
record.addQuery('subject', 'startswith', 'Email');
record.query(() => {
while (record.next()) {
console.log(record.number); // TSK0000128
}
});
deleteRecord(responseFunction)
Use this method to delete the current record.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
responseFunction | Function | N | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
const taskRecord = new SimpleRecord('task');
taskRecord.get('123456789012345678', () => {
taskRecord.deleteRecord(callback);
});
function callback(response) {
const answer = response.responseXML.documentElement.getAttribute('answer');
if (answer == '1') {
console.log('Record deleted');
} else {
console.log(answer);
}
}
get(recordId, callback)
Use this method to load an object from a database based on its ID.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
recordId | String | Y | N |
callback | Function | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
const record = new SimpleRecord('user');
record.get(s_user.userID, () => {
console.log(record.email); // admin@admin.ru
});
getRows()
Use this method to receive an array of records that contain column-value pairs.
Return:
Type | Description |
---|---|
Array of Strings | This method returns an array of records. |
Example:
const record = new SimpleRecord('sys_db_table');
record.addQuery('is_vcs_enabled', 'IS', true);
record.query();
record.getRows();
getTableName()
Use this method to return a name of the current table.
Return:
Type | Description |
---|---|
String | This method returns the table name value. |
Example:
const record = new SimpleRecord('user');
record.get(s_user.userID, () => {
console.log(record.getTableName()); // user
});
hasNext()
Use this method to define whether a selection contains other records.
Return:
Type | Description |
---|---|
Boolean | This method returns true if there are some more records; otherwise, it returns false. |
Example:
const record = new SimpleRecord('user');
record.get(s_user.userID, () => {
console.log(record.hasNext()); // true
});
insert(responseFunction)
Use this method to insert a new record.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
responseFunction | Function | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
const newRecord = new SimpleRecord('task');
newRecord.subject = 'Client-side insert';
newRecord.insert((response) => {
const answer = response.responseXML.documentElement.getAttribute('answer');
console.log(answer);
})
next()
Use this method to move to the next record.
Return:
Type | Description |
---|---|
Boolean | This method returns false if there are no more records in the query set. |
Example:
const record = new SimpleRecord('task');
record.addQuery('number', 'like', 'TSK');
record.addQuery('subject', 'startswith', '[SWD-10]');
record.query(() => {
while (record.next()) {
console.log(record.number); // TSK0000128
}
});
orderBy(column)
Use this method to specify a column to order by. To order by multiple columns, call the method several times.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
column | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
const record = new SimpleRecord('task');
record.addQuery('number', 'like', 'TSK');
record.orderBy('number');
record.query(() => {
while (record.next()) {
console.log(record.number); // >TSK0000128 >TSK0000129 >TSK0000130 ...
}
});
query(responseFunction, property, value, ...)
Use this method to execute a query taking 0 or more parameters in any order. It takes any pair of literals as a query pair (field: value) and any function as a response function.
Do not make synchronous query calls. The call becomes synchronous if a query is performed without a response function. In this case, the state of the object does not change.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
responseFunction | Function | N | N |
property | String | N | N |
value | Any | N | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
const record = new SimpleRecord('user');
record.addQuery('sys_id', s_user.userID);
record.query(() => {
if (record.next()) {
console.log(record.email); // admin@admin.ru
}
});
setLimit(maxQuery)
Use this method to define the number of records in the query.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
maxQuery | Integer | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
const record = new SimpleRecord('task');
record.addQuery('number', 'like', 'TSK');
record.orderBy('sys_created_at'); // the very first record
record.setLimit(1);
record.query(() => {
while (record.next()) {
console.log(record.number); // TSK0000002
//...
}
});
setValue(fieldName, value)
Use this method to define a value for the field.
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:
const record = new SimpleRecord('task');
record.setValue('subject', 'Another type of prop assignement');
record.insert((response) => {
const answer = response.responseXML.documentElement.getAttribute('answer');
console.log(answer);
})