Exporting Raiser's Edge for CiviCRM » History » Revision 13
« Previous |
Revision 13/71
(diff)
| Next »
Jon Goldberg, 07/27/2014 07:26 PM
Exporting Raiser's Edge for CiviCRM¶
You can export all of the data using the Raiser's Edge Export tool. You'll see it on the left toolbar when you first enter Raiser's Edge.
From the tool, you will create a number of exports. When you first create an export, you'll be asked a number of questions, including Export Type (Constituent, Gift, etc.), a checkbox to include inactive records (check this), and an export file type (select CSV).
For the Export type, start with Constituent. This is the "base table" - all records will be joined relative to it.
Constituent Based Exports¶
Constituent Information¶
If extracting directly from SQL, SELECT * FROM RECORDS WHERE CONSTITUENT_ID = -1
.
Create a new export.
Tab 1. General:
- Include all records.
- Head of Household processing: Export both constituents separately.
- Check all of the "Include these Constitutents": Inactive, deceased, no valid address
Tab 2: Output.
First, expand the "Constituent Information" in the left pane, and add every field to the export. Do the export (as a CSV).
Constituent Codes¶
Export as one to many, below.
These map to "groups" in Civi - can also be mapped to "tags" if you don't need to track the begin/end date on them.
No need to export these fields:
System Record ID
Import ID
As of Civi 4.4.6, there's no way to import Group Begin/End dates via API, you need to do it via SQL.
Solicit Codes¶
Export as one to many, below.
These can map to groups - but also may map to privacy preferences or custom fields (e.g. Email Only, Do Not Solicit)
Export the "Solicit Code" only (along with the Constituent's System Record ID, of course).
Relationships¶
Relationships are different in Civi and RE in the following significant ways:- Relationships don't have to have a relationship type.
- The A-B relationship doesn't have to have the same relationship type as B-A (e.g. if my relationship is "parent", the reciprocal relationship could be "son" or "daughter".
- Most importantly, related contacts need not have their own constituent record (though they can). If they don't have their own constituent record, they nevertheless have a record, just not one that's available from within the normal queries/lookups.
Attributes¶
Attributes are the RE equivalent of custom fields. However, unlike custom fields, they can also have a "date" value and a "comments" value. While this can be replicated in Civi via multi-record custom field groups, ideally the data is evaluated attribute by attribute.
Valuable information about the setup of the attributes is available in RE from Config > Attributes.
note: I'm currently evaluating the use of CiviCRM 4.5+'s "EntityRef" functionality to facilitate chained selects of OptionValue lists. If this is successful, that would facilitate creating a single multi-record custom field group (with the fields "Attribute", "Description", "Date", "Comments") that would work VERY similarly to how RE handles attributes.
Other constituent tables:¶
Skip these tables:- Spouse
- Gifts
- First Gift, Last gift, Largest Gift
- Actions
- First Action, Last Action
- Summary Information
Tables that Civi doesn't have a direct counterpart for¶
- Aliases (stores Maiden Name and d/b/a - unsure how to import into Civi just yet)
- Solicitor Goals - Can be found on an RE contact record on "Bio 1" tab by clicking "Details" next to "Is a Solicitor" checkbox. Don't know how to use them.
Open each CSV file in Excel or similar. Sort each field by ascending AND descending to see if any data is stored in that field. If every record has no data or the same data, delete it - it's not being tracked in the current system. If you see only one or two records with a particular field, they're also probably fine to go, but check with the client first.
Next, strip out all of the constituent information except for primary/foreign keys. I like to keep in First/Middle/Last name just for human readability though. So leave in those three fields, plus any field with the word "ID" in it. This is your base constituent info, and will be in every other export you do.
Now comes the fun part! Export each table, one at a time, by adding those fields to an export that already includes the base constituent info.
For one-to-many relationships, the system will ask you how many instances of the information to export. I default to 12, then look over the data to see how many are actually used, then re-export with a higher or lower number.
I also remove records that don't contain the relevant data. For instance, when exporting Solicit Codes, I sort by the first Solicit Code. Then I scroll down past the folks that have Solicit Codes to those who have none, and delete the rows for folks who have none.
Note that for simplicity's sake, RE contains many views of the tables that, if you export them all, you'll have redundant data. There's no need to export "First Gift", "Last Gift", or "Largest Gift" - simply export all gifts. Likewise for "Preferred Address".
When exporting one-to-many tables that themselves contain one-to-many tables (e.g. Addresses contains Phones), do NOT select 12 of each! That means you're exporting 144 phone numbers per record. First determine the maximum number of addresses being tracked, re-export with that number, THEN export with phone numbers. Also, it's reasonable to export with 5 phone numbers per address.
NOTE: Letters sent is incomplete, there's more than 12 letters to some folks!
GIFTS is related to constituent on the last column (Constituent System Record ID)
Code Tables/Option Groups/Option Values¶
If you're extracting data from the SQL back-end, you'll see that the RE equivalent to Civi option groups is "code tables". There's a function that handles lookups: In SQL Server Management Studio: database > Programmability > Scalar-valued Functions > dbo.GetTableEntryDescription and dbo.GetTableEntryDescSlim. This means that if, for instance, you use SQL Server Profiler to figure out the structure of the db, you won't find reference to the tables that store the option values - just a reference to their "lTableNumber". The relevant tables to check out are dbo.CODETABLES (comparable to civicrm_option_group), dbo.CODETABLEMAP and dbo.TABLEENTRIES (comparable to civicrm_option_value).
See also:
http://support.littlegreenlight.com/kb/migration/migrating-from-the-raisers-edge-to-lgl
Updated by Jon Goldberg over 10 years ago · 13 revisions
Also available in: PDF HTML TXT
Go to top