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,