agentEZ | Beyond the tools: reporting, integration, and automation | Ytria

Beyond the tools: reporting, integration, and automation

Thorough documentation and reporting are essential aspects of your work and expandability is always a good thing. Offering you a powerful tool to oversee the big, detailed picture of all agents on a server from multiple angles isn't the end of the story for agentEZ.

The flexYgrid is the core engine of all Ytria tools, and gives you a great amount avenues to take your tasks down. All information—in any panel—is directly available to copy/paste, or to export to a variety of output formats. What's more, if you can perform an action in the UI, you can integrate it into a powerful automation script.

Learn about agentEZ's essential extras: from quick reporting, to integration with your environment, to Ytria’s adaptive API.

Make data reports easily

Make data reports easily

Export data quickly and directly from any agentEZ grid. Create reports in HTML, Excel, XML, and CSV, or simply copy/paste your data from the grid.

Integrate your workflow across EZ Suite tools and your native clients

Integrate your workflow across EZ Suite tools and your native clients

Leverage built-in bridges between products to open your target server in consoleEZ, open relevant databases in databaseEZ, scanEZ, or replicationEZ to analyze their contents, find replicas, and more.

Expand your tasks through powerful automation functions

Expand your tasks through powerful automation functions

Extend aclEZ's scope through your own scripts that let you repeat functions across an even larger scale. You can even use the command line integration to create push-button, multi-step process launchers.

Make data reports easily

agentEZ presents you with a lot of data! But no matter how much data you need to deal with, no matter which grid or panel that data might be in, exporting your data for a full report is always as easy as a copy/paste. In addition to the data in the grid, the graphical Agent Timeline readout is also available to export.

Produce detailed reports in multiple formats.


Excel files








Integrate your workflow across EZ Suite tools and your native clients

agentEZ is deeply integrated with your Notes, Administrator, and Designer clients, as well as the entire suite of Ytria tools. Start agentEZ as a clean slate and load what you choose directly from its interface, or inspect agents on demand in only a click.

Bridge to other Ytria products, directly from agentEZ, to save time and gain consistency.

Sign agents across databases

Select a set of agents and sign them automatically with signEZ—even if the agents are located across different databases.

Quick-launch agentEZ

Quickly launch agentEZ in one click from the Ytria toolbar, or from the Eclipse widget, to instantly assess agents in individual databases or an entire given server.

Jump to agentEZ from other tools

Deep dive further into a given database's agents directly from other Ytria programs such as databaseEZ, and more!

Expand your tasks through powerful automation functions

agentEZ brings the analysis and reporting of agents to all-new levels by giving you the power to oversee the big picture regarding all agents on a server, all at once —not on the per agent/per database method of before.

Using the ever-expanding automation capabilities, you can automate a wide variety of agent-related tasks. What's more, the new Automation Recorder lets you record flexYgrid actions to files that can either be replayed as is, or used as a great starting script to build upon and use across multiple servers.

Create macros, and automate tasks from the routine to the complex through the Ytria API.

Load all agents from a selection of databases across one or even multiple servers.

Analyze, group, and filter agents automatically to get right to the subset of data you need.

Export full reports, or just the part of the data you need, to XML, Excel, CSV, and more. You can even automate the export of Agent Timeline images.

And more...

Check out these ready-made scripts!


Export an Agent Timeline image for agents within a selection of databases.

As is, this script will generate and export an Agent Timeline readout for all agents within all non-template databases on a currently loaded server.

<ytriaAutomation Application="agentEZ" Console="True">
<!--The following two lines both use the Select tag to perform the corresponding actions within 
	the server/database selection tree and then the grid, respectively.-->
  <Select Target="Tree" Server="All"/>

  <Select Lines="All"/>
<!--The following action will only be applied on selected rows. Since all rows were selected
	in the previous line, the complete agent information will be loaded for every agent in
	the grid.-->

<!--A filter is enacted on the column "Database Filename" to eliminate all entries whose filename
	contains the text "ntf". This filter value can be changed to suit your needs.-->
  <Filter ColumnID="D2" Mode="NotContains" Text="ntf"/>

<!--This action block sets the Agent Timeline function to export a copy of the readout, as well as 
	the preferences used to export resulting image file. The file will be saved to the same location
	this automation file is being run from.-->
  <AgentTimeLineCopy Type="File">
    <SetParam Field="AgentName" Value="Name"/>
    <SetParam Field="AgentFileName" Value="True"/>
    <SetParam Field="AgentPath" Value="True"/>
    <SetParam Field="AgentTitle" Value="True"/>
    <SetParam Field="FilePath" Value="agentEZ_export.bmp"/>


Get a fast status report for all enabled and scheduled agents.

This script will load all enabled and scheduled agents on a currently loaded server and designate those that did not run. Additionally, it will create an Excel report of all agents, putting those that did run and those that did not on two separate pages.

