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.
Category Archives: Intermediate
Writing Code to populate the rejection code field in batch
Sorry to get your hopes up but I am reliably informed that you cannot do this. And the reason? “PCI Compliance”. Continue reading Writing Code to populate the rejection code field in batch
C# API Try Catch Finally Snippet
I have been doing some work with C# recently and decided that despite what people say C# is as equally verbose as VB.NET. It is true if you look at the number of characters in a VB program compared to the equivalent C# program there will be a greater number but you seem to get a lot more automatic inserts with VB than you do with C#. C# seems to have a lot more punctuation that VB too adding up to a lot more typing than I was used to.
Recurring Gift Schedules
One of the harder imports that you may have to do in The Raiser’s Edge is importing recurring gifts with schedules. The regular help file itself suggests itself that it is tricky but then unfortunately does not offer any examples. Writing code to create various schedules is equally as difficult if not harder. This post does apply to pledges with schedules but, here in the UK, recurring gifts are much more common than pledges with schedules so I will concentrate on that but the same principles apply. I have also noticed that there are more and more people developing in C# so this is for them (but is not that hard to translate to VB.NET) Continue reading Recurring Gift Schedules
When Loading All Does not Load a Constituent
I wrote a recent customisation where I needed to start with an empty database with no constituents and put in a subset of records from my client’s database. I took the sample database and globally deleted all records. So far so good.
Some code that I had written ages ago was going to be a part of this customisation and I ran it as part of a larger piece. The code would load all constituents (OK I forgot that I did not have any) and select the first one. This is a really simple task but I got some strange results.
Continue reading When Loading All Does not Load a Constituent
Installing a .NET plugin revisited
A while back I wrote a post about how to install a .NET plugin. Since writing that post I now almost always use Windows installer to install my plugins but every so often they do not install I have not been able to work out why. Today though I think I cracked it.
Your own API Tools Class
When I first started out working with Raisers Edge API I realised that I was reusing many routines over and over and that would it not be better to create my own tools class so that I would not reinvent the wheel. Over the years I have added items to this class that I have found useful and have developed older items in order to do more things. In this post I will share with you some of the items that I find invaluable. Continue reading Your own API Tools Class
Filling a .NET dropdown with code table entries
One of the good things about the CCodeTablesServer class is the ability to fill a combo with code table entries. For example if I have a custom form and want to be able to allow the user to select say, a title, I can simply call the CCodeTablesServer class method LoadCombo and my combo is filled up with titles. Well it is if I am using a COM environment such as VB6. But what do I do if I am using .NET? Continue reading Filling a .NET dropdown with code table entries
Battling on with the Batch API
I have on several occasions expressed my delight about the arrival of the Batch API. I am still enthusiastic but somewhat war weary having spent this passed week trying to solve problems that have appeared. Clearly the Batch API was not rigorously tested before it was released as otherwise the sort of errors I am getting would not have appeared. In case you have been struggling too or in case you thinking about using this functionality here is what I have been up against.
Continue reading Battling on with the Batch API
Filtering Individual Relationships
In my endeavour of documenting the undocumented I would like to present this little nugget of an unwritten feature. I wanted to filter a constituent’s individual relationship based on a reciprocal type and on the to date not being populated i.e. the relationship was still valid. I’ll use the filter object I thought. Continue reading Filtering Individual Relationships