Testing and Debugging an SSRS Report Data Provider
Thursday, 22 October 2015
Most of the more complex AX2012 reports are built using a report data provider, but these can be pretty hard to debug, as they run in a separate session via the report server. To work out why your report doesn’t contain any data, or doesn’t have the data you expect, its nice to be able to run through it in the debugger.
A simple job can help you out here. You just need the contract and data provider, and you can fill in the contract objects like you might do in a controller.
static void FdyGoodsInwardAdviceReportTestJob(Args _args)
{
FdyGoodsInwardAdviceContract contract = new FdyGoodsInwardAdviceContract();
FdyGoodsInwardAdviceDP dp = new FdyGoodsInwardAdviceDP();
FdyGoodsInwardAdviceTmp tempTable;
;
// set required parameters on the contract
contract.parmFromDate(26\02\2014);
contract.parmToDate(26\02\2014);
contract.parmVendAccount("S000451");
// pass the contract to the data provider and run
dp.parmDataContract(contract);
dp.processReport();
// get the data (using the appropriate dataset method!)
tempTable = dp.getReportData();
while select tempTable
{
info(strFmt("%1", tempTable.RecId)); // or something more useful!
}
}
In this data provider, I’m looking at a combination of different data sources - rather than everything coming in through a VendPackingSlipTrans record - so there is a data provider to link the stock transactions to the various different entities.