static void countRecords(Args _args) { Query q = new Query(); QueryBuildDataSource qbdsInventTable, qbdsInventDimCombination; QueryRun qr; Integer counter; Integer loops; Common common; qbdsInventTable = q.addDataSource(tableNum(InventTable)); qbdsInventTable.addSelectionField(fieldNum(InventTable, RecId), SelectionField::Count); qr = new QueryRun(q); // Simple way to get record count from Query/QueryRun class counter = SysQuery::countTotal(qr); //loops = SysQuery::countLoops(qr); // Via while counter = 0; loops = 0; while (qr.next()) { common = qr.get(q.dataSourceNo(1).table()); counter += common.RecId; } /* Second variant might be a lot more efficient and accurate if you have several datasources joined as standard countTotal also tries to count loops Adding joined datasource for you to checkout the difference */ qbdsInventDimCombination = qbdsInventTable.addDataSource(tableNum(InventDimCombination)); qbdsInventDimCombination.relations(true); qr = new QueryRun(q); // Way to get record count using SysQuery counter = SysQuery::countTotal(qr); //loops = SysQuery::countLoops(qr); // Via while loops = 0; counter = 0; while (qr.next()) { common = qr.get(q.dataSourceNo(1).table()); counter += common.RecId; } }
DaxOnline.org is free platform that allows you to quickly store and reuse snippets, notes, articles related to Dynamics AX.
Authors are allowed to set their own AdSense units and "buy me a coffee" link.
Join us.