By default, CommCare offers a few features to help manage forms on the device. Since some of these features are not visible until discovered, and thus somewhat confusing, this page lays out the basics of how forms are managed.
Currently Incomplete and Saved form management are disabled by default. You can enable them by going to your Application Settings on CommCare HQ, selecting the Advanced Settings tab and choosing "enable" for each feature under the Android Settings section.
When the features are disabled, incomplete and saved form records are not created, and all of the user interface options pertaining to them will be removed from the CommCare application's home screen.
Please read the Feature Constraints section before using Incomplete Forms for your project workflows.
Overview of incomplete forms
Incomplete forms are forms that have been started but not finished. This could happen, for example, if the client or user is suddenly called away but plans to finish the form later.
Instead of losing the information the user has already filled out, the user can save the form to the phone as "incomplete" and return to it at any time.
Saving a form as incomplete
There are 2 ways you can save a form as incomplete:
- Pressing the back button during form entry (to cancel entry and return to CommCare) results in a popup asking whether changes to the form should be saved. If the user chooses to save the changes, the current form will be saved and marked as incomplete.
- During form entry, if the user brings up the soft menu and chooses Save Form, the form will be saved in its current form as incomplete.
Once you have saved the form as incomplete, it will be saved in an encrypted format to the device's storage.
NOTE: Incomplete forms on Web Apps are deleted automatically after 7 days.
Continuing an incomplete form
There are two ways to resume entry of an incomplete form
- From the CommCare home screen, select Incomplete under the Form Records heading, navigate to the incomplete form, and select it.
- If the form is associated with a case, then the next time the user selects that same case and form they will have the option to resume the incomplete form. A dialog box will ask whether the user wants to resume the form which that had previously started and saved as incomplete. From here, the user can resume entry, start a new form, or delete the incomplete form (and start a new form).
If you choose to continue an incomplete form, the original incomplete form you saved will remain saved on the phone unless you save it again or complete the form. If a user pressed the back button and chooses to not save their changes, for instance, the original incomplete form remains as it was before form entry. If the user presses Save Form on the menu, however, it will update the existing saved form with the new version.
Saved Incomplete Forms have the following 2 major structural constraints that you should be aware of.
- Saved Incomplete Forms are not synced with CommCareHQ and are only stored locally on the mobile device
- Consequence: If you lose access to your mobile device, say, it breaks or is lost, Incomplete Forms saved on the device will not be recoverable.
- Consequence: If you uninstall an application with incomplete forms, Incomplete Forms saved on the device will not be recoverable.
- Saved Incomplete Forms are not updated when you make updates to your app or the data the incomplete forms rely on
Consequence #1: If a form is saved as incomplete, and certain app updates like changes to the form's structure or changes to the assets used by the form (say, images or audio) are made, it can prevent mobile workers from resuming the incomplete form.
Consequence #2: If a form is saved as incomplete, and then resumed after data (say, case properties) the form relies on has changed, the form will have undefined/unpredictable behavior
Removing an incomplete form
If an incomplete form is stale and should be removed, this can be done from either of the 2 screens described in the steps to continue the form. To remove an incomplete form from the Incomplete Forms screen, you can long-click a form and then choose Delete Record
Considerations for Using Incomplete Forms
Incomplete forms are most useful for projects where people are frequently interrupted but able to resume work relatively quickly.
We strongly recommend that incomplete forms only be enabled for advanced users and only when truly required for the project.
Below are some recommendations if using incomplete forms:
- It is important not to leave incomplete forms open for a long time, because this makes it more likely that case data will be changed before the form is actually submitted. For example, if you have an incomplete form about a particular case, and then fill out another form that updates the same case prior to finishing the incomplete form, your case data may not reflect the most recent information.
- In addition if a project uses incomplete forms, the Form Completion Time report will likely not be accurate, as uses the total time from when the form was first opened until the time when the form was closed. If an incomplete form is left open for a long time this will throw off the average used in this report and it will appear that users are taking a very long time to complete forms.
- If you are using the User Case feature to do something like assign unique IDs, please be aware that for unique IDs to be assigned correctly, the user must complete one registration form before starting the next. In the case of simultaneous incomplete forms, the same value will be loaded in those forms, resulting in duplicate IDs.
- Incomplete forms on Web Apps are deleted automatically after 7 days.
Once a form has been entered and processed by CommCare it is stored in an encrypted format to be sent to the server as soon as a connection is available. These unsent forms aren't available to view individually, but the number of unsent forms can be checked by navigating to the CommCare home screen and reading the message underneath the Sync with Server button. If that message does not contain a notification about unsent forms, all forms have been sent.
Overview of saved forms
Once a form has been completed CommCare, it is then saved on the device in an encrypted format so it can be reviewed in a read only format in the future. Forms remain saved on the phone for a while even after they have been sent to the server. You can choose how long they stay on the phone by using the setting Days for Review in the Android Settings section of the Application Settings.
Forms are only saved to the device in this way after they have been processed and submitted to the server.
Accessing saved forms
You can view these forms by navigating to the Saved button under the Form Records heading on the home screen. The forms can be selected and viewed in a read only format.
Removing saved forms
If necessary the records can manually be removed from the device's local storage in the same manner as Incomplete forms.
Considerations for Using Saved Forms
Saved forms are useful in projects where users want to be able to refer back to forms that they recently submitted, or a supervisor wants to be able to spot-check recent submissions. This can be a useful part of workflow, but it is important to note that if the app is reinstalled or a user logs into another device the saved forms will not be restored; they are specific to the device from which they were submitted. Therefore workflows which rely on saved forms are not recommended. Submitted forms are always available on CommCareHQ.