Merhaba,
Bu makalemde Dynamics Ax içindeki bir tabloya, csv türündeki bir dosyadan verileri kodla aktarmak için gerekli adımları anlatacağım.
1- Aktarım yapmak istediğimiz tablo InventDim olsun.
2- Boş bir excelde 1.sütuna Tesis; 2.sütuna Boyut değerlerini giriniz.
3- Exceli farklı kaydet seçeneği ile CSV formatında kaydediniz.
4- Aşağıdaki kod öbeğini AOT–>Jobs kısmında yeni bir job oluşturarak yapıştırın.
4- Kaydettiğiniz dosya yolunu kopyalayıp, aşağıdaki kodu uygun şekilde güncelleyip, kodu çalıştırınız.
5- Kayıtlar istediğiniz tabloya aktarılacaktır. Hepsi bu kadar!
// Changed on 21 Şub 2011 at 17:01:47 by mesut static void insertFromCsvToInventDimTable(Args _args) { InventDim dim; //Exceldeki alanlar InventSiteId InventSiteId; InventSizeId InventSizeId; Container cntbuf; int i; AsciiIo fileHandle = new AsciiIo("C:\\Mesut\\mm.csv","R"); ; fileHandle.inRecordDelimiter('\r\n');//Kayıt ayıracı fileHandle.inFieldDelimiter(';'); // Alan ayıracı ttsbegin; while (fileHandle.status() == IO_Status::Ok) { cntbuf = fileHandle.read(); if (conlen(cntbuf) <= 9) // Sutun sayısı kontorolü { InventSiteId = ConPeek(cntbuf, 1); // birinci sütundaki değer InventSizeId = ConPeek(cntbuf, 2); // ikinci sütundaki değer dim.clear(); dim.InventSizeId = InventSizeId; dim.InventSiteId = InventSiteId; dim.inventDimId = InventDim::findOrCreate(dim).inventDimId; dim.insert(); } } info(strfmt("%1 kayıt eklendi",i)); ttscommit; }
NOT: Yazıda belirtilen kodun, değiştirilmeden veya değiştirilerek, development/test/canlı ortamlarında kullanılması sonucu oluşabilecek olumlu/olumsuz durumlarda tüm sorumluluk kodu kullanan kişiye aittir.
Mesut BOZTAŞ
İstanbul 2011