How long have you been using Microsoft Dynamics Ax?

Toplam Sayfa Görüntüleme Sayısı

Popular Posts

Translate

Bu Blogda Ara

Axapta etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Axapta etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

17 Haziran 2013 Pazartesi

AX 2012 How to import a model file

Hi All,

In AX 2012 you can add your own model files to the development layer. By doing this you can seperate your work like projects and then install them to another workspace.

We will see how we can install a model file to the workspace.

It is important that object names are unique in model files. If you have error from conflict you can use -conflict push option this will delete the obect which is already on the application.

Go to start menu -> All programs -> Administrative tools -> Microsoft Dynamics AX Management Shell right click and select Run as Administrator.

Navigate to the folder that holds model file.

Run this commond : Install-AXModel -File Filename.axmodel

Hope it helps.

3 Nisan 2013 Çarşamba

TTK Uyumluluk Paketi Ax2009

Ax2009 için TTK uyumluluk paketinin sonuncusu da yayınlandı. Microosft'un sayfalarından indirilebilir ve kullanılabilir.

2 Nisan 2013 Salı

Boyutlar AX2012/LedgerDimensions AX2012

Axapta 2012 boyutları

Artık Ax2012'de sınırsız olarak boyut tanımlaması yaparak hesaba atanmasını yapabilirsiniz. Bu yenilik oldukça işe yarıyor. Fakat analizlerde dikkat edilmesi gereken bir husus var. Bir hesap ya da hesap grubu için    yalnızca 10 adet boyut seçimine izin veriliyor.


Axapta 2012 Ledger Dimensions

Now in Ax2012 you can create ledger dimensions limitless. It really works. Bu you have to pay attension during analyses that you can select just 10 dimensions per an account or an account group.


31 Ağustos 2012 Cuma

Edit method ile çoklu kayıt seçimi


Merhaba,

Grid üzerinde bulunan kayıtları işlem yapmak için seçmenin çeşitli yolları mevcut. Yollardan biri grid'e bir checkbox ekleyip seçilen kayıtları bir map ile yönetmek.

Form üzerinde değeri değiştirilebilen display alanların arkasında çalışan method tipi edit methoddur edit methodlar 3 adet parametre alırlar bunlardan ilki alanın değerinin değiştirilmek için seçilip seçilmediği set değişkeni, ikincisi gönderilen kayıt bilgisi ve son değer ise kayıt bilgisinin seçilmek üzere mi yoksa seçiminin kaldırılması için mi tıklandığı bilgisi mark değişkeni.

edit NoYes MarkRecords(boolean set,tabloAdi tabloDegiskeni,NoYes _mark)
{

    if (set)
    {
        MarkMap.insert( tabloDegiskeni .RecId , tabloDegiskeni.stringAlan);
        MarkMap.valueSet();
    }
    else
    {
        if (MarkMap.exists(PackingSlip.RecId))
        {
           _mark = MarkMap.lookup(PackingSlip.RecId);
        }
    }

    return _mark;
}

classDecleration da MarkMap değişkenini tanımlıyoruz.

init() methodunda MarkMap değişkeninin Map tipini belirliyoruz

MarkMap = new Map(Types::Int64,Types::string) gibi

sonrasında istenilen yerde mapEnumerator ile MarkMap değişkenindeki değerleri listeliyoruz.

Bol AX lı günler,
Alper.



28 Ağustos 2012 Salı

DATA MIGRATION TOOL

In AX2012 data migration tool is awesome. As if in Ax2009 you can set your own fiels etc. but some specific tables are set by Microsoft. So it is easier to select the tables for the user that know AX less.


1 Haziran 2012 Cuma

Working with Enum values / Enum değerleri arasında gezinmek



Hi,

To work with enum values you need to use DictEnum class. After you get the count you can do whatever you want.

Have a nice AX day,
Alper.

   
    EnumId   enumId   = enumNum(SalesStatus);
    DictEnum dictEnum = new DictEnum(enumId);
    int      count  = dictEnum.values();
    int      counter 

    for(counter = 0; counter < count; counter ++)
    {
        // You can use the number of method exposed by DictEnum class
        // dictEnum.name(counter)
        // dictEnum.index2Value(counter)
        // dictEnum.index2Symbol(counter)             
        // dictEnum.index2Label(counter)
    }



28 Mayıs 2012 Pazartesi

Working with RecordInsertList / RecordInsertList ile çalışmak


Hi,

When we need to insert multiple records to the database in one trip, for performance or something else we sholud use RecordInsertList class.

