Mar 14, 2020 07:17 PM
This is my code and I can’t populate the field ‘Activities’ which is linked to another table, the error is in line 24
Mar 16, 2020 02:16 PM
Thank you for all your help, I just wanted you guys to know that I finally made it work and in case someone may find it useful, want to share the code with you:
// pick tables from your base here
let f_tasks = base.getTable(‘ACTIVITIES (CHECKLIST)’); // activities to be used as a template
let f_projects = base.getTable(‘EVENTS CATEGORIES’); // Events to be used as a template
let projects = base.getTable(‘Events’); // new Events table
let tasks = base.getTable(‘Events - Activities’); // new activities table
// prompt the user to pick a name for our new Event
let name = await input.textAsync('Please type here the Name of the Event you are about to create ');
// prompt the user to pick a template for our new Event
let category = await input.recordAsync(‘Please type here the category of the new Event’,f_projects);
// get all the records from the f_task table that meet the required event category
let JSONCategory = JSON.stringify(category);
let categoryView = JSONCategory.substring(JSONCategory.search(‘name’)+7,JSONCategory.length-2);
let result = await f_tasks.getView(categoryView).selectRecordsAsync();
// create the Event Record
let projectId = await projects.createRecordAsync({
‘Name’: name,
‘Category’: [category],
});
// create the Event-Activities Records
for (let record of result.records) {
var firstLoop = ‘Y’;
if(firstLoop == ‘Y’){
let queryResultT = await projects.selectRecordsAsync();
for (let recordx of queryResultT.recordIds) {
var recordt = [{id: recordx}];
}
firstLoop = ‘N’;
}
await tasks.createRecordAsync( {
‘Event’ : recordt,
‘Activities’: [record],
});
}
output.text(‘Done!’);
Apr 20, 2020 09:51 AM
Came across this thread while looking for a way to link fields and find record ids. Here is the function I use to find a unique value and get the id.
async function findRecord(tableName, fieldName, searchValue)
{
let returnID = '';
let thisTable = base.getTable(tableName);
let thisQuery = await thisTable.selectRecordsAsync();
let thisRecords = thisQuery.records.filter(record => {
let thisID = record.getCellValue(fieldName);
return thisID == searchValue
});
for (let record of thisRecords){
returnID = record.id;
}
return returnID;
}