EZ Suite 16.5 | Ytria

EZ Suite 16.5 sees the tools you love getting smarter!

Hot on the heels of the revolutionary EZ Suite 16 release, which saw the light of day earlier this year, comes an extensive update. Version 16.5 greatly increases the scope of what can be done through EZ Suite's powerful automation capabilities and brings in many new performance enhancing functions and preferences.

Expand the scope of your EZ Suite tasks with these ready-to-use scripts.


As a quick preview of the newly expanded automation script capabilities, we have included some working scripts that you can put to use immediately. For your convenience, comments have been included as explanations of key functionalities. Feel free to change the values to meet your needs. Be sure to keep the Ytria Automation tag specifics in mind to ensure that your scripts function properly.

Script Level: Easy

Find and report all Mail Owner access levels and various connected properties and settings regarding their permissions across multiple databases on multiple servers.

This script can be used by itself in aclEZ to process a currently opened server, or with the new function found in replicationEZ that lets you launch a script on a selection of servers directly from within the interface. Learn more about this function here.
This script will parse the entire mail directory folder on a given server to find all mail owners set side by side with a selection of key properties and settings that govern access and permissions to their respective mail databases. A report will be generated and exported into an Excel file. Each access level will be reported on its own sheet within the file.

<ytriaAutomation Application="aclEZ" ApplicationVersion="16.5">
	<!--This will set the script's behavior when encountering an error. In this case, it will continue.-->
	<onerror continue="true" />
	
	<!--First it is specified that the NAB presence is NOT to be checked and groups are NOT to be "expanded."-->
	<Option Type="PresenceInNAB" value="false"/>
	<Option Type="GroupExpander" value="ExpandNone"/>
	<TreeSelectionLive Value="True"/>
	<!--All databases on the current server will be deselected in the tree.-->
	<unselect target="tree" server="true"/>
	
	<!--Then the mail directory folder for the current server will be selected.-->
	<select target="tree" folder="mail"/>
	
	<!--The next part of the script defines the actions to be taken within the Audit grid. The grid layout will be set as stated below. A Suspend Grid Redraw function is added so the processing will be held off until all columns are set.-->
	<SuspendRedraw value="true"/>
	
	<!--All columns are removed from the main grid in order to prepare for the columns that will be added.-->
	<RemoveAllcolumns/>
	
	<!--The grid columns are moved to the first position in reverse order. The name of the columns are indicated.-->
	<Add ColumnID="DB6" Position="1"/><!-- Catalog Categories -->
	<Add ColumnID="DB4" Position="1"/><!-- Database Type -->
	<Add ColumnID="A9" Position="1"/><!-- Replicate or Copy Documents -->
	<Add ColumnID="A8" Position="1"/><!-- Write Public Documents -->
	<Add ColumnID="A7" Position="1"/><!-- Read Public Documents -->
	<Add ColumnID="A6" Position="1"/><!-- Create LS/Java Agents -->
	<Add ColumnID="A5" Position="1"/><!-- Create Shared Folder/Views -->
	<Add ColumnID="A4" Position="1"/><!-- Create Private Folders/Views -->
	<Add ColumnID="A3" Position="1"/><!-- Create Private Agents -->
	<Add ColumnID="A2" Position="1"/><!-- Delete Documents -->
	<Add ColumnID="A1" Position="1"/><!-- Create Documents -->
	<Add ColumnID="ACL4" Position="1"/><!-- Type -->
	<Add ColumnID="ACL1" Position="1"/><!-- Name -->
	<Add ColumnID="DB3" Position="1"/><!-- Database File -->
	<Add ColumnID="DB2" Position="1"/><!-- Database Path -->
	<Add ColumnID="STATUS" Position="1"/><!-- Status -->
	<!--Any residual grouping and sorting is cleared.-->
	<Reset/>
	
	<!--A new grouping configuration is set.-->
	<GroupBy ColumnID="ACL5"/><!-- Access -->
	<GroupBy ColumnID="DB7"/><!-- Server -->
	
	<!--And a new sorting configuration is set.-->
	<Sort columnID="DB2" Ascending="true"/><!-- Database Path -->
	<Sort columnID="DB4" Ascending="true"/><!-- Database Type -->
	<Sort columnID="DB3" Ascending="true"/><!-- Database Filename -->
	
	<!--A filter is added to isolate only mail owners,and then the grid processing is reactivated by turning off the Suspend Grid Redraw state.-->
	<Filter columnID="ACL3" Empty="true"/><!-- Mail Owner -->
	<SuspendRedraw value="false"/>
	
	<!--The following If condition will test if the main grid has any rows loaded. If there are any rows loaded (meaning that Mail Owners were found) the nested child actions will be carried out.-->
	<if target="Grid" test="VisibleRowsCount" Mode="GreaterThan" Value="0">
		
		<!--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"/>
		</if>
		
		<!--Finally, any findings regarding the databases and their respective mail owners, and the rights those mail owners hold, will be exported. Note that this report will be generated in the same location that this file is being run from.-->
		<Export>
			<SetParam field="FilePath" value="{%CurFilePath%}report_aclEZ.xlsx"/>
			<SetParam field="SelectedRowsOnly" value="false"/>
			<SetParam field="ExportType" value="Excel"/>
			<SetParam field="Mode" value="AppendRows"/>
			<SetParam field="ExcelSheetName" value="Email Owner Access"/>
			<SetParam field="OpenFileOnceGenerated" value="{%vOpenExcelFile%}"/>
		</Export>	
	</if>
