LexisNexis InterAction CRM .NET API (5.6 SP4)
I recently had the opportunity to start a project involving the build of a custom interface into LexisNexis’s InterAction CRM. In the past I would go straight to the pre-built web services which the vendor provides out of the box, however with version 5.3+ you can now take advantage of the .NET API.
The .NET API was specifically built to work with the new CRM module called Strategic Account Management (SAM), as a result I found the API to still be a little limited, however making a call to the data is fairly easy. Here is an example of how you would pull a list of Marketing Folders for the current logged in user (using Windows Authentication):
ConnectionManager cMgr = new ConnectionManager(this.Page.Session);
Connection IAconnection = cMgr.GetConnection();
FolderSearchCriteria searchCriteria = new FolderSearchCriteria();
searchCriteria.FolderTypeId = 11;
IList<Folder> foundFolders = IAconnection.Folders.FindFolders(searchCriteria, new FolderReturnOptions(), new PageContext(PagingMode.StandardPaging));
DataTable dt = new DataTable();
dt.Columns.Add(“Name”);
foreach (Folder folder in foundFolders)
{
DataRow dr = dt.NewRow();
dr["Name"] = folder.Name;
dt.Rows.Add(dr);
dt.AcceptChanges();
}
This all looks great, however after trying to implement this on a Gridview, I found the performance to be extremely slow. I tried binding the IList to a Repeater, ListView and Gridview, however no matter what the output, this performance was at least 50% less than using the web services to call the data.
In the end I had to move away from the .NET API in the hopes that one day LexisNexis can launch an updated version with better performance. For now, it is OK if you want to write back to InterAction CRM, however pulling large amounts of data (e.g. My Contacts List) is not practical, even with paging implemented.
Hope this helps any developers out there thinking about using the .NET API.