Hi Olav, 
until recently the "Show error preventing completion" was ignored by the 
registration form. To have it more uniform with how other rules relate to the 
registration form - and support the "First stage appears on registration page" 
better - this was changed. Now the rules are being run in the same way as other 
rules, and the errors is displayed preventing registration/enrollment. However, 
assuming the "First stage appears on registration page" option is not used, all 
the variables will have their default values. Numeric fields will be evaluated 
as 0 for example, and most other data types will be considered empty strings 
for evaluation purposes. The d2:hasValue('variableName') should evaluate to 
false.

Perhaps you can add a clause making sure the rule only triggers when you want? 
For example adding && d2:hasValue('variableName')

Another and perhaps more elegant option it to tell the rule to run only on a 
certain program stage. This has no UI at the moment and require you to edit 
through the API or directly in the database. If you assign the programStage 
attribute of the programRule, or populate the programstage column of the 
programrule database table, that particular rule will only run for the program 
stage you have assigned.

Markus

> 4. jan. 2017 kl. 14.34 skrev Olav Poppe <olav.po...@me.com>:
> 
> Hi devs, I have a tracker program with registration, with a few program rules 
> of the type «Show error preventing completion». The program has only one 
> stage, which is auto-generated and opened for data entry on registration. 
> 
> In the latest builds of 2.24 and 2.25, these rules are triggered as soon as I 
> click «Save and continue» on the registration page, and I get a message 
> «Please review and fix the following error(s) before registering:». However, 
> all the variables in the program rules relate to data elements in the program 
> stage and not TEI attributes, so I wouldn’t expect them to run until I try to 
> complete the program stage. As it is now, it is not possible to even get to 
> the program stage data entry.
> 
> Any ideas on whether this could be some sort of setting/configuration issue, 
> or if its a bug? I doesn’t seem to behave the same way on the demo instance 
> when I tried to add a similar rule there.
> 
> Regards
> Olav
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to     : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help   : https://help.launchpad.net/ListHelp

Reply via email to