</ytriaAutomation>

 

Script Level: Easy

Create a new item across all documents in a specific category—and across multiple databases.

This script can be used by itself in scanEZ to process a currently opened database, or with the new function found in databaseEZ that lets you launch a script on a selection of databases directly from within the interface. Learn more about this function here.
Small in size, yet very flexible in where you can take it, this script will simply select a category of documents and create a new item across all documents within that focused selection.

<ytriaAutomation Application="scanEZ" ApplicationVersion="16.5" Version="1.0">

<!--The following three lines let you specify the name and value of the item to be added, as well as the document category whose documents the item will be deployed to. Simply enter your desired values where indicated.-->
<SetVar ItemToAdd="Enter your value here"/>
<SetVar ItemValue="Enter your value here"/>
<SetVar DocumentCategory="Enter your value here"/>

<!--The following Expand/Focus sequence will allow the focus to be placed on the documents within the selection tree category specified.-->
<Expand target="tree" category="Documents" type="{%DocumentCategory%}"/>
<focus target="tree" category="Documents" type="{%DocumentCategory%}"/>

<!--The CreateItem script block is where we define the item to be added. If the item already exists, it will not create a new one, instead it will skip the document and move on to the next. In this particular case, the item added will be a Text item that will use the name and value defined in the beginning of the script.-->
<CreateItem OnExisting="skip">
	<SetParam field="TypeList" value="Text"/>
	<SetParam field="FieldName" value="{%ItemToAdd%}"/>
	<SetParam field="FieldValue" value="{%ItemValue%}"/>
	<SetParam field="IsProtected" value="true"/>
</CreateItem>
</ytriaAutomation>

 

Script Level: Intermediate

Find all documents that match a given formula across a selection of databases, and export the findings into an Excel file.

This script can be used by itself in scanEZ to process a currently opened database, or with the new function found in databaseEZ that lets you launch an automation script on a selection of databases directly from within the interface. Learn more about this function here.
This intermediate script allows you to specify desired values in the beginning of the script using variables, minimizing any changes to the body of the script itself. This script will search a selection of databases for all the documents that match a defined formula. The name of the database that they are found in, as well as their UNIDs, will be exported into an Excel report.

