AXAPTA ile Ugulama Geliştirmenin 9 Adımı - Yazgelistir.com
Yazar: Anıl Özay
ERP paketlerinin temelinde “TEK” sözcüğü yatmaktadır. Yani tüm işlemler tek bir program üzerinden yapılabilmeli ve tek bir veritabanı olmalı olmalıdır. Bu sayede modüller arası iletişim sağlanmış olur. Axapta “tek” kelimesini daha da ileriye taşıyarak geliştirme ortamını da Axapta içine entegre etmiştir. Bu geliştirme ortamına ‘MorphX’ adı verilmektedir. MorphX ile uygulama geliştirirken de dokuz adıma göre hareket etmeniz gerekir.
Axapta üzerinde uygulama geliştirdiğinizde yarattığınız nesnelerin ortalama olarak %80’inde değişiklik yapmanız gerekmez, bu da size oldukça hızlı uygulama geliştirme olanağı sağlayacaktır. MorphX üzerinde uygulama geliştirme yapabilmeniz için tablolar, sorgular, formlar, sınıflar, güvenlik anahtarları gibi birçok nesne bulunmaktadır.
Axapta’da uygulama geliştirmenin üzerinde durduğu ana noktalardan birisi yeniden kullanılabilirlik (reuse)’dir. ERP uygulamalarında geliştirme talepleri çok yoğun olmaktadır ve herşeyi baştan yazmak çok uzun zamanınızı alacaktır, bunun yerine yeniden kullanılabilir nesneler yaratmanız size büyük rahatlık sağlayacaktır.
Axapta ile uygulama geliştirirken aşağıdaki dokuz adımı izlemeniz gerekmektedir :
1. Kavramsallaştırma : Problemi anlayın
2. Genişletilmiş veri tiplerinizi ve temel dizilerinizi tanımlayın.
3. Tablolarınızı yaratın.
4. Sınıflarınızı yaratın ve iş mantığınızı yazın.
5. Kullanıcıyla etkileşim için form’larınızı tasarlayın.
6. Raporlarınızı yaratın.
7. Formlarınıza ve raporlarınıza erişim için menü nesneleri yaratın.
8. Sistem güvenliği ayarlarını yapın.
9. Yardım metinleri yazın.
Bu aşamaları düzenli olarak yaptığınızda, bir süre sonra elinizde kütüphaneniz oluşmaya başlayacak ve bu adımların süresi oldukça kısalacaktır.
Ayrıca yaptığınız her geliştirmeyi çok iyi test etmelisiniz. Çünkü yaptığınız hataların şirkete zararı genellikle maddi olarak çok büyük olacaktır. Türkiye’nin önde gelen şirketlerinin bir gün süreyle fatura kesemediğini düşünebiliyor musunuz???
Projenin sağlıklı olup olmayacağını en acı şekilde birinci adım belirleyebilir. Yazılım geliştiricilerin en büyük sıkıntısıdır problemi netleştirmek. Neden mi ?
a. Kullanıcı ne istediğini tam olarak bilmiyor olabilir
b. Kullanıcı istediğini tam olarak anlatamıyor olabilir.
c. İş süreçlerini çok iyi bilmediğiniz için anlatılanı anlamayabilirsiniz.
Bu ve bunun gibi birçok problem daha projenin başında sizin farklı yollara kaymanıza sebep olur. Hatta bu olay o kadar standart hale gelmiştir ki, birçok karikatüre malzeme olmuştur. Daha ilk başından projenin ana amacını anlamaya çalışın. Bu noktada mutlaka son kullanıcı ile beraber olun ve iş süreçlerini inceleyin, çünkü yaptığınız programı kullanacak kişiler onlar olacaktır.
Proje ile ilgili kişileri karşınıza alın ve aşağıdaki soruları sorun :
- Problem nedir?
- Problemin çözümü için gerekli adımlar nelerdir?
- Bu sistemi kimler kullanacak?
- Hangi formlar ve raporlar tasarlanacak?
- Menüler nerde olmalı ve menülere erişim hakkı olan gruplar kimlerdir?
Yaratacağınız ya da değişiklik yapacağınız form ve raporların da çalışma mantığından tutun da tasarımına kadar ana noktalarının belirlenmesi bu adımda olur. Yani son kullanıcıdan nasıl ekranlar istediğini, yaptığı işin sonucunda hangi raporları almak istediğini bu adımda belirlemelisiniz.
Bu bilgileri topladıktan sonra son kullanıcı ile tekrar gözden geçirip mutakabata varmadan projeye sakın başlamayın.
İstekleri aldınız ve anlaşmaya vardınız ve top sizde artık. Tablo yapılarını çıkarmanız gerekiyor. Bu konuda ise varitabanı tasarımı bilginizin olması şart. Axapta’nın veritabanı mantığı bildiğiniz SQL Server ya da Oracle mantığından belirli noktalarda farklılık gösterir. Fakat temelinde gerçek veritabanı sistemleri yattığı için alışmanız hiç zor değil. Tasarım kabiliyetiniz ise size kalmış. Bu konuda E.F. Codd’un “The Relational Model for Database Management Systems (1990)” kitabını inceleyebilirsiniz.
Axapta veritabanları da ilişkisel yapıdadır ve aynen SQL Server’daki gibi iki tablo arasındaki ilişkiyi anahtar alanlar vasıtasıyla tanımlayabilirsiniz. Bu noktada Axapta genişletilmiş veri tiplerini ortaya koymuştur. Genişletilmiş veri tipleri programcı tarafından tanımlanan veri tipleri olup ilkel veri tiplerinden ya da başka bir genişletilmiş veri tipinden miras alırlar. Genişletilmiş veri tiplerine Axapta üzerinde ‘Extended Data Types’ adı verilir, kısaca ‘EDT’ olarak adlandırılır. EDT’ler sayesinde bir veri tipinin etiketinden tutun, uzunluğuna, sağa veya sola dayalı olduğuna kadar birçok özelliğini belirleyeblirsiniz. Ve bu veri tipininden gelen alanlarınız için yeniden tanımlama yapmanız gerekmez. Yönetim de oldukça basitleşmiş olur. Gelelim EDT’nin diğer faydasına.. EDT üzerinde ilişkiler tanımlanabilir. Örneğin Axapta’da Stok tablosundaki StokKodu sahası ‘ItemNo’ isimli EDT’den gelmektedir ve bu EDT üzerinde ilgili tipin Stok tablosunda Stok kodu alanına eşit olduğu tanımlanmıştır. Dolayısıyla bu EDT yi baz alan bir alanı kullanan başka bir tabloda (örneğin Stok Hareketleri) yeni bir ilişki tanımlamaya gerek kalmaz, otomatikman ilişki kurulmuş olur.
Tablolarınız ve tablolarınız arasındaki ilişkiler sizin kilit noktanız olacaktır.Uutmayın ki, kötü bir tablo tasarımı ve yanlış kurulan ilişkiler hiçbir zaman sizin peşinizi bırakmaz, her yerde sorun çıkartır.
Axapta’da iş mantığını yarattığınız yerler sınıf’lardır. Sınıfları yazarken dikkat etmeniz gereken en önemli nokta tekrar kullanılabilirlik olmalıdır. İleride bu metodu nasıl kullanabilirim diye düşünüp, ileriye doğru adımlar atarsanız uygulama geliştirme zamanınız günden güne kısalır ve yönetiminiz kolaylaşır.
Sizin için programın mimarisinin çok iyi olması önemlidir ama son kullanıcılar için önemli olan nokta arayüzün nasıl olduğudur. Çünkü son kullanıcı sadece formlar ve raporlar ile karşı karşıyadır ve ağzınızla kuş tutsanız, tasarımı kötü bir formla onları tatmin edemeyebilirsiniz. Dolayısıyla formlar sadece veri girişi ve görüntüleme için kullanılan araçlar değildir, son kullanıcı için formlar, uygulamanın kendisidir. Bu noktada formlarınızı kullanırken sadeliğe önem vermelisiniz. Çok fazla alanla kullanıcının kafasını karıştırmayın.
Formlarınızda kullanacağınız veri kaynaklarını önceden belirlemelisiniz. Bu veri kaynaklarını form’a ekleyin ve form üzerindeki alanları bu veri kaynağına bağlayın. Formlarınızı tasarlarken mutlaka örnek veriler girin ve ekranınızın son görünümünü öncelikle siz test edin.
Form ve raporlarınızı tam istedikleri gibi tasarladınız fakat özel sektördeki en önemli noktalardan birisi olan gizlilik politikasına takılacaksınız. Axapta üzerinde güvenlik yedi ayrı yöntemle sağlanabilir. Bu yöntemlerin kapsamı tüm modülün güvenliğinden tutun, kayıt bazında güvenliğe kadar gider. İşin güzel kısmı ise bu iş için kod yazmanız gerekmemesi. Sadece ilgili ayarları yapmanız yeterli. Yaptığınız geliştirmeleri kimlerin göreceği, kimlerin değişiklik ya da silme işlemi yapabileceği gibi bilgileri gözden geçirin ve tanımlamalarınızı yapın.
Projeyi bu haliyle teslim edebilirsiniz miyiz? Belki olabilir çünkü sistem çalışıyor ve güvenlik ayarları da bitti. Ama kullanıcılar sözlü anlattığınız kavramları bir süre sonra unutacaklardır. Yazılı olarak verirseniz de bir süre sonra kaybedebilirler. Bu noktada uygulamayla ilgili yardım metinlerini uygulamanın içine gömmelisiniz. Axapta HTML editörü ekranında istediğiniz şekilde yardım metnini hazırlayın ve kaydedin. İş dünyasında değişim de çok hızlı olduğu için programı kullanacak sonraki nesillere de tek tek eğitim vermek ya da kitapçık dağıtmak zorunda kalmazsınız.