Archive for Ekim 21st, 2022

SysDa Sınıflarını Kullanarak Join Nasıl Yazılır?

Bu yazıda Dynamics 365 Finance and Operations içinde sorgu yazmanın yeni bir yöntemi olan SysDa API ‘ından bahsetmeye devam edeceğim. Bir önceki yazımda Order By örneği paylaşmıştım. Bu örnekte Join yazımını inceleyeceğim.

Gelelim örneğimize,

internal final class DmrFDJobSysDaSelect6

{

public static void main(Args _args)

{

InventTable inventTable;

InventTrans inventTrans;

while select ItemId , Qty from inventTrans

where inventTrans.Qty > 30000000

join NameAlias from inventTable

where inventTrans.ItemId == inventTable.ItemId

{

info(strFmt("%1 %2 %3" , inventTrans.ItemId , inventTable.NameAlias , inventTrans.Qty));

}

var sysDaQInventTrans = new SysDaQueryObject(InventTrans);

var sysDaQInventTable = new SysDaQueryObject(InventTable);

sysDaQInventTrans.joinClause(SysDaJoinKind::InnerJoin , sysDaQInventTable);

var flInventTrans = sysDaQInventTrans.projection()

.add(fieldStr(InventTrans, ItemId ))

.add(fieldStr(InventTrans, qty));

var flInventTable = sysDaQInventTable.projection()

.add(fieldStr(inventTable, NameAlias ));

sysDaQInventTable.WhereClause(new SysDaEqualsExpression(

new SysDaFieldExpression(inventTrans, fieldStr(InventTrans, itemId)),

new SysDaFieldExpression(inventTable, fieldStr(inventTable, itemId))));

sysDaQInventTrans.WhereClause(new SysDaGreaterThanExpression(

new SysDaFieldExpression(inventTrans, fieldStr(InventTrans, qty)),

new SysDaValueExpression(30000000)));

var sysDaSO = new SysDaSearchObject(sysDaQInventTrans);

var sysDaSS = new SysDaSearchStatement();

while (sysDaSS.findNext(sysDaSO))

{

info(strFmt("%1 %2 %3" , inventTrans.ItemId , inventTable.NameAlias , inventTrans.Qty));

}

}

}

Selamlar.

www.fatihdemirci.net

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

SysDa Sınıflarını Kullanarak Order By ve Group By Nasıl Yazılır?

Bu yazıda Dynamics 365 Finance and Operations içinde sorgu yazmanın yeni bir yöntemi olan SysDa API ‘ından bahsetmeye devam edeceğim. Bir önceki yazımda select örneği paylaşmıştım. Bu örnekte Order By ve Group By yazımını inceleyeceğim.

Gelelim örneğimize, Aşağıdaki gibi bir Order By ifadesimi SysDa ile nasıl yapacağımız bakalım.

internal final class DmrFDJobSysDaSelect3

{

public static void main(Args _args)

{

InventTrans inventTrans;

while select ItemId , Qty from inventTrans

order by ItemId desc

where inventTrans.Qty > 30000000

{

info(strFmt("%1 %2" , inventTrans.ItemId , inventTrans.Qty));

}

var sysDaQ = new SysDaQueryObject(InventTrans);

var s = sysDaQ.projection()

.add(fieldStr(InventTrans, ItemId ))

.add(fieldStr(InventTrans, qty));

sysDaQ.orderByClause().addDescending(fieldStr(InventTrans, itemId));

sysDaQ.WhereClause(new SysDaGreaterThanExpression(

new SysDaFieldExpression(inventTrans, fieldStr(InventTrans, qty)),

new SysDaValueExpression(30000000)));

var sysDaSO = new SysDaSearchObject(sysDaQ);

var sysDaSS = new SysDaSearchStatement();

while (sysDaSS.findNext(sysDaSO))

{

info(strFmt("%1 %2" , inventTrans.ItemId , inventTrans.Qty));

}

}

}

Şimdi Group by yazımına bakalım:

internal final class DmrFDJobSysDaSelect3

{

public static void main(Args _args)

{

InventTrans inventTrans;

while select ItemId , sum(qty) from inventTrans

group by ItemId

where inventTrans.Qty > 20000000

{

info(strFmt("%1 %2" , inventTrans.ItemId , inventTrans.Qty));

}

var sysDaQ = new SysDaQueryObject(InventTrans);

var s = sysDaQ.projection()

.add(fieldStr(InventTrans, ItemId ))

.addSum(fieldStr(InventTrans, qty));

sysDaQ.groupByClause().add(fieldStr(InventTrans, ItemId));

sysDaQ.WhereClause(new SysDaGreaterThanExpression(

new SysDaFieldExpression(inventTrans, fieldStr(InventTrans, qty)),

new SysDaValueExpression(20000000)));

var sysDaSO = new SysDaSearchObject(sysDaQ);

var sysDaSS = new SysDaSearchStatement();

while (sysDaSS.findNext(sysDaSO))

{

info(strFmt("%1 %2" , inventTrans.ItemId , inventTrans.Qty));

}

}

}

Selamlar.

www.fatihdemirci.net

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

SysDa Sınıflarını Kullanarak Select Nasıl Yazılır?

Bu yazıda Dynamics 365 Finance and Operations içinde sorgu yazmanın yeni bir yöntemi olan SysDa API ‘ından bahsetmeye devam edeceğim. Bir önceki yazımda While select örneği paylaşmıştım. Bu örnekte direk select yazımını inceleyeceğim.

Gelelim örneğimize, Aşağıdaki gibi bir select ifadesimi SysDa ile nasıl yapacağımız bakalım.

select ItemId , Qty from inventTrans

where inventTrans.Qty > 30000000;

info(strFmt("%1 %2" , inventTrans.ItemId , inventTrans.Qty));

Şimdi SysDa ile yazalım:

var sysDaQ = new SysDaQueryObject(InventTrans);

var s = sysDaQ.projection()

.add(fieldStr(InventTrans, ItemId ))

.add(fieldStr(InventTrans, qty));

sysDaQ.WhereClause(new SysDaGreaterThanExpression(

new SysDaFieldExpression(inventTrans, fieldStr(InventTrans, qty)),

new SysDaValueExpression(30000000)));

var sysDaSO = new SysDaFindObject(sysDaQ);

new SysDaFindStatement().execute(sysDaSO);

info(strFmt("%1 %2" , inventTrans.ItemId , inventTrans.Qty));

Bu yazıda SysDa API’ına giriş yaptım. Daha ileri seviye örneklerle anlatmaya devam edeceğim.

Selamlar.

www.fatihdemirci.net

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