Yazılım geliştirmede fonksiyonalite ve basitleştirme yaklaşımı

Hemen her konuda fonksiyonalite ile basitlik arasında bir ters orantı olduğunu söylemek mümkündür.

Örneğin çok amaçlı bir tornavida setinin karmaşıklığı tek bir iş yapan tornavidadan çok daha fazladır.

Karmaşıklık ise genellikle kullanım zorluğu ile eşgüdümlüdür. Dolayısı ile karmaşık bir aygıtın (tool) kullanılması da zordur.

multiScrew

Peki bir taraftan çok fonksiyonluluk bizim için gerekli iken kullanım kolaylığı da gerekiyorsa ne yapmalıyız? Sadece bu konuya yönelik çalışmalar yapan firmalar olduğunu elbette biliyoruz. İsviçre çakıları bu konudaki en iyi örneklerdendir. Ama yine de çok amaçlı bir İsviçre çakısının tüm fonksiyonlarını çok kolay gerçekleştirdiğini söylemek mümkün değildir.

Okumaya devam et

Numara serileri Ax 2012

Daha önceki makalede numara serileri ile ilgili temel konulara değinmiştik ama sistem standartlarına göre kullanmayı ikinci bir yazıya bırakmıştık. Bu arada köprünün altından çok sular aktı ve Ax 2012 yayınlandı. Her ne kadar temel felsefe aynı kalsa da bazı değişiklikler olduğunu söylemeliyiz. Dolayısı ile değişen ya da yenilenen tarafları ile konuyu yeninden ele almak gerekti. Geçen sefer çok uzun olmasın diye kısa kesmiştim ama bu sefer tamamını yazdım.

Öncelikle eski versiyonlar ile AX 2012 arasındaki en temel farkları sıralayacak olursak

  1. EDT tanımlarında bazı farklılıklar var.
  2. Tablo özelliklerinde bazı farklılıklar var.
  3. Yerleşik metodlarda farklılıklar var.
  4. Kullanılan classların isimlendirmesi değişmiş.
  5. Load module metodu aynı kalsa da parametreler değişmiş.
  6. Numara serileri şirketler arası, mali yıla bağlı ya da normal (eskisi gibi) tanımlanabiliyor.
  7. Sihirbazın yeni numara serisini görmesi için bir job çalıştırılması gerekiyor.
  8. Numara serilerini asıl yöneten kodlar form yerine classa taşınmış. (Bence daha iyi olmuş)

Önceki yazıdan hatırlatma babından bir alıntı :
Numara serileri Dynamics Ax içindeki en temel konulardan birisidir. Numara serisi tanımlanmış bir formda her yeni kayıt oluşturulduğunda (kuruluma bağlı olarak) yeni bir numara verilir. Bu numara adından zannedileceği gibi integer değil, string alandır.

Numara serisi tanımlarken kendi modülümüz mü yoksa varolan bir modül mü kullanıldığı önemlidir. Kolay anlaşılması için varolan bir modül olduğunu kabul edelim ve bu modül örneğimiz için Alacak hesapları olsun. Anlaşılacağı üzere numara serileri ile Modüller sıkı bağlıdır.

Şimdi kolları sıvama vakti. Yapmamız gereken işlemler sırası ile alttadır. Her aşamadan önce kaydetmek işinizi kolaylaştıracaktır. Ayrıca Eşitleme isteği gelirse evet demelisiniz. Haydi kolay gelsin 🙂

Okumaya devam et

Satış siparişi deftere nakil işlemleri – 1 (SalesTable Posting Invoices)

Satış siparişleri (SalesTable) muhtemelen bu blogda en çok üzerinde konuşulan tablolardan birisidir. Bu yazıda da satış siparişleri üzerindeki güncelleme, yani deftere nakil işlemlerine değinmek istiyorum.

Aslında Satış siparişi başlığı (SalesTable) ve ona 1:n bağlı sipariş satırları (SalesLine) Ax’ta WorkSheet olarak adlandırılan tablolar grubundadır. Yani bu tablolar aslında çalışma sayfalarıdır. Fatura, irsaliye, malzeme çekme listesi gibi işlemler yapıldığında her biri ile ilgili tablolara kayıtlar atılır. Teknik olarak faturalanan bir sipariş SalesTable’dan silinebilir. Ama bunu hiç yapmayız.

Okumaya devam et

Enumun değerleri ve Reflection

BaseEnum (enum ya da enumarated values şeklinde de ifade edilebilir) hiç değişmeyen değer kümelerini (örneğin : Yılın ayları, haftanın günleri vb.)

ya da sık değişmeyen değer kümelerini (örneğin : sipariş durumu, işlem tipi vb. ) ifade etmek için kullanılır.

En önemli sınırlaması yeni bir değerin kullanıcı tarafından değil, ancak yazılımcı (developer) tarafından eklenebilir olmasıdır.

Buna karşılık Enum’lar veri tabanınnda bir tamsayı değeri ile ifade edildiğinden hem az yer kaplar, hem de sık değişmediğinden bu değerlere göre kodlar yazılabilir.

Not : Yazıyı geçen hafta yayınlamıştım ancak kod kısmında hata oluşmuş, tekrar inceleyebilirsiniz.

Okumaya devam et

Şirket hesapları ve Crosscompany

Yıldız Hanım’ın sorusu üzerine:

Bildiğiniz üzere Dynamics AX’ta şirket hesapları üzerinden işlemler yapılmaktadır. Şirket hesapları aynı veritabanında ve aynı uygulamada birden fazla tüzel kişiliği yönetmemizi sağlar.
Ayrıca gerçek uygulamaya en yakın testleri yapabilmek için de şirket hesaplarını kullanabiliriz.

