Skip to main content
Solved

Scripted Automation for deleting records timing out

  • October 12, 2023
  • 2 replies
  • 24 views

Forum|alt.badge.img+3

let table = base.getTable("Customer Survey Prod");
let field = table.getField("Aged Days");
let query = await table.selectRecordsAsync({fields: [field]});
let recordsToDelete = query.records.filter(
record => record.getCellValue(field) > 7
)
console.log(recordsToDelete);
for (let deleteRecord of recordsToDelete) {
await table.deleteRecordAsync(deleteRecord.id);
}

I am running into a 30 minute error when running this is there a way to fix it?

Best answer by Ben_YoungV2

const table = base.getTable('Customer Survey Prod'); const field = 'Aged Days'; const filterRecord = (record) => record.getCellValue(field) > 7; const deleteRecords = async (records) => { let targetRecords = records; while (targetRecords.length) { await table.deleteRecordsAsync(targetRecords.slice(0, 50)); targetRecords = targetRecords.slice(50); } } let records = await table.selectRecordsAsync({ fields: [field] }) .catch(err => console.log(err)) .then(query => query.records); let recordsToDelete = records.filter(filterRecord); if (recordsToDelete.length) { await deleteRecords(recordsToDelete); }

2 replies

Forum|alt.badge.img+5
  • Participating Frequently
  • Answer
  • October 12, 2023
const table = base.getTable('Customer Survey Prod'); const field = 'Aged Days'; const filterRecord = (record) => record.getCellValue(field) > 7; const deleteRecords = async (records) => { let targetRecords = records; while (targetRecords.length) { await table.deleteRecordsAsync(targetRecords.slice(0, 50)); targetRecords = targetRecords.slice(50); } } let records = await table.selectRecordsAsync({ fields: [field] }) .catch(err => console.log(err)) .then(query => query.records); let recordsToDelete = records.filter(filterRecord); if (recordsToDelete.length) { await deleteRecords(recordsToDelete); }

Forum|alt.badge.img+3
  • Author
  • New Participant
  • October 12, 2023

Thank you @Ben_YoungV2. The script worked!