Online organize ettiğimiz eğitim ile ilgili ders dokümanlarını ve kayıt aldığımız eğitim videolarını bu sayfada paylaşıyoruz. Sayfamız son dersten ilk derse doğru sıralıdır.
Herkese merhaba! 30 Kasım 2019, Cumartesi günü Osman Cabi‘nin anlatımıyla İnnopark’ta gerçekleşen “FileMaker’da Çok Dilli Uygulama Geliştirme (FileMaker Multi-Language Applications)” konulu meet-up’ımızı aşağıdaki linkten izleyebilirsiniz:
FileMaker’da hesaplama fonksiyonları ile birçok işimizi kolaylaştırıyoruz. Sık kullandığımız veya başka tabloda/projede kullanacağımız hesaplamaları özel hesaplama olarak tanımlamamız da mümkün. Geçtiğimiz hafta meetup’da konuştuğumuz konu da FileMaker’da Custom Functions idi.
Meetup’da kullandığımız (örnek custom function içeren) dosyamızı buradan indirebilirsiniz.
FileMaker Server kurulumu; özellikle 17. sürümle beraber kurulum ve yönetim işlemi çok pratik. Yine de FileMaker server kurulumu nasıl yapılır sorusunu yanıtsız bırakmayarak bir yazı hazırladık.
Kurulum işlemi yabancı tabirle “straight forward”, oldukça basit. Setup dosyasındaki adımları takip etmeniz yeterli, FileMaker gerekli bir çok ayarı kurulum dosyası ile zaten yapıyor. Aşağıdaki videodan kurulum adımlarını izleyebilirsiniz. Video’yu özellikle montajlamadık ki gerçekten 5 dakikadan daha az sürede kurulumun tamamlandığını görün istedik 🙂
Bu yazıdaki esas konu ise kurulum sonrası FileMaker Server Admin Console kullanımı ve yönetimi hakkında. FileMaker Server’a nasıl dosya yüklenir, veritabanları nasıl yayına alınır ve durdurulur, yedeklemeler nasıl yönetilir sorularının cevaplarını bu yazıda bulacaksınız.
FileMaker 17’de veri tabanını oluşturduktan sonra aşağıdaki adımları takip ederek FileMaker Server’a yükleyebilirsiniz.
File>Manage>Security yolunu izlediğinizde karşınıza veri tabanınızdaki hesaplar çıkar. Burada veri tabanınıza yeni kullanıcılar ekleyebilir, kullanıcı şifrelerini ayarlayabilir ve kullanıcıların yetkilerini (tam erişim, kayıtlarda değişiklik yapma, sadece okuma gibi) düzenleyebilirsiniz.
Veri tabanınıza FileMaker Server ile veya tarayıcıyla (FileMaker WebDirect) ulaşmak için Extended Privileges sekmesine gelip network’te ve webdirect de ulaşılması veya değişiklik yapılması için gerekli izinleri verin. Bunun için fmwebdirect ve fmapp satırlarına çift tıklayıp tam erişim, sadece veri girişi ve sadece okuma seçeneklerinden sizin için uygun olanları işaretleyiniz.
Yukarıdaki adımları uyguladığınızda veri tabanınızı hem FileMaker WebDirect ile tarayıcınızdan hem de FileMaker Server 17 ile sunucu üzerinden kullanılabilir hale getiriyorsunuz. Veri tabanınızı FileMaker Server 17 üzerinden kullanabilmek için File>Sharing>Upload To FileMaker Server yolunu izleyin.
Veri tabanınız için parola oluşturun. Yükleme işlemi için programı kapatma uyarısın geldiğinde OK düğmesine tıklayıp devam edin.
Karşınıza çıkan ekranda alt kısımdaki Host Adress bölümüne sunucu bilgisayarınızın IP adresinizi yazın ve yukarıda bulunan Hosts açılır sekmesine tıklayın. Sunucunuza bağlandıktan sonra sağ taraftaki sunucu adı ve şifresi bölümü aktif hale gelir. Sunucunuzun kullanıcı adı ve parolasını girip Next düğmesine tıklayın.
Bilgisayarınızda sunucunuza aktarmaya hazır olan veri tabanları açılan ekranda gözükecektir. Eğer gözükmüyorsa “Browse” düğmesine tıklayıp bilgisayarın içinde dosyanızı bulabilirsiniz. Yüklemek istediğiniz veri tabanını seçtikten sonra Upload düğmesine tıklayın.
Yukarıdaki adımları izlediğinizde veri tabanınıza FileMaker WebDirect ve Filemaker Server 17 ile erişebilirsiniz. Bir diğer yöntem de veri tabanınızı sunucuya bir flash bellek yardımıyla aktarmaktır. Büyük boyutlu veri tabanları için bu yöntem daha pratiktir. Veri tabanınızı flash belleğe aktardıktan sonra sunucu bilgisayarına takıp veri tabanlarının depolandığı klasöre aktarmanız gerekmektedir.
FileMaker server standart depolama alanı;
Windows için; C:\Program Files\FileMaker\FileMaker Server\Data\Databases
macOs için; /Library/FileMaker Server/Data/Databases/
FileMaker Server 17 Kullanımı
Sunucu yönetici konsolunu açmanız için tarayıcınıza sunucu bilgisayarından bağlanıyorsanız tarayıcıya https://localhost:16000/admin-console linkini, başka bir bilgisayardan bağlanıyorsanız için https://<host>:16000/admin-console linkini yazmanız gerekir. Daha sonra kullanıcı adı ve parolanızla yönetici konsoluna giriş yapabilirsiniz.
Dashboard
Dashboard ekranının üst kısmında bütün sisteminizin özetini görüyorsunuz. Sunucunuzda anlık bağlı olan kullanıcı sayısını, sunucunuza yüklü veri tabanı sayısını, kaç kullanıcının FileMaker Pro, FileMaker Go ve WebDirect’den bağlı olduğunu, ve sunucunuz hakkında genel bilgileri görebilirsiniz.
Sistem özetinin alt kısmında kapasite istatistiklerini ve sistem istatistiklerini (zamanla CPU, hafıza, network ve disk değişimi) gözlemleyebilirsiniz.
Database
Database sekmesinde ekranın sol kısmında server’a yüklediğiniz bütün veri tabanlarının listesini görürsünüz. Herhangi bir veritabanının yanındaki oka tıkladığımızda bu veritabanını durdurabilir, tekrar başlatabilir, kapatabilir, indirebilir veya silebilirsiniz. Veritabanınız kapandığında mavi nokta kırmızıya döner.
Ekranın sağ kısmında anlık olarak hangi kullanıcıların hangi veri tabanına bağlı olduğunu görebilirsiniz. Bağlı kullanıcılardan herhangi birini seçip kullanıcı listesinin üzerindeki “Disconnect” ve “Send Message” düğmeleriyle seçtiğiniz kullanıcının bağlantısını kesebilir veya mesaj gönderebilirsiniz.
Backup
Backup sekmesinde ekranın sol tarafında otomatik yedekleri (Auto Backup and On-Demand), korunmuş yedekleri (Preserved) görebilir ve bir yedekleme planı (Backup Schedules) yapabilirsiniz. Yedekleme planını tüm sunucuyu, sadece belirli bir klasörde olan veri tabanlarını ya da sadece bir veritabanını günlük, haftalık, ya da her N gün (2 günde bir, 5 günde bir) olarak ayarlayabilirsiniz. Otomatik yedeklemeler her gece yarısı serverdaki bütün veri tabanları için yapılır ve 7 gün sonra sunucudan silinir.
Configuration
Configuration sekmesinde genel ayarlarınızı göreceksiniz. Filemaker Clients bölümünden Filemaker Pro Advanced ve WebDirect de zaman aşımını ayarlayabilirsiniz. Folders bölümünde veritabanlarınızın ve yedeklerinizin sunucunuzda hangi klasörde tutulduğunu görüyorsunuz. Script Schedules kısmında bir veritabanınız için günlük, haftalık, sadece bir kere , 5 günde bir gibi seçeneklerle yazmış olduğunuz bir scripti otomatik olarak çalıştırabilirsiniz. Notifications kısmında bildirimlerinizi email adresinize yönlendirebilirsiniz. SSL Certificate kısmından veri güvenliğiniz için sertifika yükleyebilirsiniz. Son olarak Logging kısmında server loglarınızı inceleyebilirsiniz. Hangi kullanıcı, hangi veri tabanına ne zaman giriş yapmış gibi bilgileri buradan görebilirsiniz.
Connectors
Connectors sekmesinde veri tabanınızı webde paylaşabilir ya da diğer program dilleriyle (PHP, C#, Java, Phyton vb.) etkileşime sokabilirsiniz. WebDirect’e ulaşmak için Lunch Center URL başlığının sağında yazan linki tarayıcınızla açabilir ya da linkin yanındaki mavi renkli Open Launch Center düğmesine tıklayabilirsiniz.
Administration
Administration bölümünde ise lisansınız hakkında gelen bilgileri görebilirsiniz. Kullanıcı adı ve parolanızı ve diğer yönetimleri buradan gerçekleştirebilirsiniz.
FileMaker Server’ı Local Network’ten Internet’e Taşıyın
FileMaker Server, Client’larla iletişim kurarken belirli TCP/IP portları üzerinden çalışır. Bu portal varsayılan olarak local network’ünüzde (yerel ağ) açıktır. Ancak FileMaker’a internet üzerinden erişmek için firewall veya modeminiz üzerinden bazı ayarları yapmanız gerekir. Örneğin; FileMaker WeDirect’e erişmek için 80 ve 443 portlarını FileMaker Server’ın kurulu olduğu sunucuya yönlendirmeli veya firewall üzerinden izin vermelisiniz.
Türkiye’nin en geniş katılımlı FileMaker etkinliğimizi Konya Innopark ofisimizde gerçekleştirdik. FileMaker Konya buluşmamızı değerli katılımlarıya zenginleştiren ziyaretçilerimize ve konuşmacılarımıza, ayrıca etkinlik öncesi ve etkinlik sırasında verdiği emeklerle kusursuz bir organizasyona imza atan ekibimize teşekkür ederiz.
Etkinlik sunumlarına aşağıdaki bağlantılardan ulaşabilirsiniz.
FileMaker değer listesi oluştururken seçimi kolaylaştırmak için aralara seperatör ekleyebilirsiniz. Bunun için sadece bir – (tire) karakteri koymanız yeterli.
Layout ve Scriptler’de seperatör ekleme düğmesi olmayan FileMaker’ın eski sürümlerinde, aynı yöntemle scriptler, layout isimlerinin arasında da seperatör koyabilirsiniz.
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
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ı;
Trigger ile tetiklediğimiz script $$kaydet global değişkeni 1 değerini almadığı durumlarda işlemi durduracak.
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.
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.
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.
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.
Ö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;
ChangeLogger özel fonksiyonunu dosyasınıza aktarın (FileMaker Pro Advanced gerektirir)
TimeStamp (zaman damgası) tipinde, st_ModTS isimli bir alan tanımlayın.
st_ModTS alanının auto-enter seçeneğini değişiklik zamanını verecek şekilde düzenleyin.
Metin tipinde, st_ChangeLog isimli bir alan tanımlayın.
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 ) )
st_ChangeLog alanı için auto enter seçeneklerinde “Do not replace exsiting value” seçeneğinin işaretini kaldırmayı unutmayın.
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.