XML file import driver

The problem
At ING Insurance, Belkast encountered an issue where one of the partners could not, or was unwilling to, provide a file format that could be handled natively by one of the shipping NetIQ IDM Connectors. The file format that was being proposed was XML. There exists no shipping Connector that can handle XML files. Sure, there is the Delimited Text Connector which can handle CSV files, but that simply would not work for us and our XML file.
The Solution
Fortunately for us, there did exist a Connector which could handle our situation. It’s a custom developed Connector that works not only CSV format, but XML format (great!) and XLS as well. It’s the Generic File Driver, and it’s available for download from the NetIQ Cool Solutions web site here.
Generic DocumentThe concept is fairly simple, but extremely powerful. If you can write an XSLT StyleSheet, you can integrate NetIQ IDM with XML and XLS files; it’s fairly simple.

We have got a working example Driver coded for you already, and the Generic_File_Driver.xml Driver code can be freely downloaded. If you would like to arrange a call with Belkast to discuss your own requirements, please use our Contact Us form, email us at keith@belkast.com, or telephone us on +44.751.445.9728.

When processing a file, the most important configuration setting on the Driver is XMLFileReader: xsl to apply prior to processing the XML file (leave empty for no pre-processing). You might have figured out what this configuration setting does: it applies an XSLT StyleSheet to the import file before the file is processed by the Driver SHIM.

Installing the Driver

Once the Driver file has been downloaded from the Cool Solutions site, if you want to start from scratch and import a custom format XML file, you will need to:

  • [External] Stop eDirectory, copy the SHIM JAR file to the Identity Manager server, and restart eDirectory
  • [Designer] Import the  new SVCGENFILEB_0.0.6.20140508075632.jar package in to Designer
  • [Designer] Add the Delimited Text Driver to the DriverSet and select the Generic File Base package
  • [Designer] Answer all the presented questions as needed
  • [Designer] Deploy the Driver
  • [Designer or iManager] Change the GCVs as shown in the table below
  • [External] Write an XSLT StyleSheet to match up with your XML input document
Global Configuration Values

Shown below are the Global Configuration Values which are set on the working example Driver.

Global Configuration Value Configured Setting
Field Name (Field1,Field2,Field3) FirstName, EmailAddress, LastName, Id, Status, AccountType, ValidFrom, ValidTo, ManagerId, CompanyCode, JobId, DepartmentId, class_type, member, System, timestamp, GroupName
Object Class Name User
Association ECMA script <no value>
Src-dn ECMA script <no value>
ECMA script field identifiers processing NoProcessing
Include ECMA libraries in ECMA evaluation FALSE
Heartbeat interval (minutes) 1
Enable publisher channel TRUE
File Locator Strategy RegExpFileLocator
Source folder for files /installs/idm/input
Regular expression for matching files LTGT_FULL.*$
File Sorter Strategy FilePropertySorter
File sort method getName
Sort ascending (true/false) FALSE
File Reader Strategy XMLFileReader
Use the tag names from the XML document (true) or use the driver schema given (false) TRUE
Pre-xslt <the actual XSLT StyleSheet>
File encoding UTF-8
Polling interval (seconds) 20
List of meta data elements that should be added <no value>
Temporary work folder /installs/idm/work
Generated command Add (default)
File Removal Strategy Do not remove
Example XML input file

Shown below is an example input file, and as you can see the file is not a Delimited Text file.

Generic File Driver XML Input

 

Pre-processor XSLT StyleSheet

The XSLT StyleSheet which we used to import the file is shown below. You can test whether the XSLT will work against an input file using the bash script referenced here.

XDS document processed by SHIM