RE-Decoded

A technical look at the Raiser’s Edge API from Blackbaud

The Full Address

June 5th, 2008 by David Zeidman

I wanted to be able to get a constituent’s address from their record. Sounds simple enough. You just take the address block, the city, the state and zip. Although what happens if they are not in the States or Canada. When you change the country for example, to United Kingdom, the state field disappears and a county field appears in its place. Pulling the state field would just be a blank value.

Read the rest of this entry »

Posted in Beginner | No Comments »

Most Visited Plugins for February

March 3rd, 2008 by David Zeidman

Here are the top 10 visited plugins for the month of February. These are ordered by plugins whose follow through link as been visited.

1 Convio DataSync Connector RE
2 Create Preferred Address
3 Action Reminder Updater
4 Alternate Address Deleter
5 Bank Checker Solution
6 Clean Static Queries
7 AFP
8 Audit Trail
9 Add Constituent ID
10 Custom Reports

Posted in Beginner | No Comments »

Newly added plugins

February 25th, 2008 by David Zeidman

Thank you Steve Best for the following five new entries to the plugin directory. If there are any more that have been missed any then feel free to add them. Thank you to all those who have added over the past months.

  • CanadianUpdateRE
  • Fix for Missing Schedule Starting On Date
  • Fix Constituent Notepads Actual Notes
  • Fix Dupe Primary Banks
  • Fix Appeals For Delete
  • Cannot find the plugin that you are looking for? Get in contact with us and find out how we can make your Raiser’s Edge processes more efficient and make savings in both time and money.

    Posted in Beginner | No Comments »

    Describe a constituent in their dialogue window

    February 25th, 2008 by David Zeidman

    When you open up a constituent record wouldn’t it be good to see a one line overview of the most important distinguishing features of their record even if they are on different tabs? This tip shows you how to put this information into the window dialogue title.

    Read the rest of this entry »

    Posted in Beginner | 1 Comment »

    Membership - Retrieving information

    February 11th, 2008 by David Zeidman

    One very useful way of loading a collection of records is using the custom where clause. For example if you want to find a list of constituents who are born in a certain year you could write the following

        Dim oRecords As New CRecords
      oRecords.INIT SessionContext, tvf_record_CustomWhereClause, "BIRTH_DATE LIKE '1950%'"

    This is the only really effective way of doing this without returning a list of all constituents filtering them in the code (much less efficient).

    Read the rest of this entry »

    Posted in Beginner | No Comments »

    Adjust that tax claim at your peril

    February 4th, 2008 by David Zeidman

    This is perhaps more of a rant than anything else but after being so pleased with the way Blackbaud introduced Batch into the RE:API I now found myself stuck with another piece of Raiser’s Edge functionality that I am less than pleased with.In the UK Gift Aid is big business. In the States (and possibly elsewhere) the donor can claim tax back from charitable donations. In the UK it is the charity that can claim the money back from the government for

    UK tax payers so this can amount to a very large sum of money if it is handled properly. There have been several changes to Gift Aid over the past four or five versions of Raiser’s Edge. One problem that was not addressed until recently was when Gift Aid had been taken in error and then claimed back from the Inland Revenue. If a gift was given in error then the Gift must be adjusted or written off and the Gift Aid must be reversed. If the Gift Aid was claimed in error (for example the donor was not a tax payer) then the Gift Aid alone must be reversed.

    Read the rest of this entry »

    Posted in Beginner | 2 Comments »

    Additions to the Plugin Directory

    January 25th, 2008 by David Zeidman

    Since we started the plugin directory new plugins have been added. Here are the most recent additions to the plugin directory. If we have missed any then feel free to add them. Thank you to all those who have added over the past months.

  • Repair Receipt Type
  • Unmark DNC
  • Regenerate Import IDs
  • Fix Key Position Data for IndRecords2
  • Clean Static Queries
  • Fix Trailing Spaces
  • Expire benefit fix
  • Update Pending Transactions
  • Define Patronymic Prefix Excludes
  • Match Applications and Enrollment
  • De-Duplicate Phones
  • Cannot find the plugin that you are looking for? Get in contact with us and find out how we can make your Raiser’s Edge processes more efficient and make savings in both time and money.

    Posted in Beginner | No Comments »

    Excel Revisited

    January 18th, 2008 by David Zeidman

    In a previous post (Integrating with Excel) I gave a code example of how RE can integrate with Excel. The code was relatively simple. One of the problems with working with Excel is if you embed references to Excel in your project but you are not sure of the version of Excel you will be working with.

    Read the rest of this entry »

    Posted in Beginner | No Comments »

    Integrating with Excel

    December 5th, 2007 by David Zeidman

    Two common tasks seem to be integrating RE with an Excel file. This can mean two things. Either from a plugin or some RE:VBA code opening a Excel file and extracting the data or it can mean that from within Excel VBA access the RE objects to retrieve some data. The way you handle the two scenarios is quite different.

     If you are trying to connect to Raiser’s Edge from Excel you will need the API module. You connect to RE using the REAPI object and initialize it with a serial number and optionally user name and password. You then use the API in exactly the same way as you would from within RE, i.e. via VBA or any other API application.

     If you want to open up Excel from RE then you will need to create the application objects. This is shown in the example below:

        Dim objExcel As Excel.Application     ' Excel application
        Dim objBook As Excel.Workbook      ' Excel workbook 
        Dim objSheet As Excel.Worksheet     ' Excel Worksheet 
        Dim oConstit As New CRecord    oConstit.Init REApplication.SessionContext
        Set objExcel = CreateObject("excel.application") 'Starts the Excel Session 
        Set objBook = objExcel.Workbooks.Open("C:test.xls")   
    
        For Each objSheet In objBook.Sheets
            If UCase(objSheet.Name) = "Sheet1" Then
                oConstit.Load CLng(objSheet.Range("A2").Text)
                objSheet.Range("A3").Text = oConstit.Fields(RECORDS_fld_FULL_NAME)
                Exit For
            End If
        Next objSheet
         objBook.Save 
         If Not objBook Is Nothing Then
            objBook.Close
            Set objBook = Nothing
        End If
         If Not objExcel Is Nothing Then 
            objExcel.Quit
            Set objExcel = Nothing
        End If  
    
     

    This is quite self-explanatory code, although Excel has an object model just as RE does which is very large and takes a while to get to understand. There is plenty of Excel API information on MSDN.

    Posted in Beginner | 1 Comment »

    Custom user defined business rules

    November 9th, 2007 by David Zeidman

    The idea of creating user defined business rules has been discussed in various threads at Blackbus and on the Blackbaud Raiser’s Edge forums (see User Defined Business Rules for example). The whole functionality  is really useful but there are clearly limitations.

    One really good use of VBA is to perform this very task. For those not familiar with the build in version it allows you to select a query (constituent, gift or action) and for a all or a limited number of security groups it allows you to display a message on opening the record. This same functionality can be repeated using VBA. Of course you are able to query on a lot more, or perform more than simply display a message. Read the rest of this entry »

    Posted in Beginner | No Comments »

    « Previous Entries