My requirement is that when Field1 is changed then Field2(non-editable) should be changed and subsequently the field3 should be changed depending on Field2 value..
I am trying to do this with UI rules. When field1 is changed then first set of UI rules (On Field Change) are run and Field2 changes accordingly, but the second set of UI rules are not working resulting i.e. the Field3 is not changed after the changes in FIeld2. However the Field3 changes are reflected on Page Load.
Let me know if there is any other way of doing this?
Celil is right that you will have to work your rules to update fields 2 and 3 based on the field 1 change. The UI Rules don't cascade like you are wanting them to. The first rule that changes field 2 based on the value of field 1 works as expected, but the changing is done through back end coding. The UI rules depend on user interaction to cause them to trigger. The change in field 2 wasn't directly changed by a user action, so no On Field Change trigger would fire.
True. in fact that is the case with almost all PPM Rules.
So, just like Celil mentioned, we also have DB triggers for taking care of some of those kinds of schenarios.
And for some special cases, you could also create Rule based on Status and Page Load... so the next time page loads, it can utilize the second field value and update the third field. But that may not be practical for most of the situations.
We cannot make the Field3 change according to the filed1 because the Rule1 is SQL logic that changes the Field2 according to Field1 changes. And Rule2 is UI Rule that makes the Field3 mandatory depending on Field2 value.
And we cannot also go for DB Trigger as the trigger would only execute when user saves/progresses the request. We want it dynamic..
This doesn't make it impossible. It just means that you have more Rules. You would have one rule to set the value of field 2 and another to set visibility of field 3. Both Rules would trigger on Field 1 change.