AX / D365FO – How to show Query Builder Select syntax in an Infolog

To show the SQL command of a Query builder in an infolog just use the ToString() method like shown in code below

      
        Query                   q = new Query();
        QueryBuildDataSource    qbds,qbds1,qbds2;
        QueryBuildRange         qbr;
        QueryRun                qr;

        
            SalesLine salesLine = SalesLine::findInventTransId('xxxxxxx');

            //InventTrans
            qbds = q.addDataSource(tableNum(InventTrans));
            qbr = qbds.addRange(fieldNum(InventTrans, StatusIssue));
            qbr.value(queryValue(StatusIssue::ReservPhysical));

            //InventTransOrigin
            qbds1 = qbds.addDataSource(tableNum(InventTransOrigin));
            qbds1.relations(true);
            qbds1.joinMode(JoinMode::InnerJoin);
            qbds1.fetchmode(QueryFetchMode::One2One);
            qbds1.addRange(fieldNum(InventTransOrigin, InventTransId)).value(salesLine.InventTransId);

            //InventDim
            qbds2 = qbds.addDataSource(tableNum(InventDim));
            qbds2.relations(false);
            qbds2.joinMode(JoinMode::InnerJoin);
            qbds2.fetchmode(QueryFetchMode::One2One);
            qbds2.addLink(fieldnum(InventTrans, InventDimId),fieldnum(InventDim, InventDimId));

            info(q.toString());

The info method will show this result in the form

{Query object 37782b80:
SELECT * FROM InventTrans(InventTrans_1)
WHERE ((StatusIssue = 4))
JOIN * FROM InventTransOrigin(InventTransOrigin_1)
ON InventTrans.InventTransOrigin = InventTransOrigin.RecId
AND ((InventTransId = N’xxxxxxx’))
JOIN * FROM InventDim(InventDim_1) O
N InventTrans.inventDimId = InventDim.inventDimId}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s