Veelvoorkomende formulefouten
Meer informatie over de veelvoorkomende fouten die je kunt tegenkomen bij formules in Notion, en hoe je ze kunt oplossen 🔨
If you’re unsure how to fix the errors in your formula, Notion AI can help. Learn more here →
Als je geen toegang hebt tot een database waarnaar wordt verwezen, kunnen formules niet betrouwbaar berekenen. Dit komt doordat formules toegang vereisen tot de brondatabase en de configuraties van de eigenschappen ervan.
Oplossen
Zorg ervoor dat je toegang hebt tot alle pagina's en databases waarnaar in je formule wordt verwezen binnen je /knop of database automatisering.
In tegenstelling tot formule-eigenschappen in databases, verwachten formules in automatiseringen een specifiek retourtype van de formules (bijv.: datum, tekst, getal, persoon). De automatisering zal anders niet correct worden opgeslagen en uitgevoerd.
Oplossen
Zorg ervoor dat de formule het juiste type waarde retourneert. Als je bijvoorbeeld een formule schrijft om de waarde van een eigenschap Persoon van een pagina in te stellen, moet de formule een gebruiker of een lijst met gebruikers retourneren, geen datum. Als je alternatief een specifieke voorwaarde evalueert voor een eigenschap van het type array (bijv.: meerdere selecteren), zorg er dan voor dat je .includes gebruikt in plaats van == in je if()-instructie.
Een veelvoorkomende oorzaak van deze fout is het gebruik van een ander type om een lege waarde weer te geven. In een formule zoals if(Date, Date.dateAdd(1, “day”), “”), is het retourtype bijvoorbeeld onbekend omdat het een datum of tekst kan zijn (vanwege de “”). Dit kan worden opgelost door in plaats daarvan empty() te gebruiken om lege waarden weer te geven, zodat de herstelde formule eruit zou zien als if(Date, Date.dateAdd(1, “day”), empty()).
Notion-formules kunnen slechts 15 lagen diep zijn. Elke keer dat een formule naar een andere formule of rollup verwijst, wordt er een laag toegevoegd. Dit geldt zelfs als de formule zich in een andere database bevindt.
Wanneer deze limiet is bereikt, toont Notion een foutmelding.
Oplossen
Vereenvoudig je configuratie door onnodige formules en rollups te combineren tot minder eigenschappen. Zoek naar plekken waar meerdere formules vergelijkbare dingen doen en probeer ze samen te voegen tot één.
Als aangepaste variabelen binnen dezelfde automatiseringsactie worden gedefinieerd, kunnen ze niet naar elkaar verwijzen.
Als je bijvoorbeeld var1 en var2 in dezelfde actie definieert, kan var2var1 niet gebruiken in de definitie.
Oplossen
Definieer elke variabele in een eigen afzonderlijke actie (maak de eerste variabele aan, voeg een nieuwe actie toe aan je automatisering en definieer de volgende variabele apart). Dit zorgt ervoor dat elke variabele correct wordt herkend.
Op dit moment kunnen variabelen die in een Automatisering zijn gedefinieerd, niet worden gebruikt om pagina's te filteren in databases waarop je de Automatisering wilt laten werken (bijv.: “Bewerk pagina's die overeenkomen met filter bevat variabele”).
Oplossen
Definieer een aangepaste variabele als
Deze paginadoorTriggerpaginain het formulevak te typen.Voeg een
Bewerk pagina's in-Actie toe en selecteer de aangepaste variabele uit stap 1 als doel.
Wanneer je in formules werkt met relaties, rollups en persoon-eigenschappen, geven de formules een lijst met pagina's of personen terug. Om naar eigenschappen binnen de relatie te verwijzen, moet je het eerste element definiëren, anders wordt je Automatisering gepauzeerd. Je kunt dit probleem ook tegenkomen bij het maken van een formule die de map-functie gebruikt voor een relatie-eigenschap.
Oplossen
Gebruik functies zoals .first() of .at(0) om het eerste element te verkrijgen, of doorloop de lijst met pagina's met functies zoals .map() , .filter() , .every(), .some(), .find().
Als een formule onverwacht een lege waarde tegenkomt (meestal een datum- of persoonwaarde), ontvangt de Automatisering een foutmelding en wordt deze automatisch gepauzeerd.
Oplossen
Gebruik if of ifs om te controleren of een eigenschap waarop een bewerking wordt uitgevoerd een waarde heeft. Gebruik in plaats van Date.dateAdd(1, "day") bijvoorbeeld bij voorkeur if(Date, Date.dateAdd(1, "day"), empty()). Dit zorgt ervoor dat dateAdd alleen wordt uitgevoerd wanneer de waarde van Date aanwezig is, en vertelt de Automatisering expliciet om de eigenschap die wordt bijgewerkt leeg te maken wanneer Date niet is ingevuld. Stel als alternatief een weergave in met een filter dat garandeert dat de waarde van de eigenschap waarop je een bewerking uitvoert bestaat, en configureer de Automatisering zo dat deze alleen wordt uitgevoerd op pagina's in die weergave.
Als je formule niet werkt zoals verwacht, kan dit komen door een syntaxfout, zoals ontbrekende haakjes, onjuiste operatoren of niet-ondersteunde functies. Lees dit artikel → voor een volledig overzicht van de syntax van formules.
