We were trying to trying change the status of Quote and Quote Item through Asynchronous workflow. We queried for quote made it active and then changed the status to ‘Priced’ and then we had to change the status of Quote Item to ‘Priced’ and then again make the quote inactive.
After changing the Quote status to ‘Priced’ when we tried to change the status of Quote Item to ‘Priced’ we received an error
‘Status is a read only field’
There was no Field Read Only Field: [fieldname] or BC Read Only Field which could result in making that record or that field read only 🙁 .
After struggling for few hours we saw another user property called ‘Parent Read Only Field’ which had a value something like this
Parent Read Only Field : Quote.Status Lock
Status Lock was a calculated field in Quote which had a value
IIF([status] = “Priced”,”Y”,”N”)
After going through bookshelf we found out that this user property will make the child record read only based on the value in Parent Record.
To overcome this problem we changed the quote item status first and then the quote status ( 🙂 Pretty Simple Isn’t it)
Few noteworthy things about this user property are:
- The Field that is being evaluated should have its link specification property set to true otherwise it is not going to work
- The syntax of the value of this user property should be Buscomp.Field where buscomp is the name of the parent buscomp and Field is the name of the field that should be evaluated.
- The business component which contains the field that is to be evaluated should be the parent or grandparent by way of link or series of link relationships