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ü

Tekrarlı alanlara pratikçe ulaşın

Tekrarlı alanları AlanAdi[tekrarno] şeklinde çağırabilirsiniz

FileMaker’da tekrarlı alanlar sayesinde benzer tipteki bilgier için tablomuzdaki alan sayısını azaltabiliyoruz. Hesaplamalarda GetRepetition fonksiyonu ile alanın istediğimiz tekrarını çekebiliriz.

Bunun daha pratik yolu var, bir çok yazılım dilinde array’deki (dizi) değeri çekmek için kullanılan köşeli parantezler FileMaker’da da çalışıyor. Üstelik layout (yerleşim) modunda merge field yaparken dahi bu yöntemi kullanabiliyorsunuz.

Ayrıca köşeli parantez içine doğrudan sayı girebildiğiniz gibi $değişken yada $$global_değişken de girebilirsiniz.

 

 

Örnekler

Hesaplama alanı içerisinde TekrarlıAlanim[2] şeklinde 2. tekrardaki bilgi çekilebilir.

Layout modunda metin kutusuna <<TekrarliAlanim[2]>> yazarak browse (inceleme) modunda ikinci tekrarın ekranda gözükmesini sağlayabilirsiniz.

TekrarlıAlanim[$sayac] ile değişkendeki bilgiye göre tekrardaki veriyi çekebilirsiniz.

Calculation Alana Comment Eklemek

Bir çok hesaplamayı FileMaker’da Calculation alanlar sayesinde yapıyoruz. Metinsel, Matematiksel, İstatistiksel vb. kategorilere ayrılmış bir çok ön tanımlı fonksiyonu kullanarak karmaşık hesaplamalar yaptırmak mümkün.

Ancak hesaplama karmaşıklaştıkça sonradan okuması da zor oluyor. Bu noktada Comment (yorum yada hatırlatıcı diyebiliriz) satırlarının önemi kendini hissettiriyor.

