RE-Decoded

A technical look at the Raiser's Edge API from Blackbaud


Feeds:

Looking up a constituent

May 4th, 2010 by David Zeidman

Whenever I write a bespoke customisation for a client that needs to look up a constituent based on some biographical information I normally use the functionality available behind the scenes in IDLookup. If you are unfamiliar with IDLookup, it allows users to feed in an Excel or CSV file of names, addresses, aliases, attributes and all sorts of biographical information. Then based on criteria that you define, it will look to see if one or more constituents already exist in The Raiser’s Edge. I use much of the look-up functionality in other projects simply because Blackbaud chose not to make this functionality easily available. There is no back-end interface to their regular constituent look-up screen which is a real shame. The nearest feature is the IBBRecordFinder interface.

You create an IBBRecordInterface object by calling the CreateServiceObject on the REServices object and selecting bbsoRecordFinder as the input parameter. This gives you access to what is, essentially, the quick find interface. You supply the data as you would into the Quick Find box on the home page and the IBBRecordFinder object attempts to look up the data. If the user preference is set to accept a constituent id then IBBRecordFinder will try to find a record with that constituent id. If it is set to find a “surname, first name” or a “first name surname” combination it will try to look that up too. If it does not find anything or if it finds duplicates then the search screen will appear. You can specify that you don’t want there to be a GUI element to the search in which case it will not appear.

One caveat that I found with this is that if my settings are looking for “surname, first name” and I only use “Zeidman” as my input, even if there is only one Zeidman in the system it will still bring up the search screen. If I use  “Zeidman, David” then it will find it without the search screen. What is more if I simply use “Zeidman, D” no search screen will be used (as long as the exact match tick box is not selected). For whatever reason it seems to require a first name or initial to find the result exactly.

How do you look up records programmatically? Do you have a better method? Let us know in the comments.

No related posts.

Posted in Intermediate | 2 Comments »

2 Responses

  1. Cate Born Says:

    I usually end up using a the sCustomWhereClause parameter of Init method of the CRecords class.

  2. David Says:

    I agree and I do too but there is a lot of functionality in the constituent search screen that requires a number of joins to be made in the custom where clause such as zip/post code or membership number.

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.

Switch to our mobile site