Save the date! Join us on October 16 for our Product Ops launch event. Register here.
Sep 20, 2021 11:31 AM
Hi everyone!
I’m happy to announce that we’ve released a new scripting API capability today, and this is available in both the Scripting App and the ‘Run a script’ Automation action.
You can now select records by recordId, either by setting a new recordIds
option when calling selectRecordsAsync
or by using the new convenience method selectRecordAsync
when you only need one record.
This will be especially useful in Automations, where you can now easily select a Record based on a trigger or Find Records output.
Examples:
const recordIds = input.config().recordIds;
const table = base.getTable('Team');
const recordsResult = await table.selectRecordsAsync({fields: table.fields, recordIds});
const records = recordsResult.records;
for (const record of records) {
console.log(`Record name: ${record.name}`);
}
and
const recordId = input.config().recordId;
const table = base.getTable('Team');
const record = await table.selectRecordAsync(recordId);
if (record) {
console.log(`Record name: ${record.name}`);
}
We hope this new capability will help you with your scripts!
Thanks!
Nov 17, 2022 12:40 PM
I’ve only been getting ID and Name with this function. Advice?
//Get Client ID
let inputConfig = input.config()
let id = inputConfig.id[0]
//Get Client Information
let table = base.getTable("Clients")
console.log(table.fields)
let record = await table.selectRecordAsync(
id
//,{fields: ["Name","Long Name","Address"]}
)
console.log(record)
Nov 17, 2022 12:55 PM
Uncomment your array of fields that you want returned. Then use record.getCellValue()
to get the data.
Nov 17, 2022 01:04 PM
Thank you. This answer in conjunction with this forum was helpful.
Basically, the “record” variable in my code is a reference to the query and not the record itself. I have to GET the value of the specific field to return the field value
Here’s my new code…
//Get Client ID
let inputConfig = input.config()
let id = inputConfig.id[0]
//Get Client Information
let table = base.getTable("Clients")
console.log(table)
let query = await table.selectRecordAsync(
id
,{fields: ["Name","Long Name","Address"]}
)
console.log(query.getCellValue("Name"))
//Return Client Information
output.set("clientName",query.getCellValue("Name"))
output.set("clientLongName",query.getCellValue("Long Name"))
output.set("clientAddress",query.getCellValue("Address"))
Jan 06, 2023 08:43 PM
I've noticed the sorts option becomes redundant when using the recordIDs option in the selectRecordsAsync method. Is there any chance that this could be supported in the future? I'm really hoping it can be done...
If not, could the API help documentation at least be updated to note this limitation?