Monthly Archives: March 2013

An upgrade to The Mergician

I am really pleased to announce an update to The Mergician that will help all UK users of The Mergician.

Previously whenever you have merged two constituents with Gift Aid Declarations the value of in the source field on the GAD has not been transferred across to the merged record.

We now do this automatically for you whenever you select to merge Gift Aid Declarations. We know how much of a pain this has been in the past where you have had to do this manually.

The Mergician is not just a global merging tool. It cleans up after the merge too where The Raiser’s Edge merge tool leaves unfinished business. The addition of the source code field being copied over adds to the feature set of The Mergician that we hope you all appreciate. Of course if you have any suggestions of improvements then we would be happy to hear them.

The upgrade to version 1.8 is available after logging into your ZeidZone account on zeidman.info for all those organisations on a maintenance plan.

Batch API – error with tempRecords is nothing

“Nothing :
Init method must be called before using this object.” My colleague was testing a new application that I have written for a client. Every so often she would tell me that this error message was appearing in the control report. Everything else appeared to work. Just what did this mean? It was one of those classic RE error messages that means nothing. When I started to debug the problem I saw the error quite soon. Again it was one of those Batch API idiosyncrasies that just needed to be dealt with.

I was creating several gifts in a batch. I was looping through the gifts and creating each one.

For Each donation In donations
    tempRecords = CType(batch.TempRecords, Blackbaud.PIA.RE7.BatchData.CTempRecords)
    PopulateOneGift(constitSysId, batch, tempRecords.Add, donation)
    tempRecords.Save()
 Next

The error occurred on the second iteration of the loop. Whenever the tempRecords.Add
was called the error was raised. This was strange because normally you get this kind of error when you have not initialized the object or done a Closedown on it. Anyway the solution to add one line before calling the Add:

For Each donation In donations
    tempRecords = CType(batch.TempRecords, Blackbaud.PIA.RE7.BatchData.CTempRecords)
    tempRecords.Reload()
    PopulateOneGift(constitSysId, batch, tempRecords.Add, donation)
    tempRecords.Save()
 Next

That seemed to fix the problem.

EDIT: or so I thought. It appears as though it worked once then failed after that. I have now resorted to saving and closing the batch after each iteration and then opening it up again at the beginning. Ah the joys of the batch API.