Looking for a trigger.
We have parts that we don’t want Sales to be able to put on a Sales Order because they are Non-Sellable.
Obviously a BPM to look for a trigger and block allowing a Non-Sellable part to be added to a SO line.
Looking at the Part Attributes, I see checkboxes for Compliant, Restricted, Safety Item, Gift Card.
I was thinking of using the “Restricted” checkbox as my trigger, and don’t see that it integrates or affects Restricted Substances function, but can’t find any real detailed explanation of these fields other than Attributes are used on PCID.
Anyone have a better description or better trigger for not allowing a part to be put on a Sales Order? Product Group is not a good fit for us as this trigger either.
I think RunOut will allow inventory to be consumed so it would need to be zero, and maybe just on Jobs, but I will test that, thanks.
We will have alternate parts, but that won’t prevent putting this on a SO line unfortunatly.
Circling back to this mod finally, lol
BPM Holds do sound like a good way to do this.
I see from past posts you have used them?
I created a Hold Type and attached to several parts with Right-Click and attach BPM Hold.
Now, for the life of me I cannot find where I can write a query to show what Parts have holds. Not Part.OnHold filed, the actually Hold Type ID I assigned and attached to the part.
I see some ice.BpHoldAttachHist etc. tables but cannot query these via a BAQ.
Yes, also going into HoldType Maintenance you can see the Hold History, but testing out pulling the PartNum from the SysRowID match currently. Working on it… lol
Using BPM Hold on Parts. Verified part HAS the hold attached.
Tracing what BO Method fires when new Order Line is entered is: Erp.BO.SalesOrder.ChangePartNumMaster
Attached BPM to the Method, with “The Hold of the Specified Type is attached to the Business Object” and setting it to my Hold Type and attached to ERP.Part.
Still, the BPM Fires but always False. It does not see the Hold for some reason. I am missing some step here, but can’t figure it out.
Any ideas on why it does not trigger on the BPM Hold?
Tried Pre-Processing which is where you would stop an action, Post Processing, UPDATE Method, and even looked at DataDirective on OrderDtl.PartNum field, but does not have the option for Hold Type testing.
Yes, I did that first. I have (3) Test Part Numbers and verified the hold via BAQ and the Part shows the HOLDS Tag.
Strange it won’t pick it up in the BPM.
Theoretically you can rewrite it as query that creates join to holds table [Ice].[BpHoldAttachment] and on SysRowId and checks if something is returned
The only difference that I see is that to use the Part BO, you have to go one more level deep in the select BO. See screen shot below. The Customer one is under via OrderHed (it’s the very last one at the bottom). Where Part you have to go via OrderHed → via OrderDtl to use Part.
Yes, that is what I saw also. Interestingly when you select PART, Every other tree in there also has the PART Selected, but kind of makes sense.
Seems like it should work fine, but always fails validation.
Thanks for verifying I wasn’t missing something there, lol