Posts Tagged ‘ Container

X++ :5- Maps Nedir?

Bu yazıda Maps’lerden bahsedeceğim. Map ve Maps karıştırılır genelde ama tamamen farklı nesnelerdir. Maps temelde birbiriyle çok ortak yönü olan tablolar için ortak kod yazma imkânı sunan bir yapıdır. Çok uzun zamandır X++ ile geliştirme yapıyorum ama şimdiye kadar sıfırdan Maps oluşturmadım ama olan ve kullanılan Maps’lere yeni alanlar eklemem gerekti.

Resim-1

En Çok kullanılan Maps’ler genelde CustVend’lerdir. Mappings ile hangi tabloların bağlanacağı seçilir. Filed kısmında ortak alanlar belirlenir. Bu işlemler tamamlandıktan sonra artık buraya kod yazılabilir. Yazılan kod hem Cust hem de Vend için ortak kullanılır.

Resim-2

Data Model->Map ile yeni Map oluşturabilirsiniz.

Resim-3

Bu yazıda Maps’lerden bahsettim. Maps’leri hep nesne tabanlı yazılım geliştirmede işi biraz abartmak olarak gördüm. İşi basitleştirme ve kod çoğaltmamak için yapılan bir yapı ama birçok durumda işi daha zorlaştırıyor.

Selamlar.

www.fatihdemirci.net

TAGs: X++,Container, Azure, Azure DevOps, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365

X++ :4- Map Nedir?

Map bir veri yapısı aslında Set’lere benzer bir yapısı var. Bir anahtar ve bir değerden oluşuyor. Uygulamada çok fazla kullanılıyor. Bir örnekle açıklığa kavuşturalım.

Bir Job oluşturuyorum.

Resim-1

Yeni bir değişken oluşturup key ve value tiplerini belirlemek lazım.

class FDMap

{

public static void main(Args _args)

{

Map             map = new Map(Types::Integer, Types::String);

MapEnumerator   mapEnumerator;

map.insert(1, “M001″);

map.insert(2, “M002″);

map.insert(3, “M003″);

map.insert(4, “M004″);

mapEnumerator = map.getEnumerator();

while (mapEnumerator.moveNext())

{

info(strFmt(“Key: %1, Value: %2″,mapEnumerator.currentKey(), mapEnumerator.currentValue()));

}

info(strFmt(“Key: 3, Value: %1″,map.exists(3) ? map.lookup(3) : “not found” ));

map.insert(3, “M023″);

info(strFmt(“Key: 3, Value: %1″,map.exists(3) ? map.lookup(3) : “not found” ));

}

}

Job çıktısı böyle olacaktır.

Resim-2

Bu yazıda Map sınıfının kullanımıyla ilgili bir örnek yaptım. Özellikle küçük ve boyutu belli olmayan veriler için kullanılır. Çok büyük verileri tutmak için uygun değildir.

Selamlar.

www.fatihdemirci.net

TAGs: X++,Container, Azure, Azure DevOps, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365

X++ :3- Container Nedir?

X ++ Temel veri tiplerinden biri olan Container farklı tipteki verileri içinde barındırabilir. Tablolara açılan alanlar Container tipinde olabilir. Birçok fonksiyon ile veri yüklenip alınabilir. Özellikle farklı tipteki verileri bir yere göndermek ve çekmek için kullanılır.

Yeni bir Job oluşturup bir örnek kod yazalım.

Resim-1

class FDContainer

{

public static void main(Args _args)

{

int             number1;

str             name;

AccountNum      AccountNum;

CustTable       custTable, custTable2;

container       c;

Gender          gender;

utcDateTime     dateTime;

;

name        = “Fatih Demirci”; // Değişken ataması

custTable   = custTable::find(“M000017″);// Değişken ataması

c = conins(c, 1, name); // Contianer Insert işlemi

c = conins(c, 2, custTable);

c = conins(c, 3, 12321);

[name,  custtable, number1] = c; // Container’daki değerleri değişkenlere alma.

c = ["fatih", 12, custtable, Gender::Male]; // Tek seferde çoklu değişken atama

dateTime = dateTimeUtil::newDateTime(systemdateget(), timeNow());

name        = conpeek(c, 1); // tek bir değişken seçme

custTable   = conpeek(c, 3);

c           = conins(c, 4, dateTime);

info(“OK”);

}

}

Bu yazıda Container’ı size tanıtmaya çalıştım. Çok kullanışlı bir veri tipi çok sık kullanıldığını göreceksiniz. Bende bunu basit işler için kullanıyorum. Çok büyük veriler için uygun bir yapı değil. Dizi gibi düşünün.

Selamlar.

www.fatihdemirci.net

TAGs: X++,Container, Azure, Azure DevOps, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365