Updating form question without losing previous data

Hi,

We rolled out a form in the field (uploaded on aggregate, downloaded on handsets, and submitted a significant number of forms data against it). Based on the data analysis, I am required to change one data field in one question. But as I understand, uploading the new XML would require me to delete the existing form from aggregate, which would subsequently delete the data submitted against the current form as well.

Is there a way to update the minor modifications to an existing form, in such a way that the existing submitted data is not lost? I need the data to stay in the dashboard, so downloading CSV and/or using briefcase to preserve the data are not viable options.

Thanks,
Saad

Hi Saad,

Once you will modify your form, as you understand, the data you will collect will be stored under that new form. However, you do not need to delete the previous form, instead, you may change the name of the new form. For example, if you had form "Data collection" name the revised form "Data collection 1.1". That's how I usually do. Additionally, on your Aggregate restrict the previous form by unchecking "Downloadable" and "Accept Submissions" options.

Thanks,
Imran

1 Like

What kind of change do you need to make? You can make changes that don't involve adding or removing a question without needing to replace the existing form. The kinds of changes you can make are:

  • changing the text or translation of a label
  • changing validations, calculations, relevants
  • changing options for a select or select1

Questions can't change type and the form title and ID have to stay the same. If that's the kind of change you want to make, you can update the version and re-upload the form. If you're using XLSForm, you can read about the version field and changing it here.

If you need to make a deeper change, I also do what @A.N.M_AL-IMRAN describes.

EDIT: https://docs.opendatakit.org/form-update/ now describes the update process in detail.

2 Likes

Thanks. So what you are saying is that, if I upload the new XML for an existing form with minor changes (I will test your mentioned definitions for this), Aggregate will automatically sense that the existing form can be upgraded without discarding the previous data. Am I right?

That is correct, @Saad. It will also require you to have an updated version field.

Trying it out on a smaller form to make sure you understand the behavior and to confirm things are safe is a fantastic idea!

1 Like

You need to be very clear you should give the order to all your data collector so they can delete the old form from there device and do work only on new form.
And you can export 2 CSV file(old form CSV and new form CSV) and then next time when you will do the analysis you can merge these 2 CSV files in your data analysis tool.

Narendra

1 Like

It's very useful. I just want to add a bit here. If you change the order of questions, it may be major changes that require a new form ID.

1 Like

I missed this thread...
I just wanted to say that you don't even need to use version numbers as long as you need to change something only in media files or csv files. Then you can just upload exactly the same form with updated media or csv files. But if your changes require changes in a form (xml file) too, then using version number is the best solution.

Regards,
Grzegorz

1 Like

Hi there :slight_smile:

I need to change the text of one label in my 'choices' tab: LiberiadatacollectionformJ.xls (359 KB)

Can I do this, change the version, delete the old form from the server and re-upload to the server without losing any data collected using the previous form?

Many thanks,

Fran

You should be able to just change the label and the version and reupload!

If you delete the form, the existing data will also be deleted so please be careful with that.