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,