Help

TypeError: Cannot read property 'name' of null at main on line

Topic Labels: Automations
1964 1
cancel
Showing results for 
Search instead for 
Did you mean: 
dpancer
4 - Data Explorer
4 - Data Explorer

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

  1. REDO-C or REDO -R, or - REDO V is checked.
  2. the check boxes are automatically unchecked
  3. if Curtain Status or Rail Status or Vert Status is [Blank, “Adjustment”, “Waiting Install”, “Adjustment”, “On Hold”, “Canceled”, “Finished”]:
    then Curtain Status, Rail Status, Vert Status will be left un changed.
  4. if Curtain Status, Rail Status, Vert Status is anything else: Their value will be set to “Pending”

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 {};

1 Reply 1
dpancer
4 - Data Explorer
4 - Data Explorer

no one can help out with this???