Assuming you know what the email contains, start doing searches in the database. You may have overlooked something in the UI when going through the data directives and such.
Ice.BpDirective is a good place to start to find the BPM’s:
SELECT bd.Source,
bd.BpMethodCode,
bd.Name,
bdt.Name
FROM Ice.BpDirective bd
LEFT OUTER JOIN Ice.BpDirectiveType bdt
ON bd.Source = bdt.Source
AND bd.DirectiveType = bdt.DirectiveType
WHERE CAST(Body AS NVARCHAR(MAX)) LIKE '%Order%Shipped%'
ORDER BY bd.Source,
BpMethodCode
Failing that, you can look through the customizations this way as well:
SELECT Key1,
Key2,
Description
FROM Ice.XXXDef
WHERE Content LIKE '%Order%Shipped%'
Replace the %Order%Shipped% with something that is contained within the email that is being sent. I do this on a regular basis to find things in the mess of customizations and BPMs we have here.
Neither came back with anything. Tried a few different variations in the LIKE as well.
Genuinely, have no clue how this was setup at this point. Im not even sure who set it up either since there were 3 people messing with things in the 3 years before me.
Anything there should have shown as a result from the SQL Query above.
But, should doesn’t mean did.
@Zerobertson - I am not wanting this to sound condescending or anything, but may I also suggest to ensure you are looking in the correct database. I assume that you, like everyone else here, have multiple databases for different Epicor instances (Production, Demo, Testing, Pilot, etc.).
I have made the mistake a few times of looking for data and audibly cussing to myself in my office (good thing I work from home) because the data I am looking for is not being returned…just to find out that I am looking in the wrong database…on the wrong server…
No I appreciate you asking but yes I was sure to be looking in the right database. I double checked it myself because I have been there more than once.
Do you have a test environment where you can see the same thing happening? Like if you ship an order in your test environment do you see an email go out?
@Zerobertson - How proficient were your predecessors? Would they have had the aptitude to do anything like SQL triggers?
You say the emails are sent 'right away; so that rules out any form of timed procedure running (SQL Jobs and the like)…unless there is one running every 30 seconds to check for new shipments and send emails (which I hope is not the case).
Other options: Look for anything running on the server that is outside of the norm. Perhaps a program that he wrote that runs as a service to monitor the DB for new shipments? While that is not a recommended method, it would work.
With you checking BPMs and UI form customizations manually and via SQL queries, I’m leaning to a Function or some kind of custom program or SQL trigger as @jhecker mentioned.
Before I started here there was almost 3 years since anyone had filled the ERP position so I am not shocked that those are how this is done. I believe the last true Epicor devoted employee was in 2020 till I started in 2023.