Allow create, but prevent change

In general, how would you allow user to set a field’s value at at record creation, but to not allow them to then change it?

Example, you want general user to not be able to change the customer on a sales order.
When they create the sales order, fine, but not to open a sales order and change the customer.

I was trying this through a BPM.

Might be able to do something with a BPM on SalesOrder.ChangeSoldTo?
Ref differences in the screenshots of simple PreProcess messageboxes below…
e.g. Condition/Actions based on RowMod “A” vs. “U”?

image

1 Like

This sort of thing gets tricky. As Bruce demo’s, BPMs that distinguish between RowMod = A vs U give you a way to do this. But what if someone makes an honest mistake and needs to change the field after record creation? The BPM blocks them from correcting it. So maybe you make a security group and rework the BPM so that some super users can change the field all the time. Let’s say that works for you, great. But now you’ve just created maintenance overhead and new business processes… You really have to weigh if that’s worth it compared to the alternative – which might just be trusting/training users not to change it, and scolding if they do (assuming you track the field in the change log).

3 Likes

yes, I’m with you, this whole thing is silly. I’m not a fan of requests to block activity with code when training and discipline should prevent people from doing it…

Thanks Bruce. I will check this method out.

Better option would be to turn on change logs. Perhaps email an email alert if the field is changed.

1 Like

Have you tried doing this in a ui customization and using a row rule based on the orderhed.rowmod?