Phantom BOM - BPM warning message

What is the best way to trigger a message when entering a Phantom part on an order line to to verify on the Part table Phantom BOM is true? When I select the Condition widget, it does not have the Part table so which widget would I use to make the condition statement to look at the Part table?

Or in general, if we ever want to do a Condition on a table not referenced in the Directive Business Object, what is the best approach?

You should be able to pick the condition that uses the designed query, or custom code to do a linq query.

1 Like

I added the Part table with a criteria PhantomBOM = true but it is trigger on all parts. My number of rows is set at the default ‘is more or equal to 1’. Am I missing something where it validates against the Part being entered if it is a PhnatomBOM?

did you join on ttOrderDtl . If not you’re just looking at the Part table to see if any parts are phantoms.

Yeah, you have to cut it down to the part in the TT record. However, there is a bug where if you join to the TT table, it can cause a major slow down. So what you should do, is use the TT table to populate a variable, then in the query, filter the table by that variable.

Check out this thread on that information.

2 Likes

If we also wanted to disable the Make Direct checkbox from defaulting true, I tried it as a pre and post but using Pre, it re-enables it and using Post, it doesn’t update it once disabled. How do we disable the make direct from defaulting true?

You really should just fix your part record. If the part record isn’t set to buy direct, it won’t do that.

I believe by designed Phantom BOM and parts on the fly are make direct which defaults in as make direct and aren’t able to set it up on the part record.

You can’t stock Phantom parts, so it has to be make direct.

To my knowledge phantom part by definition does not exist as such. It is only a placeholder to be placed in BOMs. It has no operation. When the BOM with phantom part is pulled into a job, it pulls the material in the phantom part BOM on the job.

You can have operations on phantom boms. Is just collapses them and puts them on the next assembly up. You actually need that for Backflush, because if you had materials not related to an operation, you can’t backflush

Thanks @Banderson for the clarification. We do not put operations on our phantom parts. It works since it is subassembly of another subassembly and uses the operation on that to backflush. Maybe that is why we never noticed it. Thanks again.

It defaults phantom parts as make direct but you can manually uncheck it so trying to see if there is a way to uncheck it using a post salesorder.masterupdate process but it just set it but doesn’t save it to the database.

Right, but if it’s not make direct, and you can’t have it in inventory, how could you ever fulfill the order?

I believe it’s “sample” parts that neither gets stocked or sent to the customer directly?

I’m not sure how that would work. I don’t know if Phantom parts is what you want. But I would have to know more about what the specific business use case is to help you any further.