If I have often wondered if I were in charge of the API at Blackbaud how I would change it. Well unfortunately I don’t wield that kind of power and secondly I am not sure that a major overhaul is required. It is clearly not a modern API being COM based but for the main it works well. However there are still quite a few areas that I would improve upon. I don’t suppose that these will ever happen. Changing the API is no doubt lower on Blackbaud’s list of priorities. With the imminent arrival of the Infinity platform (and, yes, its name does seem to have influenced the pace at which it is being released) , the ability to develop any interface into the system seems a real possibility. RE API by comparison appears somewhat staid and limited. I would imagine it no longer commands the attention at Blackbaud those of us using it would like.
That being said I would love to be proven wrong so Blackbaud if you are listening here are the areas that I would change:
- Create a mechanism where a developer can query the database without the RE user have to enter their credentials.
There are so many instances where the API is not enough and it would be great to be able to query the database on an adhoc basis. This can be done, and I do it (see Sometimes the API is not enough) but it requires a user name and password to get into the database. The API supplies a mechanism for retrieving an ADO resultset but then you have to supply an RE:Open password (assuming that the user has RE:Open installed)
- Open up the Batch module to the API.
There are many times when clients I work with have wanted to bring in gifts from a third party, a web site or an agency, into Raiser’s Edge. However they do not want to simply create the gifts. They want to be able to review them first, and link them to events or to pledges etc. They want to be able to use the batch functionality. Let us import directly into batch. This works with standing order files (UK) once the format has been developed or with EFT (behind the scenes) so why not open up the standards for other formats to work with. (as of 7.82 this has now been included)
- Enforce VBA rules in Global Changes.
When I am asked to write some code that enforces a rule, for example, on saving a constituent automatically ensure an attribute has a certain value based on their preferred address, it works fine when you save an constituent individually, it works when you import constituents and it works when you add constituents via Batch but then I have to explain that it will not work when I globally change constituents.
- Improve documentation.
I think that this speaks for itself
Do you have any other improvements? I am sure that there are many small improvements that could be made on an object level and perhaps I will revisit this another time.