O Notion Formula 2.0 apresenta um mecanismo de fórmulas reescrito que suporta conceitos modernos de programação como variáveis, funções e lógica condicional. Se você usa fórmulas legadas em seus bancos de dados, pode notar que algumas sintaxes antigas não funcionam mais ou se comportam de forma diferente. Este artigo explica os novos recursos passo a passo e mostra exatamente como migrar suas fórmulas existentes sem perder dados.
Principais Pontos: Migrando para o Notion Formula 2.0
- Propriedade de fórmula > Editar fórmula: Abre o novo editor de fórmulas onde você pode testar e reescrever expressões legadas.
- Funções let() e if(): Substituem operadores ternários aninhados e cálculos repetitivos por lógica mais limpa baseada em variáveis.
- Banco de dados > Duplicar como teste: Sempre duplique seu banco de dados antes de migrar fórmulas para evitar perda de dados.
O que Mudou no Notion Formula 2.0
O Notion Formula 2.0 substitui o antigo mecanismo de fórmulas que dependia de uma única linha de expressão, sem variáveis ou funções reutilizáveis. O novo mecanismo suporta variáveis nomeadas através da função let(), formatação multilinha e blocos condicionais adequados com if() / else if() / else. Também introduz novos tipos de dados como Date, Boolean e Array com operações dedicadas.
A causa raiz da maioria das falhas de migração é que as fórmulas antigas usavam coerção implícita de tipos e dependiam da função format() para saída de texto. No Formula 2.0, cada expressão retorna um tipo específico, e você deve converter valores explicitamente usando funções como toNumber() ou toString(). Se você tentar adicionar uma string de texto a um número, a fórmula retornará um erro em vez de adivinhar sua intenção.
Novas Funções que Você Precisa Conhecer
let() atribui um nome a um valor para que você possa reutilizá-lo sem repetir o cálculo. if() substitui a sintaxe ternária antiga ? :. empty() verifica se uma propriedade não tem valor. contains() verifica se uma string de texto contém uma substring. slice() extrai uma parte de texto ou de um array.
Passos para Migrar Suas Fórmulas Existentes
Antes de editar qualquer fórmula ao vivo, duplique o banco de dados que as contém. Isso fornece um ambiente seguro para testar a nova sintaxe.
- Duplique seu banco de dados
Abra a página do banco de dados. Clique no menu de três pontos no canto superior direito. Selecione Duplicar e escolha um local. Renomeie a cópia para “Migração de Teste”. - Abra o editor de fórmulas
No banco de dados duplicado, adicione uma nova propriedade de fórmula. Clique na célula da fórmula para abrir o editor. O novo editor suporta entrada multilinha e realce de sintaxe. - Reescreva operadores ternários como blocos if()
Sintaxe antiga:prop("Status") == "Done" ? "Complete" : "Pending"
Nova sintaxe:if(prop("Status") == "Done", "Complete", "Pending") - Substitua format() por toString()
Sintaxe antiga:format(prop("Price"))
Nova sintaxe:toString(prop("Price")) - Use let() para cálculos repetidos
Sintaxe antiga:prop("Subtotal") * 0.08 + prop("Subtotal")
Nova sintaxe:let(subtotal, prop("Subtotal"), subtotal * 0.08 + subtotal) - Teste com linhas de exemplo
Adicione algumas linhas de teste ao banco de dados duplicado. Confirme se a nova fórmula retorna os mesmos resultados que a antiga. Se vir um erro, verifique se faltam conversõestoString()outoNumber(). - Substitua a fórmula original
Assim que a fórmula duplicada funcionar corretamente, abra o banco de dados original. Edite cada propriedade de fórmula e cole a nova sintaxe. Salve e verifique os resultados.
Erros Comuns de Migração e Como Corrigi-los
A fórmula retorna erro “Incompatibilidade de tipo”
Isso ocorre quando você tenta combinar valores de tipos diferentes sem conversão explícita. Por exemplo, adicionar um número a uma string de texto. Use toNumber() em propriedades de texto que contenham valores numéricos, ou toString() em números antes de concatená-los com texto.
Operador ternário antigo ainda funciona, mas mostra um aviso de descontinuação
O Notion Formula 2.0 ainda suporta a sintaxe antiga ? : para compatibilidade reversa, mas ela será removida eventualmente. Reescreva usando if() para preparar seu banco de dados para o futuro.
Variável let() não reconhecida fora da função
Variáveis definidas com let() estão disponíveis apenas dentro da chamada da função. Se precisar da mesma variável em várias partes da fórmula, use um let() separado para cada escopo ou aninhe as chamadas de let().
Cálculos de data retornam resultados inesperados
No Formula 2.0, a aritmética de datas usa as funções dateAdd() e dateSubtract() em vez de adição simples. Fórmulas antigas que adicionavam números diretamente a datas quebrarão. Substitua prop("Due") + 7 por dateAdd(prop("Due"), 7, "days").
Notion Formula 2.0 vs Fórmula Legada: Principais Diferenças
| Recurso | Formula 2.0 | Fórmula Legada |
|---|---|---|
| Suporte a variáveis | Sim, via let() | Não |
| Lógica condicional | if() / else if() / else | Apenas ternário ? : |
| Conversão de tipo | Explícita (toString, toNumber, toDate) | Coerção implícita |
| Edição multilinha | Sim | Apenas linha única |
| Operações com arrays | map(), filter(), slice() | Não disponível |
O Notion Formula 2.0 oferece mais controle e menos resultados inesperados. O esforço de migração é pequeno para a maioria dos bancos de dados, e a nova sintaxe torna fórmulas complexas mais fáceis de ler e manter. Comece duplicando um banco de dados e reescrevendo suas fórmulas usando os passos acima. Depois de se sentir confortável, aplique o mesmo processo aos seus outros bancos de dados.
Após migrar, explore as funções map() e filter() para processar arrays de propriedades de rollup. Essas funções podem substituir dezenas de linhas de lógica ternária aninhada por uma única expressão legível. Use a função empty() para lidar com valores ausentes de forma elegante, em vez de depender de if(prop("Field") != "", ...).