Skip to main content

I have a script that takes a fuel price increase in a single cell and applies it in each cell in a row of fuel prices at various Fuel Stations. The code is copied below. How can i optimise the code to run in as little time as possible?

let table = base.getTable("Customer Deals");
let queryResult = await table.selectRecordsAsync({fields: ["Petrol Price", "Price Increase"], sorts: [{field: "Price Increase", direction: "desc"}]});
let firstRecord = queryResult.records[0];
let increase = firstRecord.getCellValue("Price Increase");

if (!(increase === 0)) {
for (let record of queryResult.records) {
let newPetrolPrice = record.getCellValue("Petrol Price") + increase;
await table.updateRecordAsync(record, {'Petrol Price': newPetrolPrice});
}

await table.updateRecordAsync(firstRecord, {'Price Increase': 0});
}
 

You are updating records one at a time inside the for loop. 

Instead, build an array of record updates to submit in batches of 50 using table.updateRecordsAsync(). Note the ā€˜s’ in the function name. See the scripting documentation for more details. This example script in the documentation has an example of doing batch updates in groups of 50.


Reply