<ytriaAutomation Application="agentEZ" ApplicationVersion="16.5">
	<!--This will set the script's behavior when encountering an error. In this case, it will continue.-->
	<onerror continue="true" />
	<!--At this point, we don't want to automatically load the detailed agent information. This will set it as "false". -->
	<Option Type="AutoLoadDetailedAgentInfo" value="False"/>
	<!--This will allow the automatic Check Presence in NAB feature to be carried out on the agent signer for each agent loaded.-->
	<Option Type="PresenceInNAB" value="true"/>
	<!--This will set the option to use the Design Collection Note which is a much faster loading option.-->
	<UseDesignCollection value="true"/>
	<!--This defines our search as looking only for scheduled agents.-->
	<AgentTriggerType value="Scheduled" />
	<!--This will select all databases on the loaded server.-->
	<TreeSelectionLive Value="True"/>
	<select target="tree" server="true"/>
	<TreeSelectionLive Value="True"/>
	<!--The next part of the script will handle the grid layout so the results are presented in a clear order. 
	    A Suspend Grid Redraw function is added so the processing will be held off until all columns are set.-->
	<SuspendRedraw value="false"/>
	<!--All columns are removed from the main grid in order to prepare for the columns that will be added.-->
	<!--Second, the columns that we want are added back into the first position and in reverse order.-->
	<Add ColumnID="STATUS_LOAD" Position="1"/><!-- Is Agent Fully Loaded? -->
	<Add ColumnID="D33" Position="1"/><!-- Is background agent disabled on database -->
	<Add ColumnID="B6" Position="1"/><!-- Comment -->
	<Add ColumnID="D3" Position="1"/><!-- Database Type -->
	<Add ColumnID="R24" Position="1"/><!-- Run on week-ends -->
	<Add ColumnID="R23" Position="1"/><!-- Stop running agent on this date -->
	<Add ColumnID="R22" Position="1"/><!-- Start running agent on this date -->
	<Add ColumnID="R21" Position="1"/><!-- Running Interval -->
	<Add ColumnID="M13" Position="1"/><!-- Signer -->
	<Add ColumnID="B5" Position="1"/><!-- Last Alias -->
	<Add ColumnID="B4" Position="1"/><!-- Name -->
	<Add ColumnID="D2" Position="1"/><!-- Database Filename -->
	<Add ColumnID="D1" Position="1"/><!-- Database Path -->
	<Add ColumnID="L17" Position="1"/><!-- Last Run Duration -->
	<Add ColumnID="L15" Position="1"/><!-- Last Run Start Date -->
	<Add ColumnID="STATUS" Position="1"/><!-- Status -->
	<!--Then, all groupings are removed.-->
	<!--And we will set a new grouping configuration.-->
	<GroupBy ColumnID="D46"/><!-- Server -->
	<GroupBy ColumnID="R9"/><!-- Run On -->
	<GroupBy ColumnID="R12"/><!-- Agent Schedule -->
	<!--Also, a new sorting configuration is set.-->
	<Sort columnID="L17" Ascending="false"/><!-- Last Run Duration -->
	<Sort columnID="D1" Ascending="true"/><!-- Database Path -->
	<Sort columnID="D3" Ascending="true"/><!-- Database Type -->
	<Sort columnID="D2" Ascending="true"/><!-- Database Filename -->
	<!--All existing filters are cleared, and then the grid processing is reactivated by turning off the Suspend Grid Redraw state.-->
	<SuspendRedraw value="false"/>
	<!--Note that the agent details don't need to be loaded in this situaiton, as this info is provided without a full information load.-->
	<Filter columnID="R8" Value="checked"/><!-- Enable -->
	<!--The following If condition declares that if something is found (and thus making the grid count greater than 0), 
	    the nested child actions will be carried out.-->
	<if target="Grid" test="VisibleRowsCount" Mode="GreaterThan" Value="0">
		<!--All enabled agents will be selected (rows loaded in the grid).-->
		<Select lines="all"/>
		<!--Then, all the detailed agent information is loaded for all selected lines.-->
		<!--A filter is added to find all agents that are enabled and did run correctly.-->
		<Filter columnID="L17" Empty="true"/><!-- Last Run Duration not set... -->
		<!--These findings can now be exported. Note that this report will be generated in the same location that this file 
		    is being run from.-->
			<SetParam field="FilePath" value="newreport_agentEZ.xlsx"/>
			<SetParam field="SelectedRowsOnly" value="false"/>
			<SetParam field="ExportType" value="Excel"/>
			<SetParam field="Mode" value="AppendRows"/>
			<SetParam field="ExcelSheetName" value="Enabled Scheduled Agents - LAST RUN"/>
			<SetParam field="OpenFileOnceGenerated" value="False"/>
		<!--All filters will be cleared from the Last Run Duration column.-->
		<ClearFilters columnID="L17"/><!-- Last Run Duration... -->
		<!--A filter is then added to find all agents that are enabled, but did not run correctly. A small trick is used
		    here: hiding anything that contains a ":" character (and thus indicating a duration).-->
		<Filter columnID="L17" Mode="NotContains" Text=":"/><!-- Last Run Duration... -->
		<!--The following If condition declares that if this script is not being used in a loop, the Excel file will be opened 
		    as soon as it is generated. This can't be done if a loop is being run since the Excel file still may need to be worked 
		   on with the results of another server (depending on what you need to do). Keep in mind that we can't set an If condition 
		    with a SetParam value, hence the use of this variable. The variable is initialised first, and it will be changed 
		    if not in a loop.-->
		<SetVar vOpenExcelFile="False"/>
		<if target="var" test="{%ListSize%}" mode="Equals" Value="">
			<SetVar vOpenExcelFile="true"/>
		<!--Finally, any findings regarding agents that did not run can be exported. Note that this report will be generated in 
		    the same location that this file is being run from.-->
			<SetParam field="FilePath" value="{%CurFilePath%}report_agentEZ.xlsx"/>
			<SetParam field="SelectedRowsOnly" value="false"/>
			<SetParam field="ExportType" value="Excel"/>
			<SetParam field="Mode" value="AppendRows"/>
			<SetParam field="ExcelSheetName" value="DID NOT RUN"/>
			<SetParam field="OpenFileOnceGenerated" value="{%vOpenExcelFile%}"/>