JXWorkBench Reports

JXWorkBench allows you to create reports from your directory data, and save them in a wide variety of formats, including .pdf, .docx, .html and .xml . These reports can be run manually, or run in batch mode as a script. The reporting framework is very flexible, and allows you to report on all the attributes (including operational attributes) of your directory entries, including users, groups and custom schema.

Reporting Templates

JXWorkBench provides a number of starting reports 'out of the box' to do a number of basic user reports such as:

  • Users created today, this week, this month, this year
  • Users modified today, this week, this month, this year
  • Users by org unit
  • Users by group
  • User Groups created today, this week, this month, this year
  • User Groups modified today, this week, this month, this year

JXWorkBench uses the Jasper open source reporting system, and new reports can be easily written either directly, or using Jasper's iReports graphical report creation tool.

Alternatively, existing reports can be simply modified by changing the ldap 'query' string; see below for technical details.

Reporting Options

Reports can be viewed directly in the browser, or exported to Adobe pdf documents, Microsoft word documents, Microsoft Powerpoint, HTML web pages, RTF documents or generic XML.

Batch Processing

Once a report has been setup in JXWorkBench it can also be run as a batch job from a command line script, using your saved report details and a saved connection. In this way batch reports can be setup and regularly generated from your directory data with little effort; e.g.

java -classpath ".;jars/*;jasper/lib/*" com.ca.directory.jxplorer.JXplorer -report -template daily_users -con prod_ldap

(Further usage information is available using options "-report -help", or JXplorer's built in online help.)

Report Templates

JXWorkBench reports use the open source Jasper reporting language. The sample reports can be easily modified in a number of ways to customise them, or the standard Jasper user interface (iReports) can be used to change the layout without directly writing report code.

Adjusting the LDAP query

The simplest way to modify the existing reports is to change the single line containing an embedded ldap search query. Each report includes an embedded ldap query which contains both an LDAP search filter, and a base DN. E.g. this query lists all users under the 'c=au' branch of the tree:

<queryString language="ldap"> <![CDATA[filter=(objectClass=person)):c=au]]> </queryString>

In addition to normal directory attributes, some special date values are pre-calculated as a convenience: $P{day_prior}, $P{week_prior}, $P{thirty_days_prior}, $P{year_prior}. E.g. this query lists all users who have been added in the last day:

<queryString language="ldap"> <![CDATA[filter=(&(objectClass=person)(createTimeStamp>=$P{day_prior})):dn=c=au]]> </queryString>

Finally, the User Interface (shown above) allows for the 'base dn' to be over-ridden, so you can easily run the same basic report on different directories, or directory sub-trees, without editing the report template.

Available Data Fields

The report works through the list of directory entries specified in the search query, and all the attributes of those entries are available as Jasper data fields. In addition, synthetic attributes for the distinguished name ('dn'), the parent distinguished name ('parentdn') and relative distinguished name ('rdn') are provided.

Note: the Jasper reporting language requires you to pre-define the attributes you are going to use; see the 'field definitions' at the top of each template for examples.

Advanced Reporting - following DN links

JXWorkBench allows you to 'follow' DN attributes and include fields from the followed entry. For example, if a particular user entry has a DN link to a group, e.g. 'groupdn', the report can follow this dn to find an attribute of the linked group (e.g. 'groupdn.description' will read the group entry from the dn, and then look for a 'description' attribute).

Download Reporting Package

The JXWorkBench Reporting system is distributed as a package with JXplorer included and is available for download on the Purchase page.

If you already have a JXplorer installation, this can be installed over the top, maintaining your existing settings. (Or you can install it elsewhere, and if necessary copy across all the top level *.txt config files from an existing JXplorer installation.)

Note that JXWorkBench is a java application, and you will need to have java 1.6 or better installed on your system to run it.

Jasper Links

Jasper is an advanced open source reporting engine; more details are available at:

  • Jasper Reports - The Jasper project home page.
  • iReport - iReports is the graphical editor for Jasper reports.