OnValidate işlemi calculation alanda gerçekleşmez. Buradaki validate filemaker field options'daki ve alan türüne göre yapılan validation. Calculation sonucu 0 olması yada 1 olması önemli değil hepsi "valid" dir. Dolayısıyla validasyon triger'ı çalışmaz.
Validation triger'ı text, date, number gib alanlarda değişiklik yapıldığında alandan çıkarken otomatik yapılır. Örneğin tarih alanında tarih dışında bir değer girmeye veya 30 Şubat gibi geçersiz tarih yazdığınızda yapılan validation ile sağlanır. Veya max 100 değeri alabilir şeklinde ayarladığınız number alanda 100'den büyük değer girip girmedğinizi kontrol etmek yine validation işidir.
OnValidate scripti ise bu validasyondan hemen önce çalışır. Bu sayede valid olmayan bilgiyi scriptle düzeltebilirsiniz. Mesela tarih alanına +3 yazdığınızı varsayalım. Onvalidate scripti orada tarih olmadığını görüp otomatik olarak Get(currentdate)+3 yaparak 3 gün sonrasını yazabilir.
Size çözüm olması için onRecordCommit'de bu kontrolleri yapabilirsiniz.