In example below we declare a RecordInsertList variable with table number and use add() method to add new record to the array list by using tableVariable.

After we finisheded to add new records to the RecordInsertList we call insertDatabase() method to insert record list to the database with one trip.

Have a nice coding,
Alper.

-------------------------------------

RecordInsertList ril = new RecordInsertList(tablenum(TableName));
TableName tableVariable;
;
tableVariable.field1 = "abc";
tableVariable.field2 = 123;
ril.add(tableVariable);
ril.insertDatabase();

-------------------------------------

Merhabalar,

RecordInsertList sınıfını çoklu kayıt girişlerinde her seferinde veri tabanına gidip gelinmesinin önüne geçmek ve performans kazanmak için bir liste oluşturmak için kullanıyoruz.

Bu liste sayesinde kayıtlarımızı add methodu ile listeye ekliyor ve işlemler bittikten sonra insertDatabase ile tek seferde sunucuya gönderebiliyoruz.

Bol AX' lı günler
Alper.




10 Mayıs 2012 Perşembe

İlk Axapta Deneyimi / First Ax Setup Experience

İlk Axapta kurarken neler hissettiniz? Axapta ile çalışırken başınızdan geçen maceralar nelerdir?

What did you think of the first experience of Axapta setup? Tell us about the adventures during Ax implementations.


Ax 2012 ile ilgili ilk görüş

Bugün güzel bir gün. Çünkü ilk defa Ax 2012'yi detaylı inceleme imkanı buldum.

İncelediğimizde ilk dikkatimi çeken Ax2009'da yer alan yerleşim yapılarının artık tüm ekranlarda uygulanması oldu. Yani artık butonlar formların sağında değil üst tarafında yer alıyor. Aynı zamanda artık formlar üzerinde tablar yer almıyor. Herbiri aynı sayfa üzerinde görüntüleniyor. Yani Microsoft benim takip ettiğim kadarı ile Ax 3.0'dan bu yana gelen geleneğini bozarak tamamen farklı bir görselliğe bürünmüş aslında ki bunun sinyallerini Ax2009'da da vermişti.

Ben eski bir kullanıcı olarak görselliği karmaşık olarak yorumlasam da aslında kendimi yeniliklere biraz kapalı olarak gören biriyim. Uzun vade de bu görüntüye alışacağımı ve daha da rahat kullanacağımı tahmin ediyorum ki ilk kullanacaklar sisteme daha hızlı adapte olacaklardır.

Açılan ekranlar Ax2009'un aksine ortak formlar Ax 4.0 ve 3.0 'da olduğu gibi programın içerisinde açılıyor. Sorgulama,raporlamalar, kurulum v.s. ise yine menüde ayrı pencere olarak açılıyor.

Formlar üzerinde buton ile yapılabilecek işaretleme fonksiyonalitesi gelmiş. Artık sadece işaretlenen kayıtlar da Excel'e gönderilebilmektedir.

Ortak ekranlar üzerinde kayıt girme ve edit etme yerine artık ortak tablo üzerinden çift tıklayarak ya da yeni oluştur diyerek kayıtların üzerine gidilebiliyor.

Sistemin arka tablolarına bakıldığında ise tablo isimlerinin çoğunun değiştiğini ve hatta parçalandığını görebiliriz. Örneğin artık LedgerTable ya da LedgerTrans tabloları yok.

Form üzerinde sağ klik yaparak tablo bilgileri incelenmek istendiğinde yeni bir Ax açılıyor. Kodun içerisinde gezinirken labelların üzerine bakıldığında arama metnini sorgulamadan açıklama kursörüm üzerinde görüntülenebiliyor.

Para birimleri ile kurların belirlendiği ekranlar ayırılmış.
TL Iso kodları arasında yer almıyor.

Henüz lokalizasyon oluşmuş değil.

Tahsisat koşulları hesap planı üzerinden kaldırılarak genel muhasebe parametreleri altına taşınmış durumda.

Bütçe yapısı ile tamamen değişmiş ve geliştirilmiş. Bu konuyu başka bir blogda inceleyeceğiz önümüzdeki günlerde.

Hareket nakil açıklamaları diye bir kurulum adımı eklenmiş. Satınalma, bütçe ve banka gibi sekmelerde tanımlanacak hesaplar yer alıyor. İşlevselliğini henüz bilmiyorum ama kullarak öğreneceğiz sanırım.

Hesap planında hesap oluştururken kayıt başlangıç tipini vermek mümkündür.

Muhasebe'de periyodik adımları altında pek bir değişiklik ilk bakışta görünmüyor.