Hesaplama formülünde çift slash (//) işareti,  satır sonuna kadar olan bölümü comment satırına çevirir, yani hesaplamaya dahil etmez. Hesaplama ile ilgili açıklamaları/ipuçlarını başına // ekleyerek yazabilirsiniz.

Slash yıldız (/*) ise birden çok satırı comment haline getirmek için kullanılabilir ve yıldız slash (*/) ile kapatılır.

Comment satırları hatırlatıcı notlar için kullanılabildiği gibi,  geçici olarak pasif yapmak istediğiniz satırların başına da koyabilirsiniz. Satırı silmediğiniz için, daha sonra ihtiyaç olduğunda tekrar aktif hale kolayca getirebilirsiniz.

filemaker hesaplama comment örneği

FileMaker’da Pratik Log Tutma Örneği

Özellikle çoklu kullanıcı sistemlerde yapılan değişikliklerin ne zaman, kimin tarafından yapıldığını tutmak önemli hale geliyor. Log tutma aynı zamanda veri girişi yapan kullanıcıların daha dikkatli olmasını sağlıyor. Ayrıca yanlışlıkla yapılan değişikliklerde eski veriye ulaşma imkanı sunuyor.

Ancak FileMaker’ın standart bir log tutma özelliği yok. Auto-enter alanlar sayesinde sadece kayıt üzerinde en son değişikliği kimin ve ne zaman yaptığı bilgisini saklayabiliyoruz.

Son değişiklik tarihi yeterli olmadığı için alternatif loglama çözümlerini uzun zamandır kullanıyoruz. FileMaker 13’le beraber gelen Get(ModifiedFields) fonksiyonu ile çok pratik  şekilde log tutmak mümkün. Bu fonksiyonu kullanan eXcelisys firmasının çok güzel bir çözümü mevcut. Basitçe kendi uygulamanıza ekleyebiliyorsunuz.

Bu uygulamayı baz alarak örnek bir dosya hazırladık, örnek dosyayı yazının sonundaki bağlantıdan indirebilirsiniz. Yöntemin anlatıldığı makaleye ulaşmak için buraya tıklayabilirsiniz.

 

Dosyayı kendi veritabanınıza uygulamak için bir kaç adım yeterli;

  1. ChangeLogger özel fonksiyonunu dosyasınıza aktarın (FileMaker Pro Advanced gerektirir)
  2. TimeStamp (zaman damgası) tipinde, st_ModTS  isimli bir alan tanımlayın.
  3. st_ModTS alanının auto-enter seçeneğini değişiklik zamanını verecek şekilde düzenleyin.
  4. Metin tipinde, st_ChangeLog isimli bir alan tanımlayın.
  5. st_ChangeLog alanının auto-enter seçeneklerinde calculation olarak belirleyin ve aşağıdaki hesaplamayı girin
    Case ( st_ModTS ; Liste ( ChangeLogger ( Get ( ModifiedFields ) ; Self ) ; st_ChangeLog ) )
  6. st_ChangeLog alanı için auto enter seçeneklerinde “Do not replace exsiting value” seçeneğinin işaretini kaldırmayı unutmayın.
  7. Başlangıç scripti ile $$sistem_LogIstisnaAlanlar isimli global değişken oluşturun. Log tutamak istemediğiniz alanları bu değişkene yazın. Geri kalan tüm alanlarda otomatik olarak log tutulacak.

 

Ek Dosya: FileMaker Pratik Log Tutma Örneği

 

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.

FileMaker Network Paylaşım Sorunu ve Çözümü

FileMaker Network Dosya Paylaşım Penceresi

Son zamanlarda, özellikle FileMaker’ın eski sürümünü kullanan müşterilerimizden dosya paylaşımı (file sharing) ile ilgili gelen şikayet telefonları arttı. Halbuki FileMaker’da network paylaşımı yapmak basit ve pratiktir. İletilen hata mesajları ile ilgili araştırmamız neticesinde sorunun en kolay çözümünü bulduk!

Aşağıdaki yöntem sorununuzu çözmezse işletim sistemi, filemaker sürümü gibi bilgilerde yorum bırakmaktan çekinmeyin.

Hata Mesajları

  • “Başka bir kullanıcı bu bilgisayarda FileMaker Pro kullanarak zaten dosyalar paylaştırdığından FileMaker dosyalar paylaştıramıyor.”
  • “Ağ yığını başlatılamadığından FileMaker bir dosyayı paylaştıramıyor veya dosyanın istemcisi olamıyor.”
  • “FileMaker cannot share or be a client of a file because the networking stack could not be initialized.”
  • “FileMaker cannot share files because another user is already sharing files using FileMaker Pro in this computer.”

Etkilenen Sürümler

  • FileMaker Pro 7
  • FileMaker Pro 8,
  • FileMaker Pro 8.5
  • FileMaker Pro 9
  • FileMaker Pro 10
  • FileMaker Pro 11 (and FileMaker Pro Advanced)

İşletim Sistemi: Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10

Bu problemin en basit yöntemi FileMaker kurulum dosyaları içerisinde yer alan server.pem dosyasını yenilemek.
Dosyanın konumu: Program Files/FileMaker/FileMaker Pro X/server.pem

Server.pem dosyasının çalışan halini network paylaşımının sorunsuz çalıştığı bir bilgisyardan alabilirsiniz. Böyle bir imkanınız yoksa server.pem dosyasının düzgün halini aşağıdaki bağlantıdan indirebilirsiniz:
www.yazalim.com/filemaker-networking-file

Dosyayı aynı konuma kopyalayın. (C:/Program Files/FileMaker/FileMaker Pro X/ )

 

Diğer olası problemler

FileMaker’da dosya paylaşımı (network file sharing) oldukça kolaydır. Doğrudan FileMaker Pro veya FileMaker Pro Advanced ile File/Sharing/Share with FileMaker Clients seçeneği ile dosyayı paylaşıma açabilirsiniz.

Eğer yukarıdaki hata mesajlarını alıyorsanız veya dosya paylaşımında sorun yaşıyorsanız sebepleri şunlar olabilir;

  • Windows/MacOs Firewall veya kullandığınız anti virüs yazılımı 5003 portunu engelliyor olabilir. (FileMaker dosya paylaşımı için 5003 TCP portunu kullanır).
  • Dosya ismi paylaşımda gizlensin seçeneği işaretlenmiş olabilir.
  • Bilgisayarlar birbirine erişemeyen farklı ağlara bağlı olabilirler.

 

FileMaker 16’da Gelen Yenilikler

FileMaker 16

Apple yazılım ve (bazı) donanımlarında olduğu gibi her yıl yeni bir sürümle karşımıza çıkıyor. Geçtiğimiz hafta FileMaker 16’nın Türkçe sürümü de yayınlandı. 16 ile gelen yenilikleri Mobility, Development (Geliştirme), Integration (Entegrasyon), Security (Güvenlik), Scalability (Ölçeklenirlik) başlıkları altında topluyor FileMaker.

Biz de kendi gözümüzle ön plana çıkan FileMaker 16’da gelen yenilikleri değerlendirelim.

Pencereler

FileMaker 16’da görünümü özellikle Windows tarafında dikkate değer değişiklikler barındırıyor. Bazen şikayet ettiğimiz ana gri pencerenin içindeki küçük pencereler mantığından 16 ile kurtuluyoruz. Ayırca bu yenilikle beraber her pencerenin kendi menüsü ayrı tanımlanabiliyor, eski sürümde menüler ana pencere olduğu için bu yapılamıyordu.

Yeni görünümde ekranı sadeleştiren bir değişik de pencerenin en altındaki büyütme araç çubuğunun kaldırılmış olması. Özellikle layout tasarımında yakınlaştırma kontrollerini (zoom controls) sıklıkla kullandığım için buna alışmam biraz zaman alacak.

Card Window

UI/UX konularında çok işimize yarayacak gelişmeler Card Window tipi ile geliyor. Card window ile pencere içinde belirli bölgede başka bir yerleşim (layout) görüntüleyebiliyoruz. Card Window’un dışında hoşuma giden küçük bir bir yenilik New Window script adımında gideceği yerleşimi (layout) seçebiliyor olmamız. Bu yeni pencere açarken çalışmasını istemediğimiz  OnLayoutLoad triger’ının (tetikleyici) istenmedik davranışından kurtulmuş oluyoruz. Card Window’u anlatan tek başına bir yazı oluşturmaya başladık bile.

New Window Script adımı penceresindeki yenilikler

Layout Object Window (Yerleşim Nesneleri Penceresi)

Karmaşık layoutlar üzerinde çalışan geliştiriciler için büyük bir nimet. Başka nesnelerin arkasında kalan, slider panelinin içinde görünmeyen kısıma gelmiş nesneleri Layout Object Window ile çok kolay tespit edebiliriz. En güzel yanlarından biri de göster/gizle simgesi ile çalışırken görmek istemediğimiz öğeleri saklayabiliyor olmak.

Tasarım Öğelerini Yönetmek Artık Daha Kolay
Tasarım Öğelerini Yönetmek Artık Daha Kolay

Entegrasyon Yenilikleri

FileMaker geliştiricilerinin çok seveceği bir özellik de entegrasyon konularında gelen yenilikler. Calculation Engine (hesaplama motoru) için JSON fonksiyonları ve cURL script adımı ile herhangi bir plug-in’e ihtiyaç duymadan web servisleri ile entegrasyonunu mümkün kılıyor.

Ayrıca FileMaker Server, RESTful servis oluşturabileceğiniz bir arayüz (beta olarak) sunuyor. Örneğin FileMaker datanızı Tableau yazılımı görsel raporlama için güzel bir çözüm sunabilirsiniz.

Geliştirilmiş Data Viewer

Script debugger’da sıklıkla kullandığımız Data Viewer artık daha kullanışlı. Otomatik tamamlama, live preview, sytax error kontrolü ile UX derecesini artırmış

Yeni Web Viewer Penceresinde JSON Fonksiyonları
Yeni Web Viewer Penceresinde JSON Fonksiyonları

Performans

FileMaker, 13. sürümden beri her yıl performans açısından iyileştirmelerle geliyor. FileMaker 16’da da bu değişmedi. Web Direct artık tek makinede (single machine deployment) 100 kullanıcıya kadar, +4 worker machine desteği ile toplam 500 kullanıcıya hizmet verebilecek noktaya gelmiş.

iOS Platformu’na Gelen Yenilikler

FileMaker son zamanlarda mobil’e büyük yatırımlar yapıyor. 16. sürümle de iBeacon, GeoFence, Signature Capture, Animations, Plugin’s başlığında toplayabileceğimiz büyük yenilikler var.

Geofence ile belirli bir bölgeye/alana girdiğimizde script tetikleyebiliyoruz. Bu özellik iOS’un push notification sistemini kullanıyor, bu sayede FileMaker kapalı olsa dahi script tetiklemek mümkün.

Signature Capture’da gelen küçük (ama gerekli) bir yenilik ile penceredeki içeriği görerek imza alabiliyoruz.

Animations ile daha iOS arayüz animasyonları mümkün oluyor. Liste ekranından detaya giderken ekranın sağa kayması yada uçarı kaçması UX konusunda elimizi güçlendiriyor.

En önemlilerinden biri ise FileMaker Go için plug-in desteği. Plug-in geliştiriciler iOS uyumlu pluginleri tanıtmaya başladılar bile..

iOS Platformu için Animasyon Seçenekleri

Sonuç

FileMaker 16 ile bizi heyecanlandıran bir çok özellik geldi, bu yazımızda bunlardan belli başlıları hakkında kısa değerlendirmeler yaptık. Başlıca yazıyı hak eden özellikler ve arkada kalmış küçük güzellikler için yeni yazılarımızla karşınızda olacağız.