SetOccLabel Function Erorr in v8

Discussions about creating CAPI applications to run on Android devices
Iulian
Posts: 18
Joined: February 2nd, 2022, 5:12 am

SetOccLabel Function Erorr in v8

Post by Iulian »

Dear Dev Team,

It seems that the SetOccLabel function does not work well in the latest version of CSEntry (v8.0.1) on the tablet. An application build in v7.7 crashes the app each time it needs to update the occurrence label for a group.

It works on the CSEntry desktop app, though, and it used to work in version 7 on tablet too.

Attached is a sample of the questionnaire with the error at the end if you could take a look.

Many thanks,
Iulian
Attachments
SetOccLabelERORR.zip
Source code
(68.23 KiB) Downloaded 480 times
Gregory Martin
Posts: 1851
Joined: December 5th, 2011, 11:27 pm
Location: Washington, DC

Re: SetOccLabel Function Erorr in v8

Post by Gregory Martin »

Thanks for reporting this issue. It occurs on Android when an occurrence label is defined for both a repeating record and a repeating item. If only one of those has an occurrence label, it does not crash.

We fixed the problem and are updating Google Play with a new version. It should be release later today, or within the next few days, and then the problem will go away.

In the meantime, the only way to avoid the crash is to use only one occurrence label.
Iulian
Posts: 18
Joined: February 2nd, 2022, 5:12 am

Re: SetOccLabel Function Erorr in v8

Post by Iulian »

Got it, thanks for your super prompt reaction!
Iulian
Posts: 18
Joined: February 2nd, 2022, 5:12 am

Re: SetOccLabel Function Erorr in v8

Post by Iulian »

Hi Gregory,

It seems that the issue still persists even after I've updated to the latest version from Play Store - v8.0.1 Updated on Jun 24, 2024.

Under "About CSEntry" it says that the "Release Date: 19 Mar 2024", though despite a complete reinstall.

Also, another strange behavior with imbedded repeating rosters is that it tries to skip them. We've added input validation logic (or the default "missing value" error message is triggered) as a workaround, but it would be great if it can be fixed in a future release as we are building more and more complex questionnaires where this feature is essential.

Many thanks,
Iulian
Last edited by Iulian on August 16th, 2024, 4:38 am, edited 1 time in total.
Gregory Martin
Posts: 1851
Joined: December 5th, 2011, 11:27 pm
Location: Washington, DC

Re: SetOccLabel Function Erorr in v8

Post by Gregory Martin »

Sorry, there was confusion when we created the release two weeks ago and the fix for your issue did not make it into the build. We are creating a new one now that will fix the problem. The version will still appear as 8.0.1, but you will be able to tell in Google Play that is has been updated (when the date says July).

Regarding the other issue, if you can share an example of the problem, we can look into it.
Iulian
Posts: 18
Joined: February 2nd, 2022, 5:12 am

Re: SetOccLabel Function Erorr in v8

Post by Iulian »

Thanks Gregory! I confirm it working in the latest CSEntry update.

For the second issue, please find attached a subset of our application. In the first and last instance of the nested rosters the question is activated (as it's supposed), but the second roster is attempted to be skipped and it throws in a missing value error. It must be related to some other variables or something - because as I have deleted questions (to produce a simplified version for you to see), the first roster started working.. but I cannot figure out what it is :roll:
Attachments
NestedRostersBug.zip
(96.95 KiB) Downloaded 458 times
justinlakier
Posts: 223
Joined: November 21st, 2022, 4:41 pm

Re: SetOccLabel Function Erorr in v8

Post by justinlakier »

Hello,

I am not getting the 2nd roster question skipped when I opened the application. Could you provide the steps on how to reproduce the error and what should be occurring?

Thank you,
Justin
Iulian
Posts: 18
Joined: February 2nd, 2022, 5:12 am

Re: SetOccLabel Function Erorr in v8

Post by Iulian »

Hi Justin,

Thanks for looking into it. I guess you are checking an old compiled version (which was provided with the package). Could you recompile or better run the app from the .ent file?

The error message looks like in the attached screenshot and it popped up after input to question OPS_2. In this example, the subsequent questions have not been triggered (based on the ask if conditions), but the error is encountered when it tries to skip the question in the roster OPS_6000. Once the error message is acknowledged (with OK), it can be filled in and it allows the interviewer to proceed.

Screenshot 2024-07-12 093553.jpg
Screenshot 2024-07-12 093553.jpg (239.18 KiB) Viewed 9476 times

I hope this provides enough details.

Thanks,
Iulian
Iulian
Posts: 18
Joined: February 2nd, 2022, 5:12 am

Re: SetOccLabel Function Erorr in v8

Post by Iulian »

Hi Justin,

Just following up if you had a chance to look into this. I can provide more details if needed.

Best regards,
Iulian
Gregory Martin
Posts: 1851
Joined: December 5th, 2011, 11:27 pm
Location: Washington, DC

Re: SetOccLabel Function Erorr in v8

Post by Gregory Martin »

Sorry for the delayed response. CSPro sometimes has bugs related to using multiply-occurring items on multiply-occurring records. At some point we intend to revisit the code related to this, which is now several decades old, but for now we generally advise against these multiple levels of repetition, as it's fairly uncommon so there are some bugs that haven't been fixed yet.

That said, your application uses this approach, so I have a workaround that seems to work given my testing:

1) Add a dummy dictionary item to TIMEUSE_REC, e.g., OPS_6_DUMMY.
2) Add this to your TIMEUSE_REC000 form, after OPS_4 and before OPS_6_DUMMY.
3) Add this code:
PROC OPS_6_DUMMY

preproc

   
OPS_6_DUMMY = 1;
    protect(OPS_6_DUMMY, true);
The problem is that the ask if skip from OPS_4 doesn't properly end when it gets to OPS_6000 (the group for the repeating item on a repeating record). This workaround is to insert a singly-occurring item before OPS_6000, which will be properly processed by the ask if skip. The logic makes that field protected though, so the user will not have to enter anything in that field.

In my testing, this works 100% of the time, but if it doesn't work for you, let me know and we'll investigate other workarounds.
Post Reply