Dynamics AX’ta bir sorgu yazdığımızda, aksini belirtmediğimiz sürece tüm sorgulamalar oturumda seçilmiş olan şirket hesabında gerçekleştirilir. Yani bir diğer şirket hesabındaki veriler gösterilmez.

Bu ayrımı sağlamak için Ax’taki tabloların hemen hemen tamamında (User tablosu gibi bazı tablolar hariç) DataAreaId adında bir alan bulunur.

Ancak bazı durumlarda tüm şirket hesaplarındaki verileri görmek isteyebiliriz. Ya da bazı şirket hesaplarını seçip ilgili datayı görmek isteyebiliriz.
Bu durumda CrossCompany anahtar sözcüğü devreye girer.

Alttaki kodları incelerseniz crossCompany özelliğinin sorgularda nasıl kullanıldığını görebilirsiniz.

 

Okumaya devam et

Formlarda Hızlı Filtreleme Yapma – 2 (Tarih filtresi)

Bu makalemde Formlarda Hızlı Filtreleme Yapma – 1 de belitrmiş olduğum filtrelerden tarihe göre filtrelemeyi anlatmaya çalışacağım.

Tarih filtresi

İsteğe göre Ax’ın standartında olmayan filtreler ekleyebiliriz.
İstersek form ilk açıldığında yada 2 tarih alanı ekleyerek, formumuzdaki tarih alanına göre filtre yapabiliriz.
Bu makalemde tarih filtresinin nasıl yapıldığını anlatacağım.

Okumaya devam et

Formlarda Hızlı Filtreleme Yapma – 1

Herkese Merhaba,

Bu yazımda Axapta formlarında hızlı bir şekilde nasıl filtre yapılacağına dair bilgileri paylaşmaya çalışacağım. Formlarda filtre yapabilmek için birkaç yöntem var.

  • Alana göre filtreleme.
  • Kılavuza göre filtreleme.
  • Form açılırken yapılması istenen sıralama veya filtreleme .
  • Tarih alanına göre filtreleme
  • Ekstra alanlara göre filtreleme (Radio buton, CheckBox , ListBox ile filtreleme)

Bu makalemde ilk 3 yöntemi anlatmaya çalışacağım.
Şimdi bunları biraz açalım…

 

Okumaya devam et

CSV ile veri aktarımı

Herkese Merhaba,

İlk yazı olarak CSV formatında oluşturduğumuz bir dosyayı nasıl AX’taki bir tabloya aktarabileceğimizi inceleyeceğiz.

Excelin esnekliğini kullanarak oluşturduğumuz CSV dosyamızı, AX’da bazı tabloları güncellemek için kullanabiliriz. CSV dosyasından, AX’taki tabloları güncellemek veya yeni kayıt oluşturmak için bazı yöntemler vardır. Bunlardan biri Job yazarak içeri aktarma yöntemidir.

Örneği biraz açıklayacak olursak, xTable isminde bir tablomuz var. Deneme.csv dosyamızdan xTable tablosuna verileri aktarmak istiyoruz.

Okumaya devam et

Dynamics AX 40 kullananlar için döküman

Selamlar.

Dün genç bir meslektaşım blogdaki kodları denemek istediğini ancak kodların tam uyuşmadığını ifade etti. Ben de kendisine buradaki yazıların tamamının AX 2009 ile uyumlu olduğunu, eski versiyonlarda bazı farklılıklar olabileceğini söyledim. Kendisine bir döküman yollayabileceğimi söyledim ancak ihtiyacı olan herkes kullanabilsin diye buraya eklemeyi daha uygun gördüm.

Microsoft tarafından ücretsiz yayınlanan ve telif hakkı ile korunmayan  Inside Dynamics AX 40 isimli e-kitaba bu linkten ulaşabilirsiniz.

Açılacak klasördeki diğer dökümanları da alıp inceleyebilirsiniz.

Emre TÜFEKÇİ

İstanbul

www.atol.com.tr

Dynamics AX’ta Katmanlar Arası Fark Projesi Oluşturmak – Creating Layer Differences Project in Dynamics AX

Dynamics AX’ta geliştirme yapıyorsanız projeler konusuna aşina olmalısınız. Genel olarak projeler yapılmak istenen herbir geliştirme için bir tane olmak üzere oluşturulur ve ilgili proje kapsamında değiştirilen ya da yeni eklenen nesneleri içerir.

Elbette farklı kullanım şekilleri de mevcuttur. Örneğin belirli bir tarihte yapılan işler tek projede birleştirilebileceği gibi, bir modülle ilgili yapılan tüm işler de tek bir projede birleştirilebilir. Ancak bu tip işlemler hep elle yapılan işlemlerdir. Yani istenen nesneler ilgili projeye sürüklenip bırakılarak bir gruplama elde edilir.

Biz bu yazımızda biraz daha farklı bir konuyu inceleyeceğiz. Buna göre bir katmada değiştirilmiş ya da yeni eklenmiş tüm nesneleri bir projede otomatik olarak birleştirmeyi inceleyeceğiz.

Bunun için alttaki yönergeleri izleyebilirsiniz:

Önemli Not : Eğer Microsoft Dynamics AX Rollup7 kullanıyorsanız bu makalede anlatılan işlemi yapamayabilirsiniz. İlgili Fix için KB2547903 yükelemniz gerekebilir.

Okumaya devam et