Tag Archives: The Raiser’s Edge

What is the difference between Chimpegration and Online Express?

What is the difference between Chimpegration and Online Express?

We are big Blackbaud fans and love much of what Blackbaud produces. Online Express is no exception. The fact that there is one application that can ask for donations, handle event registrations, manage memberships as well as allowing you to send out targeted and personalised emails is amazing. What is even better is that it does so with a complete integration into The Raiser’s Edge. – WOW!

Continue reading What is the difference between Chimpegration and Online Express?

Just When You Thought Validatrix Could Not Get More Complicated…

One of the problems of offering a tool that can create custom business rules for almost any scenario is that it has to have a lot of functionality. As we developed Validatrix we realised that some of that functionality was missing so we added it on. The problem with that of course is that the more you add on the more complicated the application becomes.

We have attempted to remedy this by offering the Validatrix Query Converter which does a good job of converting queries into rules and is often a good starting point for expanding a rule further.

We realised that we had missed out on a piece of functionality that was preventing us from creating a rule with a specific scenario. It is possible to all sorts of logic within one rule. We can check if a field value is exactly the same as another, if it is not the same as if it is greater than or less than etc. Continue reading Just When You Thought Validatrix Could Not Get More Complicated…

Validatrix Query Converter Makes it even easier to protect your data

When we first developed Validatrix we had a lofty ambition that users of Raiser’s Edge would be able to protect their records using any combination of business rules. Out of the box, RE allows you to make some fields required. If the whole organisation wants city to be a required field all you have to do is going to configuration and set that field to be required.

However there are many limitations with that. What if we are only working with email only records. We may not have a physical address for those constituents. Validatrix makes it possible to combine criteria to validate records.

(Do they have an address block: YES
OR
Do they have an a postal code: YES)
SO
DO they have a city:

No? Well show a message.

What we soon realised was that for simple scenarios it was not that difficult to create rules. We also realised that after much practise and taking a look at our Validatrix Recipes area on ZeidZone, it became easier. Those starting out or writing more complicate rules needed a little more help.

That is why we developed the Validatrix Query Converter. Most, if not all DBAs can write a regular RE query. If they can write a query to give all the records where a message would be shown then this tool can convert the query into a Validatrix rule.

I have to say straight up here that not every single scenario is covered. There are some things (not many) that query can do that cannot be done in a rule. (There are so very many more things that Validatrix rules can do that query can do!). However this should get the beginner and those that are working with complex rules onto the right track.

If you have any questions about this product then please do not hesitate to get in touch with us here.

 

Adding an Education Record to a Non-Constituent Individual

I have been struggling to find a way to a an education record to a non-constituent individual relationship. There is a Blackbaud knowledgebase article here that outlines how you add an education relationship but it takes a lot for granted. Here is the gist of it:

Dim oEdu As CEducation2
Set oEdu = New CEducation2
oEdu.Init REApplication.SessionContext
With oEdu
   .Fields(EDUCATION2_fld_RECORD_ID) = 678   'Selects the record to add the Education record to
   .Fields(EDUCATION2_fld_SCHOOL_ID) = "Berry College"
   .Save
End With

However where does the 678 come from? For a constituent this is simple. It would be the constituent system id found under the Records_fld_Id field.

However what would it be for a non-constituent individual relationship. After all they can also have education relationship records.

I tried the field Individual2_fld_Id but the error I got back told me that I could not add an education to an organization record! Not very helpful.

In the end, with a bit of trial and error I worked out that you need to put the field Individual2_fld_Relation_id.

This is the id for the corresponding entry in the Records table which consists of both constituents and non-constituents.

Hope this helps somebody.

Working with Phones/Email without addresses in Raiser’s Edge 7.94

Prior to the release of The Raiser’s Edge version 7.94 I was working with all of our products to ensure compatibility with this latest version. If you have not heard (and if you have not heard where have you been hiding), this release of RE removes phones and emails from physical addresses.

When the concept of emails was new, it was possible that you would have an email address tied to your telephone provider or an email address specific to your place of work.  Your phone would either be at home or at work. Having these connnected to your physical address made sense. However it quickly became aparent that with the arrival of mobile phones and of email addresses that were accessible no matter where you were located, phones and emails (and for that matter all types of communication links) should be tied directly to the constituent record and not to a physical address. This is what has happened with the release of RE7.94.

This is a big shift and in terms of developing applications, we have had to allow for both possibilities so that our programs are compatible with users still on 7.93 and below and those that have made the leap over to 7.94.

The good news is that the old way of doing things still works in 7.94. You can still access phones via the CConstitAddress.Phones collection for an address. However you will probably want to access them how they are intended… Free from addresses.

This is done using the new interface IBBPhonesParent. This is implemented by CRecord, CIndividual2 and COrganization2. The collection of phones is a CConstitPhones object which contains the usual methods. You can iterate the collection to give you one CConstitPhone object but here is the problem.

