Kesalahan umum Formula
Pelajari tentang kesalahan umum yang mungkin Anda temui dengan Formula di Notion, dan cara mengatasinya 🔨
If you’re unsure how to fix the errors in your formula, Notion AI can help. Learn more here →
Jika Anda tidak memiliki akses ke database yang direferensikan, Formula tidak akan dapat menghitung dengan andal. Hal ini karena Formula memerlukan akses ke database sumber dan konfigurasi propertinya.
Cara memperbaikinya
Pastikan Anda memiliki akses ke semua halaman dan database yang direferensikan dalam Formula Anda pada tombol atau otomatisasi database.
Tidak seperti properti Formula dalam database, Formula dalam otomatisasi mengharapkan tipe pengembalian tertentu dari Formula (contoh: tanggal, teks, angka, orang). Jika tidak, otomatisasi akan gagal disimpan dan dijalankan dengan benar.
Cara memperbaikinya
Pastikan Formula mengembalikan tipe nilai yang benar. Sebagai contoh, jika menulis Formula untuk menetapkan nilai properti Orang dari sebuah halaman, Formula harus mengembalikan pengguna atau daftar pengguna, bukan tanggal. Sebagai alternatif, jika mengevaluasi kondisi tertentu pada properti tipe array (contoh: multi-pilih), pastikan untuk menggunakan .includes alih-alih == dalam pernyataan if() Anda.
Penyebab umum kesalahan ini adalah penggunaan tipe yang berbeda untuk merepresentasikan nilai kosong. Sebagai contoh, dalam Formula seperti if(Date, Date.dateAdd(1, “day”), ""), tipe pengembalian tidak diketahui karena bisa berupa tanggal atau teks (karena ""). Ini dapat diperbaiki dengan menggunakan empty() untuk merepresentasikan nilai kosong sebagai gantinya, sehingga Formula yang diperbaiki akan terlihat seperti if(Date, Date.dateAdd(1, "day"), empty()).
Formula Notion hanya bisa sedalam 15 lapisan. Setiap kali Formula mereferensikan Formula atau rollup lain, itu akan menambah satu lapisan. Ini berlaku meskipun Formula tersebut berada di database yang berbeda.
Saat batas ini tercapai, Notion akan menampilkan pesan kesalahan.
Cara memperbaikinya
Sederhanakan pengaturan Anda dengan menggabungkan Formula dan rollup yang tidak perlu menjadi lebih sedikit properti. Cari tempat di mana beberapa Formula melakukan hal yang serupa dan cobalah untuk menggabungkannya menjadi satu.
Jika variabel kustom didefinisikan dalam tindakan otomatisasi yang sama, variabel tersebut tidak dapat saling mereferensikan.
Sebagai contoh, jika Anda mendefinisikan var1 dan var2 dalam tindakan yang sama, var2 tidak akan dapat menggunakan var1 dalam definisinya.
Cara memperbaikinya
Definisikan setiap variabel dalam tindakannya sendiri yang terpisah (buat variabel pertama, tambahkan tindakan baru ke otomatisasi Anda, dan definisikan variabel berikutnya secara terpisah). Ini memastikan bahwa setiap variabel dikenali dengan benar.
Saat ini, variabel yang didefinisikan dalam otomatisasi mungkin tidak dapat digunakan untuk memfilter halaman dalam database yang ingin Anda tindak lanjuti dengan otomatisasi tersebut (contoh: “Edit halaman yang cocok dengan filter berisi variabel”).
Cara memperbaikinya
Definisikan variabel kustom sebagai
Halaman inidengan mengetikTrigger pagedi kotak Formula.Tambahkan tindakan
Edit halaman didan pilih variabel kustom dari langkah 1 sebagai target Anda.
Saat bekerja dengan properti relasi, rollup, dan orang dalam Formula, Formula tersebut akan mengembalikan daftar halaman atau orang. Untuk mereferensikan properti dalam relasi, Anda perlu menentukan elemen pertama, jika tidak, otomatisasi Anda akan dijeda. Anda mungkin juga mengalami masalah ini saat membuat Formula yang menggunakan fungsi map untuk properti relasi.
Cara memperbaikinya
Gunakan fungsi seperti .first() atau .at(0) untuk mendapatkan elemen pertama, atau lakukan perulangan melalui daftar halaman dengan fungsi seperti .map() , .filter() , .every(), .some(), .find().
Jika Formula secara tidak terduga menemukan nilai kosong (paling umum adalah nilai tanggal atau orang), otomatisasi akan menerima kesalahan dan secara otomatis dijeda.
Cara memperbaikinya
Gunakan if atau ifs untuk memeriksa apakah properti yang sedang dioperasikan memiliki nilai. Misalnya, alih-alih Date.dateAdd(1, \"day\"), lebih disukai menggunakan if(Date, Date.dateAdd(1, \"day\"), empty()). Ini memastikan bahwa dateAdd hanya dilakukan saat nilai Date ada, dan secara eksplisit memberi tahu otomatisasi untuk mengosongkan properti yang sedang diperbarui saat Date tidak diisi. Sebagai alternatif, siapkan tampilan dengan filter yang menjamin nilai properti yang Anda operasikan ada, dan konfigurasikan otomatisasi agar hanya berjalan pada halaman dalam tampilan tersebut.
Jika Formula Anda tidak berfungsi seperti yang diharapkan, hal itu mungkin disebabkan oleh kesalahan sintaksis seperti tanda kurung yang hilang, operator yang salah, atau fungsi yang tidak didukung. Untuk rincian lengkap sintaksis Formula, baca artikel ini →
