Part Attribute field question

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.

Thanks,
George Hicks

1 Like

Have you tried a combination of “Run Out” and Part Alternates?

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.

Good suggestions, thanks.
George

Can you use RunOut as the trigger for your BPM? :thinking:

OR go nuclear and mark the Part Inactive. :wink:

Have you looked into using a BPM Hold?

1 Like

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.

Any thoughts?

TIA

Hey George,

Do you see Ice.BpHoldAttachment? That seems to show the current holds for me. (Nothing to do with documents apparently.)

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

Got it…Thanks!
Ice.BpHoldAttachment.HoldSysRowID = Part.SysRowID

Output PartNum and Desc.

3 Likes

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.

Maybe display the Part number to make sure it is the one you’re looking for or if it’s populated at all. Just a thought.

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.
image

I mean in the BPM. Pop up the part number for ERP.Part to make sure it has the part you think it is.

I also just tried it and cannot get it to work.

Maybe an Epicor employee might know something? @timshuwy @Olga

report it

So, I tried the BPM Hold example in the Help and that worked. That one used a hold on a Customer. Not sure why one would work and not the other :man_shrugging:t2:

Theoretically you can rewrite it as query that creates join to holds table [Ice].[BpHoldAttachment] and on SysRowId and checks if something is returned

1 Like

how it looks like in help?

Yes, the “Working With BPM Holds” in Help.

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