Category Archives: Intermediate

Looking up a constituent

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.

Continue reading Looking up a constituent

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.

Continue reading C# API Try Catch Finally Snippet

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

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