Vanliga formelfel
LĂ€r dig om de vanliga felen du kan stöta pĂ„ med formler i Notion och hur du kan felsöka dem đš
If youâre unsure how to fix the errors in your formula, Notion AI can help. Learn more here â
Om du inte har Ätkomst till en referensdatabas kommer formler inte att kunna berÀkna tillförlitligt. Detta beror pÄ att formler krÀver Ätkomst till kÀlldatabasen och dess egenskapsinstÀllningar.
SÄ hÀr ÄtgÀrdar du det
SÀkerstÀll att du har Ätkomst till alla sidor och databaser som refereras i din formel inom din knapp- eller databasautomatisering.
Till skillnad frÄn formelegenskaper i databaser förvÀntar sig formler i automatiseringar en specifik returtyp frÄn formlerna (t.ex. datum, text, nummer, person). Annars kommer automatiseringen inte att kunna sparas och köras korrekt.
SÄ hÀr ÄtgÀrdar du det
Se till att formeln returnerar rÀtt typ av vÀrde. Om du till exempel skriver en formel för att ange vÀrdet för en Person-egenskap pÄ en sida, mÄste formeln returnera en anvÀndare eller en lista med anvÀndare, inte ett datum. Alternativt, om du utvÀrderar ett specifikt villkor för en egenskap av array-typ (t.ex. flerval), se till att anvÀnda .includes istÀllet för == i ditt if()-uttryck.
En vanlig orsak till detta fel Ă€r att man anvĂ€nder en annan typ för att representera ett tomt vĂ€rde. Till exempel, i en formel som if(Date, Date.dateAdd(1, âdayâ), ""), Ă€r returtypen okĂ€nd eftersom den kan vara antingen datum eller text (pĂ„ grund av ""). Detta kan Ă„tgĂ€rdas genom att anvĂ€nda empty() för att representera tomma vĂ€rden istĂ€llet, sĂ„ den reparerade formeln skulle se ut som if(Date, Date.dateAdd(1, "day"), empty()).
Notion-formler kan bara vara 15 lager djupa. Varje gÄng en formel refererar till en annan formel eller rollup lÀggs ett lager till. Detta gÀller Àven om formeln finns i en annan databas.
NÀr denna grÀns nÄs visar Notion ett felmeddelande.
SÄ hÀr ÄtgÀrdar du det
Förenkla din konfiguration genom att kombinera onödiga formler och rollups till fÀrre egenskaper. Leta efter stÀllen dÀr flera formler gör liknande saker och försök slÄ ihop dem till en.
Om anpassade variabler definieras inom samma automatiseringsÄtgÀrd kan de inte referera till varandra.
Om du till exempel definierar var1 och var2 i samma ÄtgÀrd kommer var2 inte att kunna anvÀnda var1 i sin definition.
SÄ hÀr ÄtgÀrdar du det
Definiera varje variabel i sin egen separata ÄtgÀrd (skapa den första variabeln, lÀgg till en ny ÄtgÀrd i din automatisering och definiera nÀsta variabel separat). Detta sÀkerstÀller att varje variabel identifieras korrekt.
För nĂ€rvarande kan variabler som definierats i en automatisering inte anvĂ€ndas för att filtrera sidor i databaser som du vill att automatiseringen ska agera pĂ„ (t.ex. âRedigera sidor som matchar filter innehĂ„ller variabelâ).
SÄ hÀr ÄtgÀrdar du det
Definiera en anpassad variabel som
Den hÀr sidangenom att skrivaUtlösarsidai formelrutan.LÀgg till en
Redigera sidor i-ÄtgÀrd och vÀlj den anpassade variabeln frÄn steg 1 som mÄl.
NÀr du arbetar med relationer, rollup- och personegenskaper i formler returnerar formlerna en lista med sidor eller personer. För att referera till egenskaper inom relationen mÄste du definiera det första elementet, annars pausas din automatisering. Du kan ocksÄ stöta pÄ detta problem nÀr du skapar en formel som anvÀnder map-funktionen för en relationsegenskap.
SÄ hÀr ÄtgÀrdar du det
AnvÀnd funktioner som .first() eller .at(0) för att hÀmta det första elementet, eller loopa igenom listan med sidor med funktioner som .map() , .filter() , .every(), .some(), .find().
Om en formel ovÀntat stöter pÄ ett tomt vÀrde (oftast ett datum- eller personvÀrde) kommer automatiseringen att fÄ ett felmeddelande och pausas automatiskt.
SÄ hÀr ÄtgÀrdar du det
AnvÀnd if eller ifs för att kontrollera att en egenskap som bearbetas har ett vÀrde. IstÀllet för Date.dateAdd(1, \"day\") Àr det till exempel att föredra att anvÀnda if(Date, Date.dateAdd(1, \"day\"), empty()). Detta sÀkerstÀller att dateAdd endast utförs nÀr Date har ett vÀrde, och talar uttryckligen om för automatiseringen att rensa egenskapen som uppdateras nÀr Date inte Àr ifylld. Alternativt kan du stÀlla in en vy med ett filter som garanterar att vÀrdet pÄ egenskapen du arbetar med existerar, och konfigurera automatiseringen sÄ att den endast körs pÄ sidor i den vyn.
Om din formel inte fungerar som förvĂ€ntat kan det bero pĂ„ ett syntaxfel, till exempel saknade parenteser, felaktiga operatorer eller funktioner som inte stöds. För en fullstĂ€ndig genomgĂ„ng av formelsyntax, lĂ€s denna artikel â
