Commit returned false with validation message

3
I have an edit form which I'm trying to save, I try to save my object and the before commit returns false with validation messages. After I press Save again without correcting any/all the attributes that had validation messages, it won't even try to commit again. Is this working as intended? Do validation messages prevent a form from going into Before Commit? I ask this because my form requires some fields to be filled in based on a reference selector at the bottom. If it is set to true, it requires the fields, if set to false it doesn't need them. If I first try to commit the form without any fields filled in and the reference selector on true, it throws the validation messages on attributes like Firstname etc. If I then leave this empty but change the reference selector to false, the Save button simply does nothing. It doesn't even go into the Before Commit microflow. Edit2: My problem was that after I ended the BCo of my object on false and set some validation messages based on the boolean, I couldn't save it after changing the boolean to false. It simply doesn't even try to start the BCo.
asked
1 answers
4

The commit isn't executed if a before commit action returns false. I guess you've a before commit action that validates the object and send validation messages. But I also guess you let return your microflow false in case of errors. That's maybe the reason that the object isn't committed. So if you want to commit the object even in case of validation errors, your before commit action have to return 'true'.

The other possibility is that you don't do the validation by a before commit action but that you use data validation on attribute level in your metamodel. Then it's right that the object can't be committed in case of errors. That's default behavior for data protection, and you can't change that. If you don't want that use a before commit action.

Edit: I see your changed question. The client always send a change and commit request to the server when you press the save button even if nothing is changed. So your BC-action always have to be executed when pressing the save button.

But there is a know issue with data validation feedback, maybe that's your problem:

  1. the client puts a message below an attribute
  2. you change the attribute's value
  3. without tabbing out of the field you directly press the save button.

In this case there is a possibility that you miss click the save button, because it moves up for a short time (because the client hides the data validation message). You can try if this is also your problem by applying a temporary style definition to the save button: "height: 200px;". Then miss clicking is very hard ;)

answered