Help

The Community will be temporarily unavailable starting on Friday February 28. We’ll be back as soon as we can! To learn more, check out our Announcements blog post.

Set value of Single Select from getCellValueAsString

Topic Labels: Automations
1055 1
cancel
Showing results for 
Search instead for 
Did you mean: 
L_air_de_dire
4 - Data Explorer
4 - Data Explorer

Hi everyone!

There’s a seemingly basic problem that’s driving me crazy: I have an automation that triggers a script to create a few records. When creating these records, I need to set the value of a single-select field. It works well when I assign a basic string to the variable, but fails when I use getCellValueAsString ! Anything I’m missing? (console.log on the result of getCellValueAsString shows the correct result and typeOf on the variable shows indeed “string”)

let tableMapOuvrages = base.getTable("Map ouvrages");
let tableTaches = base.getTable("Taches");
let inputConfig = input.config(); //get the variables from previous steps

let mapOuvrages = await tableMapOuvrages.selectRecordsAsync({
    fields: ["Ouvrage","Groupe ouvrage"]
});

for (let itemInMap of mapOuvrages.records) {

    let basicString = "Livraison menuiseries";
    let stringOuvrage = itemInMap.getCellValueAsString("Ouvrage");
    console.log(stringOuvrage ); // this shows "Livraison menuiseries"
    console.log(stringOuvrage ); // this shows "string"
    
    // the "temp" field below is a single-select
    let tache = await tableTaches.createRecordAsync({
    "temp": {name: basicString }  // This version works
    // "temp": {name: stringOuvrage }  // this version doesn't work !
    
    });

}
1 Reply 1

Welcome to the Airtable community!

What error messages do you get when it does not work? Can you share a screen shot?

Could one of the single select choices have a hidden trailing space or other hard-to-see difference?
What happens if you add these lines …


console.log(stringOuvrage );
console.log(basicString );
if (basicString === stringOuvrage) {
  console.log(`${stringOuvrage} and ${basicString} match`)
} else {
  console.log(`${stringOuvrage} and ${basicString} do NOT match`)
}

The script you posted doesn’t match you description of what is happening. The script you posted is missing the type of.