Skip to main content

HI Everyone


I am sharing a problem today. Not sure is there any solution out there.


Please response if there any solution for that.



I am trying to get the latest available option for a select able field inside a loop of scripting apps script.


But the problem is script provide me the initial instant of the table if i make any change runtime of the script then it’s not getting the updated instance even though i try to take a new instance of the table .


Below is my code



while(true){



var table= null

table= base.getTable("Table 1")

console.log(table.getField("Status").options.choices)

console.log(await table.selectRecordsAsync())



//trying to make wait the loop

var a= await input.buttonsAsync("test",""test"])





}



And also want to mention that it’s getting the all the new records in new instance of the table or the updated records are also available on it. But the updated fields options are not available in updated instance of the table.



May be it’s a bug from airtable

I don’t think that it’s a bug. It’s possible that Airtable “freezes” the field configuration (as far as the script is concerned) during script execution to prevent possible errors from occurring.



Could you explain more about your desired use case? Why do you want to change the field configuration while a script is running?


I think that the scripting environment gets a copy of the base object when the script is run, and the base object is not updated unless the script itself modifies the base schema.



This is different from a custom app, where the custom app can watch for changes to the base schema.




Thanks for your response.


I am try to take input from use and then after checking does the value exist or not in “Select able” fields


if not exist then user will add the value and test again. That was the use case.



I understand keep it freezing but i am sure script will through an error if you change anything table in runtime of the script.


If they do so then what’s the use of keep it freezing.



Can you please mention anyone from airtable so that they can explain the point of view


Thanks


Noor


I think that the scripting environment gets a copy of the base object when the script is run, and the base object is not updated unless the script itself modifies the base schema.



This is different from a custom app, where the custom app can watch for changes to the base schema.


Thanks you @kuovonne for your response



Yes it seems like the take the schema object copy on the stating of script run and don’t update it overtime even you re-query the object



Thanks


Noor




Thanks for your response.


I am try to take input from use and then after checking does the value exist or not in “Select able” fields


if not exist then user will add the value and test again. That was the use case.



I understand keep it freezing but i am sure script will through an error if you change anything table in runtime of the script.


If they do so then what’s the use of keep it freezing.



Can you please mention anyone from airtable so that they can explain the point of view


Thanks


Noor




Have the script create the select choice instead of the user. field.updateOptionsAsync()




Have the script create the select choice instead of the user. field.updateOptionsAsync()


@kuovonne


That will be a good option. I was trying to find this type of function also.


Thanks @kuovonne


It will solve my problem


Reply