
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}
