Thanks, Markus. Will assign the programStage attribute to the programrule then, 
as the rules are in fact just checking that one in a set of data elements has a 
value, e.g. a d2:hasValue clause wouldn’t work.

Olav




> 4. jan. 2017 kl. 14.52 skrev Markus Bekken <markus.bek...@gmail.com>:
> 
> 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 
>> <mailto: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 
>> <https://launchpad.net/~dhis2-devs>
>> Post to     : dhis2-devs@lists.launchpad.net 
>> <mailto:dhis2-devs@lists.launchpad.net>
>> Unsubscribe : https://launchpad.net/~dhis2-devs 
>> <https://launchpad.net/~dhis2-devs>
>> More help   : https://help.launchpad.net/ListHelp 
>> <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