Dynamic Template Drilldown Configuration
For a list of out-of-the-box report templates that have drilldowns that you can use as examples, see
Examples of Dynamic Templates Containing Drilldowns.
Note: An ID field cannot have formatting if you want to use this field for a drilldown. Ideally, this field should be a hidden field. Or, you could include the ID twice, one would be hidden without formatting while the other could be displayed with formatting. The hidden field would then be used as the drilldown field. Note that some ID fields are added by the system and will therefore not have any formatting. For example, when a host name is dragged into a template, a related ID field is automatically added.
1. In the Dynamic Template Designer window, double-click a Selected Field to view the Field Configuration window.
2. In the Field Configuration window, click the Drilldown to icon to view the Drilldown Configuration window.
The Drilldown Configuration window lists reports that can be selected as a target for the drilldown. This list includes the following characteristics for each of the drilldown report templates:
• Menu Group: Displays the location of the drilldown report template.
• Has Filter: Indicates if the drilldown report template has filters applied. This is relevant because the data displayed in the drilldown report may differ from its parent report, due to the extra filtering. Therefore, the set of data may be different between the two reports.
• Has Aggregation: Indicates if the drilldown report has Oracle aggregation functions applied (see
Aggregation Functions). This may not be what you want, if the target of the drilldown has an aggregation that is different from its parent.
3. Select a report from the list that will be the target of the drilldown.
To remove or de-select a drilldown report, press the Ctrl key and click the previously selected report.
4. Instead of selecting a report template from the drilldown reports list, you may want to specify a custom drilldown URL. In the Drilldown Configuration window, select Custom Drilldown and click OK.
5. In the bottom of the expanded Drilldown Configuration window, enter a URL expression. See
Custom Drilldowns.
Note that there currently is no validation on the syntax of this expression in the Dynamic Template Designer.
Custom Drilldowns
The following examples illustrate how to specify a custom drilldown.
Example of a Custom Drilldown to the Host Details Report by Job ID
Be sure that the field used for the drilldown (in this example, S) does not have any formatting applied.
systemName=backupDetails&jobId=${row['S']}
Where:
systemName | systemName - The required prefix for drilldowns to out-of-the-box report templates. To identify the systemName, templateName, or templateInstanceID of an existing report template, generate that report and in the active browser window type: Ctrl-Alt-T templateName - The required prefix for drilldowns to custom report templates designed in the SQL Template Designer. templateInstanceID - The required prefix for drilldowns to report templates created in this Dynamic Template Designer. |
<displayReportName> | Insert the specific report system name or template name or template instance ID, along with the variable that is to be supplied by the parent report. Note that a string prefaced with an ampersand (&) designates a parameter that will be passed to the report. To identify the systemName, templateName, or templateInstanceID of an existing report template, generate that report and in the active browser window type: Ctrl-Alt-T |
=${row['<field_name>']}.data | The syntax required for the field name specification; substitute a value for <field_name>. In this example, S is the alias of the Job ID field. |
Example of Custom Dual Drilldowns
To identify the systemName, templateName, or templateInstanceID of an existing report template, generate that report and in the active browser window type: Ctrl-Alt-T
This more advanced example illustrates how multiple drilldowns can be specified, with conditions.
${row['F'] == 'fb' ? 'templateInstanceId=25200' : 'systemName=listCKDVolumeUtilSummary'}&extendedPoolIds=${row['D']}&reportScope=&lunStatus=C
In this example, if the value of F is fb, then drill down to the report with report ID 25200 (the LUN Utilization Summary); otherwise, drill down to listCKDVolumeUtilSummary (the IBM CKD Volume Summary).
Example of a Custom Drilldown to the Array Detail Report
To identify the systemName, templateName, or templateInstanceID of an existing report template, generate that report and in the active browser window type: Ctrl-Alt-T
This example shows a drilldown to the Array Detail report.
systemName=arrayDetail&ignoreParent=true&arrayId=${drillDownParam}&arrayIds=${drillDownParam}&tryIndex=3&historyDays=3&dateRange.startDateTime=1359763535166&dateRange.finishDateTime=1390867535166&groupById=13
Where:
tryIndex | Used to control the top N rows displayed in aggregate and disk volume utilization: tryIndex=3& |
historyDays | Used to control top N rows displayed in the volume utilization: historyDays=3& |
dateRamge | Times are seconds from epoch: dateRange.startDateTime=1359763535166&dateRange.finishDateTime=1390867535166 |
groupById | groupById = 13 means group by month GROUP_BY_HOUR: 10 GROUP_BY_DAY: 11 GROUP_BY_WEEK: 12 GROUP_BY_MONTH: 13 GROUP_BY_QUARTER: 14 GROUP_BY_YEAR: 15 |
Note that if you are specifying this drilldown configuration in the SQL Template Designer, the syntax is:
systemName=arrayDetail&ignoreParent=true&arrayId=${row['storage_array_id'].data}&arrayIds=${row['storage_array_id'].data}&tryIndex=3&historyDays=3&dateRange.startDateTime=1359763535166&dateRange.finishDateTime=1390867535166&groupById=13
Example of a Custom Drilldown to a Dynamic Template - Job Summary
To identify the systemName, templateName, or templateInstanceID of an existing report template, generate that report and in the active browser window type: Ctrl-Alt-T
This example shows the configuration of a drilldown to the Job Summary report.
templateInstanceId=150&supportsPagenation=true&jobStatusIds=1&dateRange.startDate=${row['start_date_char']}&dateRange.startHour=${row['start_hour_char']}&dateRange.startMinute=0&dateRange.startSecond=0&dateRange.finishDate=${row['finish_date_char']}&dateRange.finishHour=${row['finish_hour_char']}&dateRange.finishMinute=59&dateRange.finishSecond=59&dateRange.useFinishTime=false&backupServerIds=${row['server_id']}&parentJobOnly=false&ignoreRetries=true
The following parameters are supported for Job enterprise object drilldowns:
backupServerIds
clientIds
dateRange – dateRange is a complex Oracle type. Use the following format to pass values
dateRange.startDate=${row['START_DATE']}&dateRange.startHour=${row['START_HOUR']}&dateRange.startMinute=${row['START_MIN']}&dateRange.startSecond=${row['START_SEC']}&dateRange.finishDate=${row['END_DATE']}&dateRange.finishHour=${row['END_HOUR']}&dateRange.finishMinute=${row['END_MIN']}&dateRange.finishSecond=${row['END_SEC']}&drilldownClientIds=${row['CLIENT_ID']}&dateRange.useFinishTime=true&
jobTypeIds
jobStatusIds
statusExcludeIds
includeFileList – 0 or 1
filePathName
policyNameFilter
mediaType
parentJobOnly – 0 or 1
backupWindowId
numberOfConsecutiveErrors
includeMasterServers – 0 or 1
drilldownClientIds – If this was passed in, then the original scope is ignored.
groupById
Use the following values
GROUP_BY_HOUR: 10
GROUP_BY_DAY: 11
GROUP_BY_WEEK: 12
GROUP_BY_MONTH: 13
GROUP_BY_QUARTER: 14
GROUP_BY_YEAR: 15
Drilldown Parameters
You can configure additional conditions by selecting parameters, operations, and values to control when the drilldown will be active, as shown in the following example.
Note: This configuration is available only from a field that has an aggregated function and a drilldown to a report template that was configured with the Dynamic Template Designer.
Examples of Dynamic Templates Containing Drilldowns
The best way to learn how to define drilldowns in a report template is to learn by example.
The following list includes a sampling of the out-of-the-box reports that are shipped with the product, along with a few examples of the relevant information to help you isolate an example of the functionality that you are trying to implement.
To help you identify a field in the template that contains this functionality, the following convention is used in the list of report templates.
• Product:Alias combines the values listed in the template. In the following example, the selected Product is All, while the selected Alias is F.
• Some templates are vendor product-specific, in which case you may have a Product:Alias such as EMC Avamar:A
Report Template | Report Type | Product: Alias | Caption | Field Type | Custom Drilldown or Drilldown Condition |
Backup Manager Reports |
Backup Executive Summary | Table | All: F | Failed | Column | Condition |
| | All: I | Failed | Column | Custom with Condition |
Job Status Summary | Bar | All: T | Failure | Bar | Drilldown |
Job Summary | Table | Veritas NetBackup: P1 | Client | Column | Custom |
Job Volume Summary | Bar | All: D | # of Files Backed Up or Restored | Line | Drilldown |
| | All: C | Backup/Restore Volume | Bar | Drilldown |
Job Duration | Bar | All: F | Job Duration | Bar | Drilldown |
Error Log Summary by Server | Table | All: E | Error Occurrences | Column | Drilldown |
| | All: F | Last Error Date | Column | Custom |
Error Log Summary by Client | Table | All: A | Client | Column | Drilldown |
| | All: F | Error Occurrences | Column | Drilldown |
| | All: G | Last Error Date | Column | Custom |
Largest Backup Volume | Pie | All: C | Job Size | Sector | Condition |
Job Summary by Server | Table | Veritas NetBackup: W | Errors | Sector | Custom with Condition |
Data Domain Reports |
Data Domain Snapshot History | Table | EMC Data Domain: B | System | Column | Drilldown |
Capacity Manager Reports |
Array Executive Summary | Table | All: O | Frames | Column | Drilldown |
LUN Utilization Summary | Table | All: O | # of Hosts | Column | Condition |
Array Port Utilization | Table | All: O | # of Hosts | Column | Drilldown |
NetApp Cluster-Mode Summary | Table | NetApp Cluster-Mode: G | # iSCSI Ports | Column | Custom with Condition |
Array Utilization Summary | Table | All: N | # UnAllocated | Column | Condition |