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,

 
Comment are closed.