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,

 
Comment are closed.