<ytriaAutomation Application="scanEZ" ApplicationVersion="16.5">
	
	<!--This will set the scripts behavior when encountering an error. In this case, it will continue.-->
	<onerror continue="true" />
	<!--Use the following variables to adapt the script to your own needs.-->
	<!--TO SET :: this is THE FORMULA used. Note that the formula follows the general XML rules of "escaping". -->
	<SetVar vSearchFormula="@Contains(Subject;&quot;Help us protect your account&quot;)"/>
	
	<!--TO SET :: This is the item to use as a main "key" for the report.-->
	<SetVar vItemToUseAsKey="Subject"/>
	<!--This script block will perform the search for the documents.-->
	<SearchBy Type="Formula">
		<Setparam Field="SetFormula" Value="{%vSearchFormula%}"/>
		<Setparam Field="SearchDocuments" Value="true"/>
		<Setparam Field="SearchDesigns" Value="false"/>
		<Setparam Field="PutSearchInSelCreateName" Value="All Docs Found"/>
	</SearchBy>
	
	<!--The following Focus line will place the focus on the newly created My Selection folder named "All Docs Found".-->
	<Focus Target="Tree" Category="All Docs Found"/>
	
	<!--The following If condition declares that If the My Selection exists (i.e. something has been found), the nested child actions will be carried out.-->
	<if Target="Tree" Test="FocusRoot" Mode="NotEquals" Value="True">
		
		<!--This will set the displayed document titles to the current database name, for reference in the resulting report.-->
		<ChangeDocumentTitle>
				<Setparam Field="TitleOptionType" Value="Formula"/>
				<Setparam Field="TitleOptionFormula" Value="@Implode(@DbName;&quot;!!&quot;)"/>	
		</ChangeDocumentTitle>
		
		<!-- This will enact a Diff operation on the documents within the My Selection folder and select the main "key" item by the specified name.-->
		<Diff/>
		<Select target="DiffGrid" Lines="ByValue">
			<SetParam ColumnID="AI2" Value="{%vItemToUseAsKey%}"/>
		</Select>
		
		<!-- This opens the Values grid.-->
		<Values>
			
			<!-- This will remove the Type column.-->
			<ShowTypeColumns value="false"/>
			
			<!-- And this adds a custom column where the UNID will be displayed.-->
			<AddCustomColumn name="UNID">
				<SetParam field="TitleOptionType" Value="System"/>
				<SetParam field="TitleOptionSystem" Value="UNID"/>
			</AddCustomColumn>
			<Evaluate/>
			
			<!--Finally, the results of the search will be exported into a report titled report_DeleteDoc.xlsx. If this script is to be executed as part of a Loop/List, the newly found information will be exported and appended to the same file.-->
			<Export>
				<SetParam field="FilePath" value="{%CurFilePath%}report_DeleteDoc.xlsx"/>
				<SetParam field="SelectedRowsOnly" value="false"/>
				<SetParam field="ExportType" value="Excel"/>
				<SetParam field="Mode" value="AppendRows"/>
				<SetParam field="ExcelSheetName" value="DOCS FOUND"/>
				<SetParam field="OpenFileOnceGenerated" value="False"/>
			</Export>
		</Values>		
	</if>
</ytriaAutomation>

 

Script Level: Advanced

Find and report all scheduled agents that have and have not run on a given server and create a concise report of agents in both conditions.

This script can be used by itself in agentEZ to process a currently opened server, or with the new function found in replicationEZ that lets you launch a script on a selection of servers directly from within the interface. Learn more about this function here.
This advanced 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. The report's layout will be set up in a way so that it is easy to check the status.

<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="False"/>
	<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="true"/>
	
	<!--All columns are removed from the main grid in order to prepare for the columns that will be added.-->
	<RemoveAllcolumns/>
	
	<!--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.-->
	<UngroupAll/>
	
	<!--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.-->
	<ClearFilters/>
	<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.-->
		<LoadMoreInfo/>
		<!--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.-->
		<Export>
			<SetParam field="FilePath" value="report_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"/>
		</Export>
		
		<!--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"/>
		</if>
		
		<!--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.-->
		<Export>
			<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%}"/>
		</Export>
	</if>
	
</ytriaAutomation>

 

Script Level: Advanced

Find multiple different types of profile documents and create reports of each different type found.

This script can be used by itself in scanEZ to process a currently opened database, or with the new function found in databaseEZ that lets you launch an automation script on a selection of databases directly from within the interface. Learn more about this function here.
This advanced script will iterate over a List containing different user-definable profile document names, and, for each given name, conduct a regex search to find the profile documents that contain a matching name. A multi-faceted report containing a full breakdown of all the items and their values within each document will be exported to an Excel file; each document name's search results will be placed in its own page in the file.

