August 5th, 2011 by
David Zeidman
Strong words and the last thing I want to do is to upset too many people. I really do love Blackbaud applications and some of the people that I come across in that company are really talented and inspiring. However Blackbaud Hosting has to be the antithesis of that. Read the rest of this entry »
Posted in Opinion |
2 Comments »
June 28th, 2011 by
David Zeidman
I have always found attributes to be odd to work with in The Raiser’s Edge API. For some reason Blackbaud treat them somewhat differently than other child objects on a record. I have already spoken about that a few years ago but I wanted to elaborate on a couple of issues.
Read the rest of this entry »
Posted in Beginner |
1 Comment »
May 26th, 2011 by
David Zeidman
If you recognise the title of this post then I was inspired by a BlackbaudKnowHow article of a similar name. In that article the author describes the differences between the three terms and how they relate to Blackbaud Enterprise CRM. This is a good overview and works well for Blackbaud Enterprise CRM. However it breaks down when talking about The Raiser’s Edge 7.
Read the rest of this entry »
Posted in Not Code |
No Comments »
May 19th, 2011 by
David Zeidman
I have been working with different bank checking software. Blackbaud Europe have written a plug-in for The Raiser’s Edge to update the bank record data such as the name and branch of the bank as well as the address based on the sort code. We recently developed a plug-in that processed the direct debit returns and unpaids from BACS and update the recurring gifts accordingly. In some cases a new bank would need to be created. I was asked to integrate the plug-in with their Blackbaud written plug-in.
Read the rest of this entry »
Posted in Not Code |
No Comments »
February 7th, 2011 by
David Zeidman
Valid date to cannot be less than Valid date from
I got this error message the other day when developing with the membership module. In my opinion the membership module is the most complicated module to develop code for. Possibly because of this (and the fact that it is an optional module) there appears to be the least documentation about it. When I searched the knowledgebase for this error I did get a hit. It referred to NetSolutions. It suggested that the membership record did not have an expiry date.
This was not the case in my data. I had an activity date and an expiry date as required.
I worked out what the problem was. The issues happened when adding a membership card. I share this code between new memberships and a case where you may want to add a new membership card to an existing transaction. For a new membership card I was setting the card date as the same as the transaction date. The expiry date, by default was being set to the same as the membership’s expiry date. This worked fine for new memberships.
When I went to add a membership card to, say, a lapsed membership, (why this would happen in reality is uncertain but it was happening in my case), the start date was set to the transaction date i.e. today but the expiry date was in the past so the card’s expiry date was also in the past.
I checked for this scenario and set the membership card’s start date to one day before the expiry date if the expiry date was not after the start date.
Posted in Beginner |
No Comments »
November 4th, 2010 by
David Zeidman
A few days ago I put a question on both Blackbus and the official Blackbaud forums asking if anybody had written a plug-in in C#. I have written a number of customisations in C# (VB.NET is my most common programming language – although I do enjoy using C#) but I had never written a plug-in before. It has always been a web service of application of some kind. I managed to work out how to do it and thought that I would share my solution here. Read the rest of this entry »
Posted in Advanced |
7 Comments »
August 5th, 2010 by
David Zeidman
I am currently working on a project where I need to copy a gift record from one constituent to another. There are 213 fields on the regular gift object i.e. CGift. That is without looking at any of the other areas of the gift such as attributes, notepads, etc. It would take a lot of typeing to copy between each field so to do this I use the meta data that is supplied with each object. Read the rest of this entry »
Posted in Advanced |
2 Comments »
June 11th, 2010 by
David Zeidman
I have been working on a new product which will hopefully be released soon. In this new product the user needs to be able to look up a constituent in as few key strokes as possible. The approach that I took was to use the same functionality as the Quick Find mechanism that you see on the records page in The Raiser’s Edge. This is dependant on your user settings so that you can either put in a constituent id, the first name followed by the surname or the surname comma the first name. While I was testing it on the sample database it worked perfectly. However when I tested it on a client’s very large database there were issues. Read the rest of this entry »
Posted in Intermediate |
No Comments »
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.
Read the rest of this entry »
Posted in Intermediate |
2 Comments »
November 11th, 2009 by
David Zeidman
Sorry to get your hopes up but I am reliably informed that you cannot do this. And the reason? “PCI Compliance”. Read the rest of this entry »
Posted in Intermediate |
4 Comments »