Makale Özeti

Bu yazıda, Microsoft Dynamics NAV (eski adıyla Navision) ERP programının tasarım/ geliştirme ortamının yapısı hakkında bilgi vererek, programın çalışma kurgusunu bazı örneklerle açıklamaya çalışacağım.

Makale

Merhaba arkadaşlar,

Bu yazıda, Microsoft Dynamics NAV (eski adıyla Navision) ERP programının tasarım/ geliştirme ortamının yapısı hakkında bilgi vererek, programın çalışma kurgusunu bazı örneklerle açıklamaya çalışacağım.

Navision programı C/Side (Client/Server Integrated Development Environment) adıyla bilinen kendi geliştirme ortamına sahiptir. Geliştirme ortamı programa entegre olduğu için, herhangi ek bir uygulama kurmaya da gerek yoktur. Navision veritabanında uygulamayı oluşturan tüm nesnelere C/SIDE Nesne Tasarımcısı üzerinden erişebilirsiniz. Program Lisansınız gerekli izinlere sahipse nesnelerin tasarımına girebilir ve C/AL kaynak kodlarını değiştirebilirsiniz. Nesne Tasarımcısında bulunan her nesnenin kimlik numarasına göre benzersiz bir adı, sürüm listesi ve yanında oluşturulma tarihi bulunur. Ayrıca nesnelerde değişiklik yapıldığında otomatik olarak nesne denetlenir bir değişiklik bayrağı işaretlenir. Nesne üzerinde değişiklik yapılmış olduğunu bu sayede anlayabilirsiniz.

Object Designer

Yukarıdaki resimde NAV 2009 Nesne Tasarımcısını görüyoruz. C/SIDE geliştirme ortamı nesne tabanlıdır, nesne yönelimli değildir. Yani yukarıdaki ekranın sol köşesinde yer alan nesne türleri üzerinde işlem yapmaya izin verir. Yeni nesneler yaratamazsınız. NAV 2009 Nesne türleri şunlardır:

Table: Veriler tablolarda saklanır.

Form/Page: Verilerin işlenmesi için kullanılır. Classic client tarafında formlar kullanılırken, RTC de yerini Page almıştır.

Report: Verilerin belirli filtre ve sıralama yöntemleriyle görüntülenmesini sağlar.

Dataport: .txt, veya .csv  formatında dosya içeri veya dışarı aktarım için kullanılır.

Xmlport: .xml  formatında dosya içeri veya dışarı aktarım için kullanılır.

Codeunit: C/AL dilinde yazılmış kod parçalarıdır. Farklı nesnelerin içinden çağrılabilirler.

Menusuite: Gezinti bölmesinde yer alan menüleri barındırır.

 

NAV 2013 ile birlikte Formlar ve Dataportlar kullanımdan kalkarken, Query isimli sistemden veri kümesi almaya yarayan nesne türü eklenmiştir.

Navision C/SIDE veritabanında kayıtlar, benzersiz kimlik numaralı tablolarda tutulur. Bir C/SIDE tablosu satır ve sütunlardan oluşan iki boyutlu bir matriks gibi düşünülebilir. Müşteri lisansında ekleme izni olacak tablolar 50.000 kimlik numarasından başlar. Kimlik numarası doğru seçilmeyen nesneler geliştiricinin lisansında çalışabilir ancak müşteri lisansında açılmayacaktır.

İçinde "Entry" ibaresi geçen tablolar yapılan işlere ait hareketlerin bulunduğu giriş tablolarıdır. Araçlar >> “Nesne Tasarımcısı” nı açıp *Entry* şeklinde filtrelediğinizde bu tablolara ulaşırsınız. Giriş tablolarına sadece ilgili “Günlük” tablolarında gerekli alanları doldurup (*Journal* şeklinde filtreleyebilirsiniz) kayıtları nakledecek ilgili “Codeunit” nesnesini çağırarak aktarım yapılır. Aşağıdaki resimde 80 numaralı codeunit nesnesinin bir bölümü görülüyor. Kod parçalarının düzenlenmesi bu C/AL Editör üzerinden yapılmaktadır.

C/AL Editor

Developer lisansına sahipseniz “Entry” tablolarındaki kayıtlara erişebilirsiniz ancak bunları elle değiştirmeyin veya otomatik değiştirecek bir program yazmayın. Hem sistemin işleyişine aykırı, hem de müşteri lisansında büyük ihtimalle çalışmayacaktır.

Navision programının çalışma mantığı Deftere Nakil Günlükleri ile Giriş tablolarına kayıt yaratılması şeklindedir. Bu yapının merkezinde sipariş, fatura gibi belgeler bulunur. Bu belgeler de deftere nakledilirken Günlük oluştururlar. Bir fatura deftere nakledilirken özünde bir tane Genel Günlük ve faturadaki her kalem için ayrı Madde Günlüğü girişi oluşturulur. Tabi Navision programındaki boyut  mantığı vs. nedeniyle bu işlem daha karmaşıklaşabilir ancak model genel olarak bu şekildedir.  

Belgeler, günlükler aracılığıyla nakledildikten sonra geçmiş kayıtlara ulaşılabilmesi amacıyla “Nakledilmiş Belgeler” olarak farklı bir yerde saklanırlar. Örnek olarak, Deftere daha nakledilmemiş bir Satış Faturası “Sales Header/Line” tablolarında iken, nakledildikten sonra “Sales Invoice Header/Line” tablolarına taşınırlar.

Deftere nakledilmemiş belgeler değişiklik yapmaya açıktır. Ancak deftere nakledilmiş bir belge üzerinde değişiklik veya silme işlemi yapmak sistemin mantığına uygun değildir. Belgenin ters kaydının oluşturulup tekrar düzgün kaydın deftere nakledilmesi gerekir.

Temel yapıyı aktarmaya çalıştım. Finansal işlemler ile başlayarak konu başlıkları üzerinden daha detaylı analizler ile yazılara devam edeceğim. Görüşmek üzere.