Sekme (Tab) yapısı değiştirilmiş. Genellikle ekranlar üzerinde sekmeler olmadığı gibi kayıt bilgilerinin girişi için webpage tarzında ekran içerisinden ok ile kayıtla raçılarak giriş yapılıyor.

Yetkilendirme tamamen roller üzerinden çalışıyor.

Ana tabloya git adı detayları göster olarak değişmiş.

Sağ klik ile sık kullanılanlarıma (Favorites) ekranların taşınması mümkün.

Kayıtlar üzerinde değişiklik yapıldıktan sonra ortak formların güncellenmesi gerekiyor. İşlemin hemen ardından güncellenmiyor.

İşin güzel yanı artık sipariş üzerinden toplamları görebiliyorsunuz. Ve oluşacak fiş için hangi hesapların çalışacağı görüntüleniyor..

Aot üzerinde tablolarda yaratılmış tüm alanlar A'dan Z'ye sıra ile konulmuş.
Hesap Planı ise hesap adına göre sıralanmış.

Hesap planı ile ilgili kurulum zor gibi görünse de aslında global olarak yapıldığından ve şu andaki kurulum büyük ve konsolide şirketler için bir çözüm de sunduğundan bu tanımlamaların bir seferlik yapılması gerekiyor.

Raporlar Reporting Services üzerinden çalışıyor.

Mizan ise (Trial Balance) Excel'e benzer bir formatta görünüyor. Güzel yanı sadece hesap üzerinden değil seçilen muhasebe boyut seti üzerinden raporlama yapmak mümkün. Yani araçların, personelin, telefonun mizanı çekilebilir.

Hesap planı takma adı diye bir fonksiyonalite gelmiş.
Bu fonksiyonalite doğru kullanılırsa veri girişlerini oldukça hızlandıracaktır.
Bu fonksiyonalite ile hesaplar ilgili boyutlara bağlanabilmektedir. Ve bu bağlantı kullanıcı ve kullanıcı grubu bazında yapılabilmektedir. Örneğin bir kullanıcı sadece araç faturası giriyor ise ve ilgili gider hesapları ilgili araçlara bağlanırsa kullanıcı tek bir hareket ile hem hesabı hem boyutları seçmiş olur. Tek tek boyut girmesine gerek kalmaz. Bununla birlikte yanlış kurulması durumunda seçim ekranında (Lookup) kirliliğe neden olabilir.

Boyutlara gelince; İstenildiği kadar boyut açılabilmekte ve boyutlar birbirine bağlanabilmektedir. Boyut bağlantıları Ax2009'da vardı fakat istenildiği kadar efektif kullanılamıyordu. Bu versiyonda da detaylı incelemek ve bir projede uygulayıp bakmak gerekebilir.

Veri aktarım yapısı ise tamamen değişmiş durumda. Örneğin artık hesap planını sisteme aktarmak için veri aktarım sihirbazı kullanılmayacak. Bir kere tüm tanımlamalar yapıldıktan sonra Excel'i açmak yeterli olacak.
Excel'i açtıktan sonra Dynamics Ax tabında Veri al ve güncelleme yapılması yeterli.



Devam edecek...



26 Nisan 2012 Perşembe

MUHASEBE RAPORLARI

Axapta'da yer alan birçok resmi ve operasyonel rapor bulunmaktadır. Bunlar arasında en çok kullanılanların listesi aşağıda yer almaktadır.

  • Mizan
  • Muhasebe Fişi
  • Müşteri/Satıcı/Genel Muhasebe Hesap Ekstreleri
  • Mali Tablolar (Gelir Tablosu, Bilanço, Gider Raporları, Konsolide, Bütçe karşılaştırmalı...)
  • Muavin Defter
  • BA/BS Raporları
  • İndirilecek KDV Listesi
  • Hesaplanan KDV Listesi
  • Yevmiye Defteri
  • Defteri Kebir
  • Deftere Nakledilen Satış Vergisi (Sorgu)
  • Fiş Hareketleri (Sorgu)
  • Hesap Denetim Klavuzu (Sorgu)(Muhasebeye kim, ne zaman, hangi kaydı oluşturdu?)
  • Boyut Ekstresi
  • Satış Vergisi Ayrıntılar
  • Sabit Kıymet Amortisman Defteri
  • Çek/Senet Bordro Raporları
  • Portföy Dökümü
  • Tarih itibari ile Portföy Dökümü
  • Çek/Senet Akıbet Raporu
  • Madde Grubu Bazında Stok Değeri
  • Eldeki Stok
  • Stok Hareketleri
  • Müşteri/Satıcı Açık Hareketler
  • Müşteri/Satıcı Fatura (Sorgu)
  • Müşteri/Satıcı Yaşlandırma Raporu