<ytriaAutomation Application="scanEZ" ApplicationVersion="16.5">
	<!--This will set the script's behavior when encountering an error. In this case, it will continue.-->
	<onerror continue="true" />
	<!--This will allow the script to run if called from databaseEZ by using the option 'Execute Automation File On...'-->
	<if target="var" test="{%ListSize%}" mode="NotEquals" Value="">
		<ExecuteListAction/>
	</if>
	<!--The script uses Loop and List actions. The Loop itself can be modified to fit your needs.-->
	<!--TO SET: these variables define the profile you are looking for. You may change the values to suit your needs and even add in more lines to the list keeping the format shown. Note: Personal profile documents are arranged in a level further down in scanEZ's selection tree and must be selected in a different way.-->
	<List name="allProfileName" Action="SetVar" vProfileName="CalendarProfile"/>
	<List name="allProfileName" Action="SetVar" vProfileName="NotExistProfile"/>
	<List name="allProfileName" Action="SetVar" vProfileName="ColorProfile"/>
	<!--This line will expand the Profile Documents section of the selection tree.-->
	<Expand target="tree" Category="Profile Documents"/>
	<!--Beginning here, the rest of the script is the Loop setup. All actions within this Loop section will be carried out in turn on all the lines in the List section (above) that use the specified name. The Loop is set to call on the List name allProfileName".-->
	<Loop list="allProfileName" OnError="Next">
		
		<!--This next action is mandatory in order for the action within the List lines referenced to be carried out. In the case of the lines in the List "allProfileName", the SetVar action is to be executed.-->
		<ExecuteListAction/>
		<!--Then, everything in the tree will be deselected.-->
		<UnSelect Target="tree" name="All"/>
		
		<!--This will place the focus on the Profile Documents category so that the SelectByRegex action can be used on the first-level entries within.-->
		<Focus Target="Tree" Category="Profile Documents"/>
		
		<!--The following line will enact a regex search on the first-level profile documents to find any profile documents that contain the name provided.-->
		<SelectByRegex Regex="{%vProfileName%}"/>
		
		<!--As stated early on in this script, Personal Profile documents are arranged at a deeper level in the selection tree. If you want to be able to search through both of these levels at the same time to find both the first level profile documents and personal profile documents with this name use this line in place of the regex search above <Select Target="Tree" Category="Profile Documents" Type="{%vProfileName%}"/> -->
		
		<!--This will create a new My Selection folder containing the found documents. By doing this the displayed titles can be set to your desired form (titles cannot be set within the Profile Documents category).-->
		<MySelection>
			<Setparam Field="MySelectionName" Value="Selection of {%vProfileName%}"/>
			<Setparam Field="TitleOptionType" Value="Formula"/>
			<Setparam Field="TitleOptionFormula" Value="@Implode(@DbName;&quot;!!&quot;)"/>	
		</MySelection>
		<!--Then the focus is placed on the newly created My Selection folder.-->
		<Focus Target="Tree" Category="Selection of {%vProfileName%}"/>
		
		<!--The following If condition declares that if the My Selection does exist, (meaning that something has been found) the nested child actions will be enacted.-->
		<if Target="Tree" Test="FocusRoot" Mode="NotEquals" Value="True">
			
			<!--A Values function is carried out on the focused My Selection folder.-->
			<Values>
				
				<!--All items within the Values grid are selected.-->
				<SetParam Target="SelectDocumentItems" Field="All" value="true"/>
				
				<!--And finally all the findings are exported to an Excel file; the results for each profile name will be placed on its own sheet within the file. The file will be saved in the same location as the this Automation file.-->
				<Export>
				   <SetParam field="FilePath" value="{%CurFilePath%}report_FindProfile.xlsx"/>
				   <SetParam field="SelectedRowsOnly" value="false"/>
				   <SetParam field="ExportType" value="Excel"/>
				   <SetParam field="Mode" value="AppendRows"/>
				   <SetParam field="ExcelSheetName" value="{%vProfileName%}"/>
				   <SetParam field="OpenFileOnceGenerated" value="False"/>
				</Export>
			</Values>
			
		</if>
		
	</Loop>
</ytriaAutomation>

 

automation

New in Automation

Automate more tasks thanks to a fully matured command language


First introduced in version 12, automation has always held a lot of promise for performing large, repetitive tasks. EZ Suite 16.5 sees the XML-based automation command language optimized and expanded beyond the original set of tags, and the capabilities that were available even as recently as version 16. The available catalog full of tags can be found in our Help section.

Record your actions

Record your actions to scripts with the powerful new Automation Recorder.

An all-new Automation Recorder takes performance optimization to another level by letting you record and "replay" actions you've performed in the EZ Suite tools. Simply hit Record at the beginning of your process, do your work, and the recorder will save the steps in an independent automation file that can be either recalled at a later time "as is," or modified to fit your needs.

Launch scripts on a current selection through other EZ Suite tools.

Bridges between EZ Suite tools have become far more robust! Thanks to a new right-click menu option for multi-server and multi-database tools (not applicable to consoleEZ), you can now process a current selection of entries through other tools by employing a pre-saved automation script. Process a selection of servers with agentEZ or aclEZ, process a selection of databases with scanEZ—the possibilities are huge, and only a few clicks away!

Launch scripts

Create Automation List from Selection

Build your automation lists fast with the 'Create Automation List from Selection' feature.

Thanks to the new Create Automation List from Selection function, you can quickly "export" a selection of entries to a properly formatted List that can be used in an automation script Loop.

See the progress of your automation scripts in real time, and with a level of detail that you choose.

A new, dedicated console displays a full log of operations carried out through automation scripts—in real time—and with script-responsive verbosity levels.

See the progress of your automation scripts

flexYgrid

The flexYgrid

Create better reports faster with the improved 'Append Rows' Export option.

Reporting is cleaner and easier to manage thanks to improvements in the "Append Rows" Export option that automatically reuses matching column headers. Combine reports worry-free. Regardless of how you have your grid columns placed, data exports now recognize columns and will append the like data to the proper place in your reports.

Keep your selection focus while performing Group/Sort operations.

Stay focused, on your current selections that is. Your selections now stay intact after Sort and Filter operations. And a new auto-scroll feature brings your focused entries back into view with only a key

Selection focus

Focus columns automatically

Focus columns automatically thanks to Search function enhancements.

The flexYgrid Find First… regex search option will now focus the column in which the regex match is found—guesswork is eliminated.

Group/Ungroup easier thanks to quick toolbar buttons.

New one-click Group/Ungroup command buttons can now be found in the toolbar. Group by the currently focused column in the click of a button (or a CTRL+ I), or reset even the heaviest grouping arrangement (CTRL+SHIFT+G).

Group/Ungroup easier

Hide/Unhide columns

Choose from new options to Hide/Unhide columns.

Hiding columns just got easier, and safer! New right-click menu options and key commands let you hide currently selected columns (CTRL+F6) and unhide the last hidden column (CTRL+F6) for a virtual undo, or toggle between states.

Combine filters on individual columns for heightened precision.

Already a powerful function, the precision of column filters has been enhanced through the ability to enact multiple filters on the same column header. Zero in on specifics by adding in one filter after another.

Combine filters

See grid counts fast with the new grid status bar.

See totals for rows loaded, rows displayed, hidden rows, and selected rows at a glance thanks to a new count-status bar available in every flexYgrid panel.

Filter values more accurately through "Real value" Filter logic.

Sort operations are more precise, regardless of cell and group formatting, due to a process that uses the "real" values and not the text-formatted value displayed in the grid.

Filter values

Display all filtered and manually-hidden rows at the click of a button.

Keep a firm grasp on the totality of your data throughout your operations. In just the click of a button, or with a CTRL + ALT + V, toggle the display of all rows filtered out of, or hidden in, a grid panel. These rows are color coded for easy identification.

Hold operation processing for quicker data manipulation.

Sometimes, the amount of data you're working with is so large that processing between operations inevitably takes a bit of time. Group, Filter, Load etc. on grids with extremely large data volumes are still comparatively fast, but the minute waiting times between processes can add up. The Suspend Grid Redraw feature lets you hold the processing until you've set up all of your operations, and then take care of them all at once.

