RE: convert X++ Select Statement into aot query
The Following job Returns data as i wanted
static void ItemPurchasePrice(Args _args)
{
PurchMaxItemPurchasePriceTMP PurchMaxItemPurchasePriceTMP;
VendInvoiceTrans VendInvoiceTrans;
PurchItemPurchasePriceTMP PurchItemPurchasePriceTMP;
insert_recordset PurchMaxItemPurchasePriceTMP(ItemId,MaxInvoiceDate)
select ItemId, maxof(InvoiceDate)
from VendInvoiceTrans
group by ItemId;
while select ItemId,Name,Qty,LineAmount,PurchPrice,PurchUnit,InvoiceDate
from VendInvoiceTrans join PurchMaxItemPurchasePriceTMP
where VendInvoiceTrans.ItemId == PurchMaxItemPurchasePriceTMP.ItemId &&
VendInvoiceTrans.InvoiceDate == PurchMaxItemPurchasePriceTMP.MaxInvoiceDate
{
PurchItemPurchasePriceTMP.clear();
PurchItemPurchasePriceTMP.ItemId = VendInvoiceTrans.ItemId;
PurchItemPurchasePriceTMP.InvoiceDate = VendInvoiceTrans.InvoiceDate;
info(strFmt("ItemId %1, MaxInvoiceDate %2",PurchItemPurchasePriceTMP.ItemId,PurchItemPurchasePriceTMP.InvoiceDate ));
}
}
But wrote another job with the AOT query but is doesnt return any data i dont know why???
static void ItemPurchasePrice3(Args _args)
{
PurchMaxItemPurchasePriceTMP PurchMaxItemPurchasePriceTMP;
VendInvoiceTrans VendInvoiceTrans;
Query query;
QueryBuildDataSource qbdsTrans,qbdsMax;
QueryBuildRange qbr;
QueryRun queryRun;
Counter totalRecords;
insert_recordset PurchMaxItemPurchasePriceTMP(ItemId,MaxInvoiceDate)
select ItemId, maxof(InvoiceDate)
from VendInvoiceTrans
group by ItemId;
query = new Query(queryStr(purchItemPurchasePriceQuery));
qbdsTrans = query.dataSourceTable(tableNum(VendInvoiceTrans));
queryRun = new QueryRun(query);
if (queryRun.prompt())
{
while (queryRun.next())
{
VendInvoiceTrans = queryRun.get(tableNum(VendInvoiceTrans));
PurchMaxItemPurchasePriceTMP = queryRun.get(tableNum(PurchMaxItemPurchasePriceTMP));
}
}
info(strFmt("ID %1", VendInvoiceTrans.ItemId));
}