Reports Monitor (Reference) provides real-time visibility into server-side report generation operations for ReportForms and WebData objects during runtime. The Reports Monitor displays:
<ac:structured-macro ac:name="info"> ac:rich-text-body Only server-side operations are monitored. Client-side report methods are not included in the Designer monitoring tool. </ac:rich-text-body> </ac:structured-macro>
Access via Reports → Reports Monitor when connected to runtime.
Property | Description | Runtime Access |
---|---|---|
Name | Report identifier | @Report.Form.<Name> |
Disable | Object disabled state | @Report.Form.<Name>.Disable |
SavedFileName | Output file path | @Report.Form.<Name>.SavedFileName |
LastStatus | Operation result (Success/Running/Error) | @Report.Form.<Name>.LastStatus |
LastStatusMessage | Detailed error description | @Report.Form.<Name>.LastStatusMessage |
Access monitor properties in displays or scripts:
csharp
// Get report status
string status = @Report.Form.ProductionReport.LastStatus;
string fileName = @Report.Form.ProductionReport.SavedFileName;
string error = @Report.Form.ProductionReport.LastStatusMessage;
// Check for errors
if (@Report.Form.ProductionReport.LastStatus == "Error")
{
LogError(@Report.Form.ProductionReport.LastStatusMessage);
}
csharp
// Monitor WebData operations
string apiStatus = @Report.WebData.APIReport.LastStatus;
bool isDisabled = @Report.WebData.APIReport.Disable;
// Validate execution
if (@Report.WebData.APIReport.LastStatus == "Success")
{
ProcessReport();
}
Status | Description | Action |
---|---|---|
Success | Report generated successfully | Process/distribute report |
Running | Generation in progress | Wait for completion |
Error | Generation failed | Check LastStatusMessage |
Disabled | Object disabled | Enable or skip |
csharp
// Check all reports health
public void CheckReportHealth()
{
if (@Report.Form.DailyReport.LastStatus == "Error")
{
SendAlert("Daily Report Failed: " +
@Report.Form.DailyReport.LastStatusMessage);
}
}
csharp
// Monitor multiple reports
string[] reports = {"Daily", "Weekly", "Monthly"};
foreach(string report in reports)
{
string status = @Report.Form[report].LastStatus;
if (status != "Success")
{
// Handle failure
}
}
csharp
// Log all report errors
public void LogReportErrors()
{
if (@Report.Form.MyReport.LastStatus == "Error")
{
string error = string.Format(
"{0}: Report {1} Error: {2}",
DateTime.Now,
"MyReport",
@Report.Form.MyReport.LastStatusMessage
);
WriteToLog(error);
}
}
Report shows "Error":
Status stuck on "Running":
No monitor data:
File not created: