Aug 13, 2021 12:01 PM
Hi community!
I know this question has been asked before but I’m having trouble sorting linked records. I’ve got a project management app that I need to sort updates, showing the most recent update at the top of field. I’m currently able to do this via a manual Batch Update but I would like to create a script that does this automatically.
I found the below script on another thread but it is not working form my base. This was originally posted by @Omer_Frydman and looked very promising.
I have a tabled called “Action Plans” that contains projects. I have another table called “Action Plan Updates”, that contains project updates. I have a linked field in the “Action Plans” table that links records to the “Action Plan Updates”. These are currently displayed oldest to newest. The way I would like the script to work is when a new project update is entered to trigger the sort to happen upon submission. I’m very new to scripting and open to learning. Any ideas on ways to do this via a script or how to edit the below script? All insights are very much appreciated! Thanks. Travis
// Set a trigger: when a record is updated -> watch the linked records field
// Set an action: run a script
// You should set the record ID of the triggering record as an input variable
// Grab the triggering record's ID
let inputConfig = input.config();
let recordID = inputConfig.recordID;
let table = base.getTable("tableName"); // Load table
let queryResult = await table.selectRecordsAsync(); // Get all records in the table
let record = queryResult.getRecord(`${inputConfig.recordID}`) // Find the one with the ID from the input
// Get the linked records array
let linkedRecordsArray = record.getCellValue("linkedRecordsField");
// Sort the linked records array
// Assumes the linked recorods' key is a date
linkedRecordsArray.sort(function(a,b){
return new Date(b.name) - new Date(a.name);
});
// Update the triggering record with the sorted linked records array
table.updateRecordAsync(record, {
"linkedRecordsField": linkedRecordsArray
})
Aug 14, 2021 01:30 AM
Just to be sure, and my apologies if this is a silly question, but you have replaced the example table and cell name literals ("tableName"
and "linkedRecordsField"
– only the ones in ASCII double quotes) by the actual ones in your base ("Action Plans"
and "<whatever your linked field is called>"
), right? Because if not, that is your error right there.