The reports in IT-Conductor use the IT-Conductor XML markup identified by "itc" namespace prefix. At this time, the XML is not validated against the IT-Conductor schema.
Global Variables
"variables ${self/....}, ${report/...}" are supported in any report element
Dynamic Sections behave the same way as "<query>", producing a list of objects based on select criteria:
<itc:section
<itc:parameter name="OBJECT_ClassName">class-name</itc:parameter>
<itc:select name="attr-name" [oper="Operator"]>value</itc:select>
...
<itc:select ... > ...
<itc:parameter name="maintenance">true|false</itc:parameter> - Optional, allows for selection of objects based on the effective Maintenance Mode
<itc:parameter name="linkClassName">Link Target Class</itc:parameter> - Optional, if the intent is to return a list of linked objects,
this is the class of the link objects
<itc:parameter name="linkAttrName">Link target object attribute name</itc:parameter> - Optional, if the intent is to return a list of linked objects
and the selection targets Links, this attribute contains
the target object id in the link, normally LINK_LinkedObjectId or LINK_ObjectId
the opposite of what is used in the select criteria
...
</itc:section>
Where content can be any other construct including another.
The essence of sections is that for each object found in the query, the content will be replicated, and if "${context/...}" variables are used in any of the parameters they will be resolved with the query result Object attribute.
Nested "<section>" push the context into a FIFO stack so all children will have the new object instance set as a context.
The optional mode parameter (defaults to "context") - determines what the condition criteria (selects) are applied to:
context - the current context object (report external context or section-derived context)
variables - report variables (assigned with <itc:variable>)
If the criteria (all "<itc:select>" elements) evaluates to true the content of the if is included and evaluated according to report-type supported elements, otherwise it is skipped.
<itc:chart>
<Object Selector><!-- Optional see OBJECT_Id above -->
<itc:parameter name="context"><context id></itc:parameter><!-- Optional see Context Selector -->
<Context Selector /><!-- Optional see context above -->
<itc:parameter name="width">100%</itc:parameter>
<itc:parameter name="timeScale">HOUR</itc:parameter>
<itc:parameter name="title">true|false</itc:parameter> <!-- Display Chart Title, default: true -->
<itc:parameter name="titleText">New Text</itc:parameter> <!-- Override Chart Title -->
<itc:parameter name="annotations">true|false</itc:parameter> <!-- Disable /enable annotation in charts and tables, default: true -->
<itc:parameter name="legend">none|left|right|top|bottom</itc:parameter> <!-- Display Legend in the position relative to the chart, default: as specified in the chart object -->
<itc:parameter name="valuesOnly">true|false</itc:parameter> <!-- Disable /enable suppression of thresholds, severity & annotations, default: false -->
<itc:parameter name="excludeCategory">Category id</itc:parameter> <!-- Exclude Chart Category (if chart Supports category exclusion -->
<itc:parameter name="range">Range, see below</itc:parameter>
<itc:parameter name="endTime">End Time</itc:parameter> <!-- Optional, if specified used either specificaly or as a base for range calculation -->
<itc:parameter name="annotations">true|false</itc:parameter> <!-- disable /enable annotation in charts and tables, default: true -->
<itc:parameter name="excludeCategory.<category id>">true|false</itc:parameter> <!-- Exclude Chart Category (if chart Supports category exclusion -->
<itc:parameter name="table">false</itc:parameter> <!-- Show as Table. default: false -->
<itc:parameter name="matrix">false</itc:parameter> <!-- Show as Matrix. Superseded by "table"=true; default: false -->
<!-- When table=true -->
<itc:parameter name="header">true|false</itc:parameter> <!-- disable/enable chart table header row, default: true -->
<itc:parameter name="categoryHeader">Text</itc:parameter> <!-- set category column header text, default: none -->
<itc:parameter name="valueHeader">Text</itc:parameter> <!-- set value column header text, default: none -->
<itc:parameter name="tableTime">true|false</itc:parameter> <!-- disable/enable chart (time-series nly) table Time column, default: true -->
<itc:parameter name="tableCategories">true|false</itc:parameter> <!-- disable/enable chart table Category column, default: true -->
</itc:chart>
Where Category ID is either category Object Id (for multi-line graphs) or "Alarm", "Warning", "Severity", "itconductor.Annotations", "itconductor.Summary".
Threshold
Locates & reports a threshold, based on the target Object ID and value Attribute Name.
Note: Only Regular thresholds are supported. Collection thresholds should be accessed using "<chart>" construct.
<itc:threshold>
<Object Selector> <!-- Optional see THRESHOLD_ObjectId above -->
<itc:parameter name="THRESHOLD_AttributeName">OBJECT_Availability</itc:parameter>
<itc:parameter name="table">false</itc:parameter>
<itc:parameter name="width">100%</itc:parameter>
<itc:parameter name="timeScale">HOUR</itc:parameter>
<itc:parameter name="title">true|false</itc:parameter> <!-- Display Threshold Title, default: true -->
<itc:parameter name="titleText">New Text</itc:parameter> <!-- Override Chart Title -->
<itc:parameter name="annotations">true|false</itc:parameter> <!-- Disable /enable annotation in charts and tables, default: true -->
<itc:parameter name="legend">none|left|right|top|bottom</itc:parameter> <!-- Display Legend in the position relative to the chart, default: depends on the threshold type -->
<itc:parameter name="valuesOnly">true|false</itc:parameter> <!-- Disable /enable suppression of thresholds, severity & annotations, default: false -->
<itc:parameter name="range">Range, see below</itc:parameter>
<itc:parameter name="endTime">End Time</itc:parameter> <!-- Optional, if specified used either specificaly or as a base for range calculation -->
<itc:parameter name="scale">Value scale, Decimal</itc:parameter>
<itc:parameter name="unit">Unit Name, String</itc:parameter>
<itc:parameter name="format">Value Format, Java Formatting: %,.2f</itc:parameter>
<itc:parameter name="details">true|false</itc:parameter> <!-- For Consolidator Thresholds enables Details mode display ->
<itc:parameter name="collector">Collector ObjectId</itc:parameter> <!-- For Consolidator Thresholds if Details mode, use collector for a specific component details ->
</itc:threshold>
Parameters "THRESHOLD_ObjectId" and "THRESHOLD_AttributeName" allow for the selection of the relevant threshold (search is performed).
If parameter "OBJECT_Id" is specified, it overrides the above and the construct behaves fully as "<chart>".
Parameters scale, unit, and format are threshold specific and allow to override of how the value is charted.
Otherwise "<threshold>" behaves exactly like "<chart>".
Alerts
Report alerts for the selected criteria**:**
<itc:alerts>
<!-- Target Alerts Criteria -->
<itc:parameter name="className">Alert</itc:parameter> <!-- Target Class Name, optional, default "Alert" -->
<itc:parameter name="ALERT.Status">Status</itc:parameter> <!-- Optional, Default - All, Overridden by itc:select for the same attribute-->
<itc:parameter name="table">false</itc:parameter>
<itc:parameter name="width">100%</itc:parameter>
<itc:parameter name="timeScale">HOUR</itc:parameter>
<itc:parameter name="range">Range, see below</itc:parameter>
<!-- Search Criteria -->
<itc:select name="export">true|false</itc:select> <!-- Columns reported based ListExport flag not TableView flag (default) -->
<itc:select name="select">Comma-separated column Attributes</itc:select> <!-- Specific Columns to display, supersedes "export" -->
<itc:select name="sortAttr">attribute name</itc:select> <!-- default ALERT.Time -->
<itc:select name="sortOrder">DESC|ASC</itc:select> <!-- default ASC -->
</itc:alerts>
Service Query
Query on a service tree (applies the search criteria to each element in the sub-tree):
<itc:servicequery>
<!-- root Service node selector -->
<itc:select ..
<!-- Target Objects Criteria -->
<itc:target>
<itc:parameter name="className">Target Object Class</itc:parameter> <!-- Target Class Name , optional - default "Service" -->
<itc:parameter name="serviceAttr">ALERT.ContextService</itc:parameter> <!-- Target Class Attribute in the search criteria set with the service element ID , Required -->
<itc:parameter name="timeAttr">ALERT.Time</itc:parameter> <!-- Target Class Time Attribute, Optional -->
<!-- Query Criteria -->
<itc:select
</itc:target>
<itc:parameter name="table">false</itc:parameter>
<itc:parameter name="width">100%</itc:parameter>
<itc:parameter name="timeScale">Time Scale</itc:parameter><!-- Optional, Default HOUR -->
<itc:parameter name="range">Range</itc:parameter> <!-- Optional, only evaluated if timeAttr is specified-->
<itc:parameter name="startTime">Time</itc:parameter><!-- Optional, Override Range, only evaluated if timeAttr is specified -->
<itc:parameter name="endTime">Time</itc:parameter> <!-- Optional, Override Range, only evaluated if timeAttr is specified-->
<itc:parameter name="export">true|false</itc:parameter> <!-- Columns reported based ListExport flag not TableView flag (default) -->
<itc:parameter name="select">Comma-separated column Attributes</itc:parameter> <!-- Specific Columns to display, supersedes "export" -->
<itc:parameter name="sortAttr">attribute name</itc:parameter>
<itc:parameter name="sortOrder">DESC|ASC</itc:parameter>
</itc:servicequery>
Query
Free-form object query:
<itc:query>
<Object Selector>
<itc:parameter name="export">true|false</itc:parameter> <!-- Columns reported based ListExport flag not TableView flag (default) -->
<itc:parameter name="select">Comma-separated column Attributes</itc:parameter> <!-- Specific Columns to display, supersedes "export" -->
<itc:parameter name="linkAttrName">Link target object attribute name</itc:parameter> <!-- Optional, if the intent is to return a list of linked objects
and the selection targets Links, this attribute contains
the target object id in the link, normally LINK_LinkedObjectId or LINK_ObjectId
the opposite of what is used in the select criteria -->
<itc:parameter name="linkClassName">Linked object Class Name</itc:parameter> <!-- If linkAttrName is not specified - ignore, otherwise mandatory, specifies the target object Class -->
<itc:parameter name="sortAttr">attribute name</itc:parameter> <!-- Target (final) object sorting attribute name, must visible as the table column, otherwise ignored -->
<itc:parameter name="sortOrder">DESC|ASC</itc:parameter>
</itc:query>
Object Details
Display all visible object attributes as a vertical table with "Name:Value" rows:
<itc:details>
<Object Selector>
</itc:details>
Counter
Object counter based on query returns the number of objects in the query result:
<itc:savedsearch>
<itc:parameter name="OBJECT_Id">Saved Search Object ID</itc:parameter>
<Context Selector>
<itc:parameter name="export">true|false</itc:parameter> <!-- Columns reported based ListExport flag not TableView flag (default) -->
<itc:parameter name="select">Comma-separated column Attributes</itc:parameter> <!-- Specific Columns to display, supersedes "export" -->
</itc:savedsearch>
Audit Log
Report audit log events:
<itc:auditlog>
<Object Selector> <!-- If any objects matched, the auditlog will be queried for those objects, if none found and className is not specified, global tenant search is performed -->
<itc:parameter name="severity">Min Severity</itc:parameter> <!-- Minimum event severity to include, Optional -->
<itc:parameter name="request">Request Name</itc:parameter> <!-- Event Request (update,delete,maintenance,...), Optional -->
<itc:parameter name="range">Range, see below</itc:parameter>
<itc:parameter name="exclude.<ObjectName|AuthorName|Request|Severity|Details|Timestamp>">true</itc:parameter>
<itc:parameter name="sortAttr">Timestamp|ObjectId|ObjectName|ObjectClass|AuthorId|AuthorName|Request|Severity</itc:parameter> <!- Optional, Default=Timestamp -->
<itc:parameter name="sortOrder">DESC|ASC</itc:parameter>
</itc:auditlog>
Subscriptions
Creates a table displaying the e-mail addresses of tenant subscriptions:
<itc:subscriptions />
Attribute Text
Display object attribute text based on the attribute Display format. For the HTML report, it is wrapped with "<p>value</p>". For PDF, a paragraph is created with the value:
Note: Avoid HTML content. It can not be converted to PDF
Where
Object Selector:
<itc:parameter name="OBJECT_Id">${context/OBJECT_Id}</itc:parameter><!-- If specified, the rest is ignored, Optional -->
<itc:parameter name="className">Object Class</itc:parameter> <!-- Target Class Name, optional -->
<itc:select name="AttrName" [oper="Operator"]>value</itc:select>
<itc:select>...</itc:select>
Context Selector:
<itc:parameter name="context">Context ID</itc:parameter> <!-- Optional, if not specified see below →
<itc:context> <!-- Optional, if not specified see above →
<itc:parameter name="className">Object Class</itc:parameter>
<itc:select name="AttrName" [oper="Operator"]>Value</itc:select>
<itc:select>...</itc:select>
<itc.context>
now - current time/date snapped to TimeScale interval
before - time/date snapped to previous from now TimeScale interval
after - time/date snapped to next from now TimeScale interval
Parameter Width and Height
For HTML reports Chart/Threshold parameters width and height now accept UOM: 100%, 5em, 10ex, 100px, etc. If no UOM is provided and only the number is supplied the PX is assumed.
Output Type CSV
Reports now support CSV output. In this mode:
All graphical constructs are ignored.
Charts/Thresholds are displayed as tables regardless of the table parameter value.
Headers (h1/h2/...) are rendered as a line of text.
Other HTML (non itc:) markup is exploded but not rendered (if you specify "<p><itc:chart>....</p>", the "<itc:chart>" will be rendered without any formatting associated with "<p>").
Examples
The following example will produce a report that includes Availability (Table and Chart) for each SAP System with a Development application role.
This work is in both PDF and HTML mode ("<pbr />" is a page break and only rendered in PDF).