I am sure that this must have been asked or done a million times before but here we go again…
We have a couple of UD Fields on the “Part” table where we check if the part is “Critical” or “Safety Critical”. In either case, we need to have the items inspected on receipt. Because of the way we have historically set up part classes, we cannot set the class for inspection nor can we specify a supplier as we will order critical and normal parts.
To avoid purchasing staff having to set “Inspection Required” on the PO manually and stand the chance of it being missed, I want to create a BPM that checks the Part table when a new POLine is created and if one of the Critical boxes is checked, make sure that “PODetail.RcvInspectionRqd” is set automatically.
I have made a BPM that works on the “PO.Update” BO but I cannot see how to access the Part table from within my condition. Does this require custom code or am I missing something?
Any advice appreciated but be warned, my coding skills barely pass “Hello World” so be gentle with me!
In your BPM add a BO method. Use the JobEntry BO, and the GetDatasetforTree method to pull data for that record. That should populate a dataset for you to pull data from, or set data to. In the past for cases like this I would have this set of widgets in place:
First is the get dataset for tree method that pulls data from your job number into a dataset.
Next is an update table by query to update the dataset fields as needed. Remember to set RowMod = “U” in this step.
The last step is the update method.
Thank you @NateS, your advice is appreciated. I will have to select the PO BO as we are not using JobEntry at this point or buying to job.
The principle seems straightforward enough but I am on vacation from today so I will give it a go when I get back.
Just letting you all know that due to everyone’s votes (64 votes in fact) on Epicor Idea https://epicor-manufacturing.ideas.aha.io/ideas/ERP-I-593, ( Safe Harbor Statement ) as of version 2023.2, the software will now include a flag at the Part Site screen to specify a part inspection flag. In order to do this, we have THREE options available at the Part/Site Detail level:
- Inspection Required defined by Part Class
- Inspection Required
- No inspection Required
This allows for the inspection required option to continue to be driven by the value in the part’s associated part class, but also allows you to override it at the part/Site.
SO… all those who have added your own UD FIelds, and BPMs to do something similar may be able to eliminate that… for those that haven’t done so, if you wait, you will have it soon (October )
I have overcome my issue but it turned out to be much simpler than I anticipated. I created an “In-Transaction” Data Directive on the PODetail table which used the “Update Table by Query” setter to set the ‘RcvInspectionRqd’ field.
The query joined the ttPODetail table to Part on Company & PartNum and the criteria only selected records where either of the two UD check boxes were true. If they were, then when the PODetail row was added or updated, the RcvInspectionRqd field was set true.
Thanks for pointing me in the direction of the “Update Table by Query” tool, as I would not have got there without that!