11 Nisan 2012 Çarşamba

Klasör içerisindeki dosyalarda gezinmek / Scan files in specific folder



Merhaba,

Belirli bir klasör içerisindeki dosyaların arasında gezinmek için kullanabileceğiniz kod örneğini aşağıda paylaşıyorum.

Örnekte c: altında yer alan uzantısı txt olan dosyaların isimlerini info ile ekrana basıyoruz.

Bol AX lı günler,
Alper.

    str                 filename;
    int                 handle;

    ;
    [handle, filename]  =   WINAPI::findFirstFile(@"c:\*.txt");

    while (fileName !=  "")
    {

        info(filename);
         filename    =   WinAPI::findNextFile(handle);
    }



Hi,

When you want to scan files for specific file type in a folder you can use the sample code above.

We use WinApi class for both finding first file and find next file

With this example you can list txt extended filed on c:\ folder.

Have a nice AX days,
Alper.

16 Şubat 2012 Perşembe

The test form is only available for requests from the local machine

Merhabalar,

Web servisleri ile uğraşırken özellikle test aşamasında "The test form is only available for requests from the local machine" uyarısını geçmek istediğimizde yapmamız gereken işlem web.config dosyasını değişiklik için açıp <system.web> tagı altına aşağıdaki gibi ilgili tagları eklemek.

<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name=”HttpGet”/>
            <add name=”HttpPost”/>
        </protocols>
    </webServices>
    </system.web>
</configuration>

Hem AX entegrasyonları ile uğraşırken hemde AX dışındaki geliştirmelerinizde kullanabileceğiniz bir bilgi.

Bol AX lı günler,
Alper.


15 Şubat 2012 Çarşamba

TreeControl kullanımı


Sınıflandırma yapılması istendiğinde TreeControl kullanılabilir.














Treecontrol kullanırken dikkat edilmesi gereken kontrolü eklerken hangi düğüm (node) ün altında yer alacağı bilgisine hakim olmaktır.


Bu kontrolü sağlamak için TreeItemIdx tipli değişken tanımlıyoruz ve bu değişkeni ağaca yeni kırılım eklerken hangi kontrolün altında yer alacağını belirtmek için kullanıyoruz.


Aşağıdaki kodda madde kartı içerisinde dolaşıp madde grubu bazında maddeleri listeleyen bir ağaç yapısı oluşturuyoruz.


Kırılımların daha iyi anlaşılabilmesi için kırılımlara birer resim atıyoruz.


Resimler için ImageListAllp_Help sınıfındaki açık klasörü kök öğe için, kapalı kitabı madde grubu için, açık kitabıda bu maddeler için kullanıyoruz.





    #resAppl


    InventTable         inventTable;
    TreeItemIdx         item,itemGroup,root;
    ItemGroupId         oldItemGroup;
    ImageRes            imageResItem,imageResGroup,imageResRoot;
    ImageListAppl_Help  imageList = new ImageListAppl_Help();
    ;


    imageResRoot    = imageList.image(#ImageFolderOpen);


    imageResGroup   = imageList.image(#ImageHelpTOCBookClosed);
   
    imageResItem    = imageList.image(#ImageHelpTOCBookOpen);


    formTreeControl.setImagelist(imageList.imageList());


    root = SysFormTreeControl::addTreeItem(formTreeControl,"Maddeler",FormTreeAdd::Root,"Maddeler",imageResRoot);


    while select inventTable order by ItemGroupId
    {
        if (!oldItemGroup)
        {
            oldItemGroup    = inventTable.ItemGroupId;
           
            itemGroup       = SysFormTreeControl::addTreeItem(formTreeControl,inventTable.ItemGroupId,root,inventTable.ItemGroupId,imageResGroup);
        }


        if (oldItemGroup != inventTable.ItemGroupId)
        {
            SysFormTreeControl::expandTree(formTreeControl,itemGroup);


            oldItemGroup    = inventTable.ItemGroupId;


            itemGroup       = SysFormTreeControl::addTreeItem(formTreeControl,inventTable.ItemGroupId,root,inventTable.ItemGroupId,imageResGroup);


        }


        item = SysFormTreeControl::addTreeItem(formTreeControl,inventTable.ItemId,itemGroup,inventTable.ItemId,imageResItem);


    }


    SysFormTreeControl::expandTree(formTreeControl,formTreeControl.getRoot(),1);


Hepsi bu bol AX lı günler.
Alper.