Hi Commcare family ! hope everyone is safe
im trying to add a hidden value so that my app can count number of cases submitted and add value +1 every time a case is submitted by the same user
i’ve tried the below Xpath expressions:
coalesce(#case/visit_count, 0) + 1 , to counting visits , i gave visit_count a value ,saved visit_count as a property however i was presented with the following error : Validation Error: Problem with bind for /data/count contains invalid calculate expression
i also tried the count expression : count(instance(“casedb”)/casedb/case[index/parent = current()/@case_id][@status = “open”]) and i got a similar error as above
is there an example with Xpath that i can apply?
try this out perhaps
count(instance(‘casedb’)/casedb/case[index/parent = instance(‘commcaresession’)/session/data/case_id][@status = ‘open’])
however, you should know that this will count the number of cases that are currently on the device that the code is running on. things like synchronization and locations/organizational hierarchy can affect what cases get passed down to the devices based on the username. this is of course more problematic in case you’re using case sharing.
in general, you want to pay attention to which cases are on the device is you’re using the count as a part of the ID. there are cases where some devices submitting the same or similar data can generate the same ID
Hi Mazz - thanks for your reply
im not getting any more error messages but the hidden value keeps counting all the cases with a zero. i tried different testing approaches but it returns the same value every time : 0
Regards, stay safe
yeah that might be the case if it’s not a child case of the case you’re already on. meaning, if you’re creating cases that are unrelated to this one, it won’t count them. and if they are, for the count to change, you have to submit your form to create those cases before it can count them.
so ideally, you’ll count whatever’s in the casedb instance, and then add the number of cases that WILL be created