Hold operation processing

View everything in your group zone.

Perform as many groupings as you want, see them ALL thanks to a scrollable group zone.

Reset grid configurations in total security.

A lot of preparation and work can go into finding the data you need. When it's time to revert back to your default settings, or even the original layout, you've got to be sure. By requiring a confirmation before the reset is carried out, any wrong clicks will be avoided.

Reset grid configurations

View your data based on a specific time span back from the current date.

An all-new cut-off date column filter option lets you choose to see only entries that fall within a specified time span back from the current date.

scanEZ

New in scanEZ

Copy/Move documents

Copy/Move documents with powerful new options to control how they are copied or moved in addition to the folder structure of their destination.

The Copy/Move Documents to Multiple Databases function is the closest thing Notes users can get to a drag-n-drop operation for Notes databases, and it has undergone both UX improvements and backend expansion. In addition to the ability to keep the original folder structure—or manually specify a new one—for the target documents, you can now choose from 4 different ways to carry out a Copy or Move operation: copy documents as new, replicate them, or replicate them with the option to force increment their sequence number depending on if the documents already exist in the target databases or not.

Export all files and attachments from a selection of documents in only a couple of clicks.

With scanEZ's new Export All Attachments and Files… feature, attachment archival across scores of documents has literally become a 2-step process. Select the documents, and select where you want to save the attachments. That's all there is to it!

Export all files and attachments

Conduct in-depth audits

Conduct in-depth audits between two non-replica databases with the new Database Comparator.

Have you ever wished that you could direct the Replication Auditor's unique powers towards two databases that aren't replicas? scanEZ now includes the new Database Comparator that lets you conduct Note Info audits between any two like databases that contain the same key UNIDs. Display only differences between them, or display the entire audit.

Get more out of the $Flags help section.

The valuable $Flags quick reference definition bank is now flexYgrid enabled.

Expanded $Flags help section

Edit MIME/RFC822 compatible items.

scanEZ is now fully compliant with MIME/RFC 822 standards and thus has the ability to read out and edit related items.

Manage design source files in design elements like Xpages. (See also the new document attachment export feature.)

Reach beyond the backend of XPages with the ability to parse and export the contents of multiple components that just weren't reliably accessible before—access compiled javascript, eclipse files, custom control components, and more.

Manage design source files

databaseEZ

New in databaseEZ

Create/delete Full Text indexes across multiple databases.

databaseEZ now supports creation/deletion of Full Text Indexes. (Note: Full Text Index creation only takes effect at the next Update.)

replicationEZ

New in replicationEZ

Safeguard your grid entries

Safeguard your grid entries for replicas loaded across servers while changing your selection.

An improved process for selecting/deselecting databases in the selection panel now offers the option to prevent unloading databases if you already have replicas from other servers loaded in the grid.

Get a clearer view of servers thanks to alphabetical selection tree ordering.

Finding your desired server within a full-capacity replicationEZ selection tree just got a whole lot easier. Your servers are now displayed in alphabetical order.

alphabetical selection tree

Drill down into conflicts directly from replicationEZ's Conflict Counter panel.

Finding your desired server within a full-capacity replicationEZ selection tree just got a whole lot easier. Your servers are now displayed in alphabetical order.

consoleEZ

New in consoleEZ

View detailed error logs for multiple servers at once.

Expanded functionality in consoleEZ's Dashboard panel now lets you see the error log details for multiple servers at once.

Pause "live" grids to activate all "static" grid capabilities.

Live grids like the grid in consoleEZ dashboard are powerful tools, but the live nature of the data stream presented barriers between these grids and the built-in flexYgrid tools like the Pivot Table builder and Data Comparator. This is no longer true: thanks to the Pause Data Stream option, you'll be able to use all the tools and options available in static flexYgrid panels on live grids (while paused).

Pause 'live' grids

agentEZ

New in agentEZ

See agent presence faster thanks to color coding enhancements in the database selection tree.

A new display development in agentEZ's database selection tree now indicates different stages of agent presence at a glance. Databases displayed in gray text lack agents of any type and pink text indicates a lack of the specific type of agent indicated in the agent search filter.