Change a record's status
This example listens for changes to the inspection_date
field and updates the record status to 'inspected' if a date value was entered. If the date was cleared (no value), the status reverts to the default state, 'created'.
function changeStatus(event) {
if (event.value) {
// There is a value, so set the status
SETSTATUS('inspected');
} else {
// There is no value. It could have been cleared from the field.
// Revert status to 'created'.
SETSTATUS('created');
}
}
ON('change', 'inspection_date', changeStatus);
Another common use case is to just change the record's status any time the record is saved on the mobile device. Here we'll listen to the 'save-record'
event and simply set it to 'inspected'.
function changeStatus(event) {
SETSTATUS('inspected');
}
ON('save-record', changeStatus);
This example sets the status of a record based upon a choice list. In this example damage_type
is a single choice field, which will get its values from the Status Field. On a change to damage_type
the status is also changed. The damage_type
field is required and the Status Field may optionally be hidden, or set to read-only to prevent users from manually overriding it.
This workflow allows you to place the status choice anywhere in your form, and supports visibility and requirement rules.
function setChoices(event) {
// Get the array of status choice objects
var statuses = this.form.status_field.choices;
// Get choice labels and values
var choices = [];
for (var i = 0; i < statuses.length; i++) {
choices.push([statuses[i].label, statuses[i].value]);
}
SETCHOICES('damage_type', choices);
}
function changeStatus(event) {
SETSTATUS(CHOICEVALUE($damage_type));
}
ON('load-record', setChoices);
ON('change', 'damage_type', changeStatus);
Updated about 1 year ago