Jan 13, 2022 05:28 AM
I have been struggling with this for a while here.
FYI beginner coder here
I have 3 single select fields (Curtain Status, Rail Status, Vert Status). All three of these options have the following selections: “Adjustment”, “Waiting Install”," Adjustment", “On Hold”, “Canceled”, “Finished”
There are three checkboxes for each of the single select fields: REDO - C, REDO - R, REDO - V"
The end goal of this script is that when
I got most it all to work except when the single field is blank. I’m getting a :TypeError: Cannot read property ‘name’ of null at main on line.
This error is generated when, for example, statusc’s getCellvalue is set to read .name and the single select is blank.
I was first able to get around this by including null in my if statement:
if (redoc == true && statusc !== null )
However, when testing the array “state” against “statusc” I need to include the .names property in order for it to work:
if (state.indexOf(statusc.name) !== -1) {
console.log("Leave Current Status");
}
I cant figure out how to get this to work without getting the null-error.
FYI: I still need to input the “state” variable in the if statement below, havent gotten there yet since im stuck :frowning:
Some help on this would be greatly appreciated!
thanks in advance.
let worktable = base.getTable("Work Orders")
let worktablerecords = await worktable.selectRecordsAsync();
var check = input.config();
//List of checkboxes
let redoc = worktablerecords.getRecord(check.recordId).getCellValue("REDO - C");
let redor = worktablerecords.getRecord(check.recordId).getCellValue("REDO - R");
let redov = worktablerecords.getRecord(check.recordId).getCellValue("REDO - V");
//List of Status
let statusc = worktablerecords.getRecord(check.recordId).getCellValue("Curtain Status");
let statusr = worktablerecords.getRecord(check.recordId).getCellValue("Rail Status");
let statusv = worktablerecords.getRecord(check.recordId).getCellValue("Vert Status");
//IF the variable state is any value in this array, then "Curtain Status" will remain unchanged
var state = ["Adjustment","Waiting Install","Adjustment","On Hold","Canceled","Finished",null];
//FOR TESTING
if (state.indexOf(statusc.name) !== -1) {
console.log("Leave Current Status");
}
console.log(statusc.name)
//console.log(state);
//FOR TESTING
if (statusc == state) {
console.log("Leave")
} else {
console.log("1111")
};
console.log(state.includes(statusc.name));
if (redoc == true && statusc !== null ) {
await worktable.updateRecordAsync(check.recordId, {
"REDO - C": false,
});
await worktable.updateRecordAsync(check.recordId, {
"Curtain Status": {name: "Pending"}
});
} else if (redoc == true && statusc == null ){
await worktable.updateRecordAsync(check.recordId, {
"REDO - C": false,
})
} else {};
// if (redor == true && statusr !==null ) {
// await worktable.updateRecordAsync(check.recordId, {
// "REDO - R": false,
// });
// await worktable.updateRecordAsync(check.recordId, {
// "Rail Status": {name: "Pending"}
// });
// } else if (redor == true && statusr == null ){
// await worktable.updateRecordAsync(check.recordId, {
// "REDO - R": false,
// })
// } else {};
// if (redov == true && statusv !== null ) {
// await worktable.updateRecordAsync(check.recordId, {
// "REDO - V": false,
// });
// await worktable.updateRecordAsync(check.recordId, {
// "Vert Status": {name: "Pending"}
// });
// } else if (redov == true && statusv == null ){
// await worktable.updateRecordAsync(check.recordId, {
// "REDO - V": false,
// })
// } else {};
Jan 18, 2022 01:02 PM
no one can help out with this???