Question

Photo of Ken Roach

1

How import families and individuals?

I am moving to RockRMS from another ChMS.  I have tables of family and individual data.  There are some unique fields that we set up in the other system. 

Will I be able to import my data into RockRMS?  I don't really want to have to re-enter all my data.  Does this have to be done through the backend using SQL tools?  I can't see any mention of this in the docs. Thanks.

 

  • Photo of David Stevens

    4

    Ken,

    I'm working on an import app for FellowshipOne data, but since every ChMS is different we'll really lean on the Rock community to generate some of those imports.

    You can definitely import data using SQL tools; if you're familiar with SQL, family and individual data would be straightforward to import.  Also, you can create unique fields on person or family data using the Attributes section of Rock.

    Edit: I've released a beta of the import app, available here: http://github.com/NewSpring/Excavator

    Other developers can extend this app to import other database models; just follow the instructions in the Readme page.

  • Photo of Derek Mangrum

    3

    I know this has been a topic of conversation. Under 'Admin Tools | Power Tools', there is an option to add Sample Data to your RockRMS installation. So, there is already a way to programmatically add data to Rock. I can see a tool that gives you guidance on dataset format and then has the ability to target that dataset for import. I have a friend at a church that keeps person data in Outlook Contacts folders... that is their ChMS as of now! So, not only will RockRMS be a huge improvement for them, but the ability to import this data would make migration much easier.

  • Photo of David Stevens

    1

    How would I set the family and person guid values though?

    If your data is in SQL you can use NEWID() to create a new Guid for each row of data.  That's not particulary user-friendly, so we could add some code to that SampleData block to generate new Guid's on the fly.  I'll create an issue for that.

    David, how far away are you on the FellowshipOne data import app?  Could this be copied and modified for other ChMSes?

    I've got most of the F1 maps complete but I'm still polishing a couple things on the UI -- making sure you can cancel/recover from a bad import, logging info, etc.  

    The architecture can definitely be used to support other ChMSes.  There's a base class you'd need to inherit from and then provide the data maps.  I'll post the link here either today or tomorrow.

  • Photo of David Stevens

    1

    DJ, 

    It looks like the SampleData block uses an HTTP client to download that file.  If you're using a web reference (http://), double-check the permissions on that file since you uploaded it with FTP.  If you're using a local drive path/filename, you'll need to change it to the http reference.

  • Photo of Ken Roach

    0

    Thanks, Nick and David.  Being able to import data is the only thing stopping us from using Rock.  (We are moving over from ConnectionPower.) 

    I love the idea of adapting the SampleData block import suggested by Nick.  Can this be done?  I could then set up our unique attributes in Rock, convert our speadsheet data to an XML file, and then import. 

    How would I set the family and person guid values though?

    David, how far away are you on the FellowshipOne data import app?  Could this be copied and modified for other ChMSes?

     

  • Photo of DJ Grick

    0

    Ken, 

    I have been experiementing with importing my old database as sample data. I have keep coming up with an error right at the end of the process. I will post what I did so far and maybe it will get you to the point you can get it figured out. 

     

    I first downloaded Rock's sample data xml.(http://storage.rockrms.com/sampledata/sampledata.xml). I then exported the data from my currently CHMS and combined them matching the attributes to the closest one. 

    Then I saved the file as sampledata.xml and ftp'ed in onto the webroot of my server. 

    After looking around for a time in the UI of ROCK I gave up and looked at the block code to figure out how ROCK knows where the sample data is. I FTP'ed in and went to the following folder: webroot>Blocks>Examples>SampleData.ascx.cs

    Sorry I don't have a line number. I am only dabble with code occasionally and tend to just use wordpad...but I changed the following line of code the point my my xml file. 

            private static string _xmlFileUrl = "http://storage.rockrms.com/sampledata/sampledata.xml";

    Then went back into the UI>Admin Took>Powertools>Sample Data

    When i clicked load i got the following error:

    Oops! That wasn't supposed to happen. The error was:
    Object reference not set to an instance of an object.

    at RockWeb.Blocks.Examples.SampleData.<>c__DisplayClass1. b__0()
    at Rock.Data.RockTransactionScope.WrapTransaction(Action action)
    at RockWeb.Blocks.Examples.SampleData.ProcessXml(String sampleXmlFile)
    at RockWeb.Blocks.Examples.SampleData.bbtnLoadData_Click(Object sender, EventArgs e)

    I should note that I had gotten this error trying to load the original sample data also. 

    I don't know if this helps at all. Hope it does. If anyone can give me tips from here I am all ears (well eyes since this is text). 

     

  • Photo of Austin Barnett

    0

    DJ, did you ever get that working changing out the XML file?