Last Saved Value, Remembering Previously Filled Last Saved Value Errors

1. What is the problem? Be very detailed.
I am preparing a survey where individuals collect data by themselves about their environment over a period of 7 days. So each day they should walk around answering questions and capturing images/videos as well as mapping various features as they undertake their daily activities. So it is same questionnaire that will be used but capturing data of different locations on a daily basis.
On their first data collection day, they will fill all their demographic information on ODK collect before walking around to capture the other mapping data about their environment. To reduce monotony , I don't want them to repeat entering their demographic information daily. I want the information captured on their demographics on the first day of data collection to automatically populate the form without their need for entering it again.
I have used the default field entering values from last saved record (see my XLSform) so it can remember their last filled value for the questions. The name, default, required columns read as below and the whole XLS form is also attached. But I continue to have errors while up[loading to Aggregate server

Name
age
dob
gender
type_prof
ethnicity
resp_initials

Default
${last-saved#age}
${last-saved#dob}
${last-saved#gender}
${last-saved#type_prof}
${last-saved#ethnicity}
${last-saved#resp_initials}

Required
yes
yes
yes
yes
yes
yes

2. What app or server are you using and on what device and operating system? Include version numbers.

I am doing this on XLSform which has been converted to XML and validated with ODK validate and while uploading on the aggregate server on Google App Engine and I have the error message so I broke my forms down into chunks

3. What you have you tried to fix the problem?
I have read around the ODK forum, there have been various propositions, and I kind of got confused so I followed the naming convention here using > values from the last saved record e.g ${last-saved#age}
https://docs.opendatakit.org/form-logic/#values-from-the-last-saved-record
I then broke down my XLSform into chunks and discovered my errors where coming from this section of my form which I have attached giving me the error below but am unsure where I have made the mistake in my syntax/form

"Error: Problem with JavaRosa Parsing Form: org.opendatakit.aggregate.exception.ODKIncompleteSubmissionData: Javarosa failed to construct a FormDef. Is this an XForm definition?"

4. What steps can we take to reproduce the problem?
Please have a look at my syntaxes particularly around the default, required columns and others which I may be missing something. I have attached my form

5. Anything else we should know or have? If you have a test form or screenshots or logs, attach below.

The XLSform is attached. Thank you in advance for your help.
SProjectPart5Test.xlsx (27.3 KB)

Hi @Map_Me_So_Much,

What version of XLSForm offline are you using? Please use the correct version or use the online one, https://opendatakit.org/xlsform/, then download the xform from there.

1 Like

I already did that but it doesn't work, thanks

What version of Aggregate are you running? To use dynamic defaults, you will need Aggregate v2.0.5 if you run Aggregate anywhere other than AppEngine or v1.7.4 if you use AppEngine.

Looking at your form definition made me wonder whether we had specifically verified dynamic defaults in field lists and in fact it looks like they may not work. I haven't had a chance to look more deeply into it yet but I wanted to let you know that you may run into an issue in Collect once you get Aggregate updated. I'll update this thread once I know more. I'm losing my mind, this works great! The defaults you described in your original post are just right.

An alternative form design would be to break this into two forms: one for intake and one for daily reports. The daily report form could start with a unique identifier that was collected in the intake form like a phone number. A dynamic default could be used to pre-populate just that identifier for each new record. This would avoid having several repeated questions.

1 Like

Hello and thank you, I am using v1.7.2 on App Engine. Could that be the problem? I would prefer to have this together, unless its absolutely not possible. Someone suggested to use this here, am not sure how that works too.

Unfortunately that version will not work with dynamic defaults which are a new feature.

You don’t need to use XLSForm offline. The online version is the latest.

2 Likes