Hoşçakal XP – Say good bye to XP

Merhaba.

Microsoft uzun zaman önce Windows XP desteğinin sona ereceğini bildirmişti.

Hala kullananlar varsa bu yazıyı okumalarında fayda var.

Ne diyelim, sevenlerinin başı sağolsun.

 

endSupport

Emre TÜFEKÇİ
İstanbul

www.atol.com.tr

Ax 2012 Dialog Fieldlarda Replacement Key kullanımı

Malumunuz Ax 2012 yepyeni bir platform ile geldi ve bildiğimiz şeylerin pek çoğunu yeniden öğrenmemiz gerekti.

Bunlardan bir tanesi de ReplacementKey yapısı.

Eskiden hemen her tablo birbiri ile Extended Data Type’lar üzerinden ilişkilendirilmişken, Ax 2012’de çoğu tablo için RecId ilişkisi tercih edilmiş.

recId malumunuz Int64 tipindedir.

Bu bir bakıma iyi, bir bakıma kötü :

iyi tarafı; Indexler için Int64 kullanılması daha isabetlidir, join ederken Str alan yerine Int64 daha mantıklıdır vs

Kötü tarafı : Tablodaki dataya bakarak ne ile ilişkili olduğunu anlamak çok zorlaşmış olur, Formlarda ya da Dialog alanlarında RecId görünmesi çok çirkin olacaktır.

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

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

Best Practice derleyicisi ve Kod Review

Daha önceki yazılarımızda, Dynamics AX projesi yaparken nelere dikkat edilmesi gerektiğini parçalar halinde paylaşmıştım.

Bunlardan bazıları tecrübe, bazıları ise Microsoft tarafından doğrudan tavsiye edilen konulardan oluşmakta idi.

Örneğin Dynamics AX geliştirmesi yaparken dikkat edilmesi gereken konular başlıklı yazıyı inceleyebilirsiniz.

Bu konudaki en kritik detaylardan biri Microsoft tarafından tavsiye edilen kriterlere uygun geliştirme yapmaktır. Bunun için Best Practice Guide (Özeti için burayıtamamı için burayı tıklayın.) mutlaka incelenmeli, geliştirme yapılırken bu kurallar gözardı edilmemelidir.

Peki hali hazırda yapılmış bir geliştirmeyi nasıl değerlendirebiliriz?

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

Query Nesneleri (Queries) – 4 : Gelişmiş Sorgulamalar

Daha önceki yazılarımda Query nesnelerinden bahsetmiştim.

Bakınız : Query nesneleri 1 Query nesneleri 2, Query nesneleri 3

Bir Query’ye kriterler eklemek için QueryBuildRange nesnelerinin kullanılması gerektiğini de paylaşmıştım. Ancak herbir QueryBuildRange nesnesi standartta tek bir alan için tanımlanır. Ve değer atamak için kullandığımız yardımcı classlar veya fonksiyonlar bize bir noktaya kadar yardım edebilir. Bu da değer ya da aralık atama şeklinde gerçekleşir. (tek bir değer, en büyük değer, değil operatörü, tarih aralığı gibi)

Ancak gerçek hayatta sorgularımız çok daha karmaşık olabilir. Kriterlemiz tek bir alanda toplanamayıp farklı alanların ve – veya operatörleri ile birleştirilmesinden oluşabilir.
Örneğin müşteriler tablosunda müşteri grubu Yurtiçi olanlar ya da para birimi Türk Lirası olanlar gibi. Tabi bu değerlerin sabit olmayıp çalışma zamanında kullanıcıdan alınacağını varsayalım. Bu durumda iki farklı alana veya (OR) operatörü ile aralık eklemek gerekir.

Ya da uygulamamızda müşteri grubu yurt içi ya da yurtuiçi kurumsal olanları sorgulamak istersek aynı alanda veya operatörü (OR) kullanarak bir kriter belirtmemiz gerekir. Peki bunu nasıl yapabiliriz?

QueryBuildRange nesneleri ve OR operatörü
Yukarda da bahsettiğim gibi, bir Query’ye eklenen tüm QueryBuildRange’ler birbirleri ile AND operatörü ile bağlanırlar. Ancak biz bunu her zaman istemeyiz. Standart nesnelerin yardımının bittiği yerde gelişmiş (yada genişletilmiş) sorgulama yöntemleri devreye girer. Query nesnelerinde gelişmiş sorgulama yöntemleri kullanılarak OR operatörünü kullanmanın iki yöntemi vardır.

Okumaya devam et

Index’e eklenebilecek maksiumum alan sayısı – The maximum limit for index

Her ne kadar pek sık karşılaşmasak da, dün bir müşterimizde index’e eklenebilecek alan sayısının fiziksel olarak sınırlı olduğunu gördüm.

Bir tabloya 13 alan eklenmiş ve bunlardan bir tanesi Dimension, yani aslında 3 alana karşılık geliyor.

Böylece tablodaki bir indexte toplam 15 alan oluşmuş.

Aslında sınır 16 olmakla birlikte alttaki hata mesajını incelerseniz indexe varsayılan olarak şirket bilgisinin (DataAreaId) de eklendiğini görebilirsiniz.

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

Parametre Sistemi Tasarım Deseni – Parameter System Design Pattern

Parametre Sistemi Tasarım Deseni, bir firmadaki her bir modülle ilgili statik (sabit, sık değişmeyen) kurulum bilgilerini saklamak üzere kurulmuştur. Örneğin şirketin para birimi, logosu, faturalandırma ayarları gibi. Parametre yapıları her bir modül için bir tane olmak üzere kurgulanmıştır. Böylece modüler bazda ayar yapmak mümkün olur. Siz de kendinize ait bir modül yazarsanız mutlaka parametre yapsını kurgulamalısınız.

Parametreler yapsı her bir modül için 3 ana kısımdan oluşur:

  1. Parametreler tablosu
  2. Parametreler formu
  3. Forma işaret eden bir display menu item

Şimdi sırasıyla bunları inceleyelim:

Okumaya devam et