Some time back, I asked the following question:
This has always remained a mystery...
Now today, I stumbled upon this behavior again but from a total different context! (being from the perspective of test coverage)
So to repeat what I have:
- multipicklist "available selling / buying" on the product object which has values "Selling", "Buying" and "Both"
- picklist "selling or buying" on opportunity line item which has the same values
- validationrule that will check that the opportunity line item that is being added has a "selling or buying" selection that is in the list of it's product's "available selling / buying" list
Through the UI, this logic / validation rule works perfect.
Through flows, the validationrule fails because it can't seem to get the value from the "available selling / buying" field on product. (see linked question)
Also from apex test coverage, I have this same issue! This is überstrange... I even did an assertEquals on this multipicklist on the product after inserting it to make sure that I correctly set it's value which it did. But still, when inserting the opportunitylines, the validationrule would fail and the debuglogs would say that the multipicklist (available buying / selling) of the linked product is empty.
This really looks like a bug to me...