ECOMtl.UOMCode doesn't match Part.IUM?

, ,

I’m trying to do a very simple thing, but it just won’t work.

My goal is to force people building BOMs to use our Part.IUM when specifying Qty / Parent. Otherwise, we get errors when processing Material Queues.

So I’ve put a pre-processing BPM on EngWorkBench.Update, to check whether the ttECOMtl.UOMCode field is equal to Part.IUM for the corresponding part.

This screenshot shows pretty much the whole story: A straight-forward BPM with two conditions. The second condition is a query to check the selected UOMCode. This should return one row if it matches Part.IUM and no rows if it’s different.

But it doesn’t work. If I delete the third clause in the JOIN, I get one row every time, but with the third clause as shown in the screen shot, I get zero rows every time. I feel like this may be a string format problem, but they’re both nvarchar, x(6), or System.string, depending where I look. When I display ttECOMtl.UOMCode for one particular material, it’s “LB”, and the Part.IUM is also “LB”, but somehow they’re not equal.

FWIW, I’m on 10.2.700. Anybody know what I’m doing wrong here?

OK I figured it out. I needed to user ttECOMtl.MtlPartNum instead of ttECOMtl.PartNum. That took WAY longer than it should have…