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 →
