Deactivating a work force - what is the best practice for handling this throughout the system?

Hello All,

What do you do when you need to change a work force record from one value to another throughout the ERP system? How do you ensure that anywhere the work force ID is being used gets replaced with a new salesperson?

Our scenario:

Just had a workforce wonder why they were contacted with an order acknowledgement when they aren’t a rep for us anymore. It was due to their work force record on the Ship To ID that was selected on the order. When the ship to was selected, their work force ID was populated into the salesperson section on the order EVEN THOUGH their work force record is inactive. Epicor did not warn us that they were inactive and had no problem allowing that work force to be selected.

Anyone deal with this?

Thanks in advance for any help.



As a quick stop gap for things like that email being sent to an ex-employee or rep…
Change the @ in the email of their Person record to (at).

For example: becomes joe(at)

And that shouldn’t work its way out through a mail server. Note that I don’t know if it would break the mail message altogether or not. But if it does, that would give you reason to update the source :wink:

But I think your going to want to make a BAQ to find all the instances of tables referring to that Persons ID. You don’t want to blindly update them as you probably need the old ID to remain on things like closed orders and what not, for historical reasons.

@ckrusen that is what I initally thought, maybe just delete the email address. As for updating them everywhere, I would want all the history of course.

You can make a Salesforce entry inactive, no? That would at least prevent them from being added to new records.

Not for our version. It shouldn’t show up in the list of possible salespersons but I am seeing inactive records in our entry screens. I just put in a ticket to Epicor. I can even add inactive records to a sales order and nothing happens. I’d be interested to see if you can do the same.

I’m on 10.1.400.23.

Here’s a bit of our Workforce entries:

And the Order Entry, Header \ Header Salespersons tab
(note the lack of Anthony M, Andrea V, Brian B, etc …)


So inactive Workforce entries cannont be manually selected on a order.

But if a Workforce member is assigned on a customer record, and then the worforce person is marked as inactive, the customer record doesn’t change. Any new order for that customer will defualt to the inactive workforce person.

Very interesting… I will wait to hear back from Epicor to see what they find on

Utah Taylor

Calvin, it isn’t until I close out of order entry and re-open that the list re-populates without the deactivated workforce. A timing issue. I thought every time I open the list it is refreshing, but it must only be on form load that it initially gets its list. Thank you @ckrusen for taking the time to upload those screenshots.

It might be new in E10, but a lot of “dynamic” lists have the option to refresh. Just right click.


Thank you for that tip, never noticed that feature!

Still wondering if there is a quick way to find and replace the old work force record on all customer records and other records where it is used. Not sales order and quote records though.

You could create a BPM on Work Force update that checks Customer, ShipTo, and other records and either warns the user that the Work Force is being used, or stops the update until the user replaces everywhere it’s used.

We have a similar BPM on Vendor.Update that checks to make sure there aren’t any active POs for that Vendor before you inactivate.


Great idea. I am wondering what “other records” I should be looking at when updating work force.

I would like to definitely change Customer and Ship To records, but are there any other locations that store those? I do not want to touch sales data like orders and quotes.

You could make a BAQ to use as a search filter when selecting customers in Customer Entry.

Not sure if “Sales Territory Maintenance” would help in this case?
I’ve only used it to update the salesperson on multiple customers.
It’s a temporary workspace, where you can set up the changes and then commit them via the action menu.

And to think we just went through a major reassignment of Sales Reps and didn’t know about this…Thanks for pointing this out.

It doesn’t seem to address the issue of replacing it on all customers and Ship to Records.

Utah, the Data Dictionary Viewer says that the Work Force/Sales Rep isn’t allowed to be deleted if it’s used in the Customer, ShipTo, or OrderHed tables. I would imagine it would list other tables if it were used in them.

You can create an Updatable Dashboard that lists the assigned Sales Reps for Customers and ShipTos and lets you mass-update them. Since it’s a dashboard, you could sort and filter to only the records with the Work Force ID you’re replacing and do it all in one action.

I would not like to update the workforce records itself in the dbo.SalesRep table, I would just like to change wherever the sales rep is used. For example Customer.SalesRep or ShipTo.SalesRep. I could use an updatable dashboard, that would be handy. For now I am thinking DMT, but I would like to provide a way that the ones who are changing the records would be able to update them. In that case, an updatable dashboard wouldn’t be a bad idea.

  1. Make a BAQ like:


(really only need the CustId, I think)

  1. Make a Quick Search like:


  2. In Customer Entry, use the Quick Search

If you make the BAQ such that only Inactive SalesReps are selected it might be better.

Edit: You may have to do this again for the various places a Person might be referenced (like as a contact)

Just curious, which customer/ship sheet/field(s) are you looking at?
I have used Sales Territory Maintenance to mass update the Customer → Detail → SalesPerson field
and the Customer → ShipTo → Detail → Salesperson field

In addition to setting a workforce Inactive, I always add a prefix of “z” to the workforce name. That way at least they stand out as errors in related records.