===Querying Data in a Report===
To query data, the [[mplreport|mplreport]] class has the [[FetchHistory]] function.
The function takes a single parameter - the AQL function you want to run. Note that this function //should not include the call to GETHISTORY//. The API will take care of adding that for you. You simply need to include a query that returns a list of ARDI points.
For example, if we wanted to make a report showing every temperature measurement in our system, we could do the following...
thedata = report.FetchHistory("'Temperature' PROPERTYEX ALLPOINTS")
The **thedata** variable would now contain a [[AQLHistResponse]] object. This object contains both the //metadata// for your query (describing the individual points), and a //pandas dataframe// containing your data.
//NOTE: If you're following along with your own ARDI databases, we suggest substituting 'Temperature' for a value that exists in your ARDI system.//
===Checking for Errors===
You can check to see if there were any issues access data using [[FetchFailure|report.FetchFailure]] function. This returns //True// if there was some kind of issue access your data, or //False// if there were no problems.
You can reset this with flag with [[ClearFailures|report.ClearFailures]], or access a list of the errors with [[errors|report.errors]].
If there is no way to gracefully handle an issue - such as failure to read data - you can call [[Failed|report.Failed]] to generate a placeholder report advising users of the failure. This will also trigger failure handing inside the ARDI reporting system.
thedata = report.FetchHistory("'Temperature' PROPERTYEX ALLPOINTS")
if report.FetchFailure():
report.Failed("\n".join(report.errors))
===The Next Step===
Next, we'd like to [[using historical data|use our historical data]] in our report.