FileMaker: JSON ve Script Parametreleri

Herkese merhaba! Online meetup’larımıza FileMaker: JSON ve Script Parametreleri başlığıyla devam edeceğiz. 05 Eylül 2020, Cumartesi günü saat 14.00’da gerçekleşecek etkinliğimize hepiniz davetlisiniz.

Not: Toplantı “Zoom” platformunda gerçekleştirilecektir.

MeetUp Link: https://www.meetup.com/tr-TR/Cabitas-FileMaker-Turkiye/events/272201703/

Zoom Link: https://zoom.us/j/96250004830?pwd=VEJrbXl1dkhrMVA4S0ZQT1lGZlNFUT09

Geçmiş meet-up’larımızı youtube kanalımızdan izleyebilirsiniz: https://www.youtube.com/channel/UCiy3u3kdEmIXFX8yyD3moTg

FileMaker: “Data File” Script

Herkese merhaba! Online meetup’larımıza FileMaker: “Data File” Script başlığıyla devam edeceğiz. 22 Ağustos 2020, Cumartesi günü saat 14.00’da gerçekleşecek etkinliğimize hepiniz davetlisiniz.

Not: Toplantı “Zoom” platformunda gerçekleştirilecektir.

MeetUp Link: https://www.meetup.com/tr-TR/Cabitas-FileMaker-Turkiye/events/272201703/

Zoom Link: https://zoom.us/j/96250004830?pwd=VEJrbXl1dkhrMVA4S0ZQT1lGZlNFUT09

Geçmiş meet-up’larımızı youtube kanalımızdan izleyebilirsiniz: https://www.youtube.com/channel/UCiy3u3kdEmIXFX8yyD3moTg

Scriptler ile Kaydet – Vazgeç Kontrolü

FileMaker varsayılan davranışı alanlardan çıktığınızda kaydı otomatik olarak kaydeder. Layout/Layout Setup menüsünden bu ayarı değiştirmek mümkün. Ancak bu çözüm UX (user experience) konusunda çok başarılı sayılmaz. Kayıt girmeye devam ederken farkında olmadan alan dışında bir konuma tıkladığınızda “Kaydedeyim mi?” diye soruyor. Sunulan seçenekler, kaydet, geri dön ve vazgeç kullanıcının kafasını karıştırabiliyor.

 

Layout Options Penceresi ile otomatik kaydetme engellenebiliyor
Layout Options Penceresi

Daha iyi kullanıcı deneyimi için kullanıcıya kaydet/vazgeç düğmeleri ile kontrolü vermek daha doğru bir tercih olacaktır. Script (betik) ve script trigger (betik tetikleyicisi) kullanarak bunu sağlamak mümkün.

Standart olarak FileMaker’da alanlardan çıkıldığında başlatılan commit (kaydetme) prosedürü çalışıyor. Layout tercihlerine göre kaydı otomatik olarak kaydediyor veya “kaydedeyim mi” diyalog penceresini çıkartıyor. Bunun için “commit” (kaydetme) prosesini durdurmak gerekiyor. Öncelikle yapmamız gereken alanlardan çıkıldığında başlayan bu prosesi durdurmak olacak. Bu konuda script trigger yardımı alıyoruz. “Before event” (olay öncesi) script triggerları Exit Script [0] şeklinde sonlandırdığınızda tetikleyen olayı durdurur. Mesela bu örnekte OnRecordCommit trigger’ı ile tetiklenen script 0 yanıtı ile sonlandırıldığında commit prosesini de durdurmuş olacak.

 

Scriptlerle kaydet/Vazgeç Kontrolü

Kullanacağımız yöntemin özetle anahtar noktaları;

  1. Trigger ile tetiklediğimiz script $$kaydet global değişkeni 1 değerini almadığı durumlarda işlemi durduracak.
  2. Kullanıcı kaydet düğmesine tıkladığında çalışan script ise öncelikle $$kaydet değişkenine 1 değerini atayıp commit prosesinin tamamlanmasını sağlayacak.
  3. Kullanıcı vazgeç düğmesine tıklarsa “Revert Record” ile değişiklikleri geri alacak.

Tabi bu 3 temel kuralın dışında ilave kontroller ile örneği zenginleştirdik. Örnek dosyamızda aynı zamanda FileMaker 16 yeniliklerinden Card tipinde pencere kullanımını gösterdik.

 

Ek dosya: Scriptler ile Kaydet-Vazgeç Kontrolü

Duplicate Record (Kaydı Çoğalt) Davranış Farklılığı

Duplicate Record (kaydı çoğalt) komutu bildiğiniz gibi kaydı çoğaltır. Çoğaltma işlemi yaparken küçük bir detay duruma bağlı olarak değişir;

  • Kayıtlar sıralı (sorted) durumdayken duplicate komutunu çalıştırdığınızda yeni oluşan kayıt hemen altında yer alıp sıralamaya dahil olur.
  • Kayıtlar sırasız (unsorted) durumdayken duplicate komutunu çalıştırdığınızda yeni oluşan kayıt listenin sonuna gider.

Özellikle loop (dögü) içerisinde tüm kayıtları duplicate ile çoğaltmak isterseniz loop öncesinde kayıtları sırlamanız faydalı olacaktır.