For reasons that I don’t fully understand (I was told due to binary compatibility reasons) there are no properties or methods on the CConstitPhone object. Instead you have to convert this object to an IBBDataObject in order to access the Fields property. This is a real pain but to save myself some trouble I put together two extension methods for the CConstitPhone object which does this for me. (Unfortunately extension properties do not exist so that is why I cannot simply create an exact corresponding Fields properties. Those working with C# will be familiar with this as there is not a Fields property but rather  get_Fields and set_Fields methods)

<System.Runtime.CompilerServices.Extension()> _
Public Function Fields(ByVal phone As CConstitPhone, fieldConstant As ECONSTITPHONEFIELDS) As Object
   Dim dataobject As IBBDataObject = CType(phone, IBBDataObject)
   Return dataobject.Fields(fieldConstant)
End Function
<System.Runtime.CompilerServices.Extension()> _
Public Sub Fields(ByVal phone As CConstitPhone, fieldConstant As ECONSTITPHONEFIELDS, value As Object)
    Dim dataobject As IBBDataObject = CType(phone, IBBDataObject)
    dataobject.Fields(fieldConstant) = value
End Sub

With these extension method you can simply access the Fields methods on a CConstitPhone object in almost the same way as you would with other objects.

So here is an example of creating a new phone on a constituent record using the above extension code.

Dim constit As CRecord = GetConstituent()
Dim phonesParent As IBBPhonesParent
Dim phones As CConstitPhones
Dim phone As CConstitPhone

phonesParent = CType(constit, IBBPhonesParent)
phones = phonesParent.Phones
phone = phones.Add()
phone.Fields(ECONSTITPHONEFIELDS.CONSTIT_PHONES_fld_PHONETYPE, "Home")
phone.Fields(ECONSTITPHONEFIELDS.CONSTIT_PHONES_fld_NUM, "123-4567")
phone.Fields(ECONSTITPHONEFIELDS.CONSTIT_PHONES_fld_IS_PRIMARY, True)

constit.Save()
constit.CloseDown()
constit = Nothing

Global Merge More Accurately with The Mergician

We have just released an update to our successful global merge utility The Mergician. We have always had a way of searching for records in The Raiser’s Edge using complex and flexible criteria. IDLookup was one of the first plug-ins that we ever wrote and since it was first developed it has grown to contain some of the most powerful look up criteria around. A year or two ago we created IDLookup Dedupe, making use of IDLookup to search your database for duplicates. Well now we have gone one step further and brought all of this flexible, customization and downright lovely criteria lookup into The Mergician giving everybody the power to choose exactly how they dedupe their data.

There are 20 fields to choose from, many of which you can decide whether or not to search by the whole word or a specific number of characters. You can search using soundex (where names like Johnson and Jonson would be matched), you can search using first name and address line equivalents so that names like Bill match on William and Bvd match on Boulevard. If you are feeling very adventurous you can change the collation so that accented names would match with or without the accents e.g. Édouard would match Edouard.

Not only can you set up one criteria set, but you can set up multiples. You can decide that you want to narrow down the matches made from one to the next or you can decide that you want to select the criteria set with the fewest matches.

The Mergician still supports The Raiser’s Edge own dedupe algorithm so you can continue to create your merge report using that. You can also use our simple email matching tool too or you can use a third party agency to do the matching for you. However using our latest matching engine will give you real flexibility to match based on your own data without having to rely on mysterious algorithms or scoring charts.

Find out more about The Mergician or download the trial version today.

Blackbaud Conference Sessions to Watch out for #bbcon

It seems like a time honoured tradition of existing speakers telling others which sessions at the Blackbaud Conference  (BBCon) they should look out for. There is Heller Consulting’s, Joe Matic’s ( take his advice with caution – he is, after all, a robot) and, um, others. (Feel free to add them to the comments.)

I have now attended five conferences in the US and three in the UK. What do I look for in a good session? Well quite often the speaker is key. If they are not engaging then however interesting the topic , it will be lost on the audience. That being said some topics just shouldn’t be missed. (You can always moan about the speaker afterwards!)

So in no particular order (other than my two are going first as this is my blog and I am allowed to throw impartiality out the window), here is my choice of great speakers and sessions to look out for.

 

Performance Management using Audit Trail – David Zeidman and Mohammed Dasser

Have you ever wondered how you could use Audit Trail to measure your organization’s performance entering accurate data? You may wonder what records are being entered the most or how many different people are entering data onto a specific area. David will give a little background to Audit Trail and Mohammed will show you how University of Central Florida have created various metrics to report on performance. This is not going to be a sale pitch for Audit Trail (come to the Zeidman Development booth for that) .

Raiser’s Edge Geek Forum 2: The Revenge – Ed Hohlbein, Melissa Graves, Kirk Schmidt, Bill Connors and David Zeidman

There are very many different ways of using The Raiser’s Edge. If you went to the session last year you would have seen 5 Raiser’s Edge experts from three different countries, discussing / arguing about best practises. If you have a burning question about how some aspect of The Raiser’s Edge should best be done then don’t expect one straight answer! The panel will debate different solutions based on your questions.

Real-Time Integration Between The Raiser’s Edge and the Cloud – Jonathan Puddle

Now more than ever the digital and technology world is moving to the cloud. There are many definitions of “cloud” but any technology that doesn’t connect through traditional solutions (same network, etc) requires new solutions. I have done some work with Jonathan in the past and know that some of the things that Catch The Fire have done with their various systems are quite remarkable and well worth hearing about.

Social Media Police: Nonprofit Edition – Allyson Kapin, Maddie Grant, Melanie Mathos

I have seen Melanie speak about nonprofit social media on numerous occasions and in previous BBCons she has spoken with Chad Norman in a session that went on to become a book – 101 Social Media Tactics for Nonprofits. It does not sound like this session is going to follow the same format but nevertheless it certainly sounds like this is one to watch. Social Media changes rapidly and keeping on top of the latest changes is a must. (Then you can implement them with the book!)

Infinity Platform Features and the Software Development Kit – Ben Lambert

I am a big sucker for the Infinity platform and Ben always does it good justice. It is a great environment to work with and with each version release there are always some really interesting things added. I will be watching this one closely to see what new tricks Ben has up his sleeve.

How Would you Enter THIS Gift? – Bill Connors

I have known Bill for many years. He could talk about anything and make it interesting and dynamic. However this time he is talking about gifts! And who doesn’t like a gift? Well if that gift is sent in by a known donor, from an offshore company, signed off by his spouse and as a tribute to their gardener’s special birthday, would you know how to enter it into RE and in such a way as making it reportable too?

The Raiser’s Edge Roadmap – Tom Maszk and Emily Dalton

This is an annual favourite. Tom and Emily are going to be revealing the latest greatest additions to The Raiser’s Edge. We are told that many of those that made the cut were user requests so this is sure to be a crowd pleaser. I just hope that they have beefed up the security to take care of those people who were less than pleased about their own suggestions (Yes, when will The Mergician, Validatrix and Audit Trail be added as standard RE functionality!!?)

 

Well those are my top picks. Sorry if I overlooked anybody but I am sure you will appear on somebody else’s list. Look forward to seeing you all there!

Validatrix – Complex Business Rules with ease for The Raiser’s Edge

I am really pleased to announce that we have released our latest plugin – Validatrix. (Or jump to the fancy animation). It always bothered me how so many business rules built into The Raiser’s Edge were arbitrary. You have to supply a surname but not an email address. You have to give a gift amount and date but not specify which segment it belonged to when given (as some organisations would do by adding an attribute).  It maybe that somebody is a VIP because they give over a certain amount of money or because they are a specific type of prospect or because they attended a VIP dinner. You cannot enforce these rules in The Raiser’s Edge as is. You can, however, with Validatrix.

Continue reading Validatrix – Complex Business Rules with ease for The Raiser’s Edge

Payment Type or Payment Method ID reference

Some time ago I wrote the mappings for gift type ids and their corresponding descriptions. This is useful in the API and also when interrogating the database directly. More recently I have needed to do the same thing with payment type. I find it very strange that in some scenarios this field is referred to payment type and other times it is payment or just pay method. Whichever you use the mappings are given below:

  Continue reading Payment Type or Payment Method ID reference

Raiser’s Edge, PCI Compliance and the Dreaded, Buggy Lock Screen

There were a lot of complaints when in version 7.91 (?) of The Raiser’s Edge a major new feature was PCI compliance including a lock screen. Firstly there were issues with long running processes, global changes, imports and customisations also locking up and not continuing. There were many people who said “why?”. We don’t store credit cards and have no intention of doing so. Some of the security additions were very welcome. The previous password policy (nothing larger than 8 characters, no minimum and the ability for supervisor uses to reveal the password in security) was terrible. Even the policy of forcing users to change their password after a certain time, while annoying for the user, is an industry standard and can also be turned off.

However the lock screen is my pet peeve. I am somewhat of a different type of RE user. I am not a fundraiser (despite the many LinkedIn endorsements – thank you). I am a software developer. As a software developer I care very little for PCI compliance. Most if not all of my constituents are fictional. And yet I have no opportunity to turn off the lock screen. Most organisations that are careful about security will enforce a group policy Windows lock so that after a few minutes of Windows inactivity the screensaver comes on and returns to the password screen. Again this is a sensible precaution. As a small business I have Sage accounting software which is PCI compliant. It does not lock out.

My latest issue is that RE locks, I unlock it, it opens RE only to lock again. Or it locks, I unlock it, it opens and then something locks again. RE is open but the lock screen appears in front of it. I unlock it and, because there is not actually anything to unlock, it crashes. I don’t know what is going on but this is very annoying.

Come on Blackbaud, make the lock screen optional for all users. Not just those with non-supervisor rights (or with Windows Authentication)!

 

EDIT

It has come to my attention that I am probably in a minority position here. I regularly have a development environment open with programs that are attached to RE. This may or may not be a cause of the problem. I don’t know. I know that RE crashes when I unlock it even if I don’t have external programs attached to it. I have not been told specifically of this happening to other people so it is unfair to say that it is buggy. (By all means feel free to share your experiences in the comments). The point is I believe that the lock screen is overkill.