Tracing a mystery BPM

,

Decompile that dll:
Erp.UI.CustomerEntry in your client folder. That func is found in the Transaction class

Did you check Extended Property Maintenance? You can set fields to be required there.

Wouldn’t that affect the test customer he created?

If they entered anything, even something like “n/a” or “None” it’d still get past that check as it doesn’t verify a valid email address. We had an issue like this in our old E10.0 that someone set a field to required and it started to cause issues.

Check the Extended Properties in the CustCnt table. You may have set a REquired Checkbox on that field.

Randy & Jose - Extended Properties in CustCnt table for EmailAddress is not checked ‘Required’. I can create a test customer with a blank email address, with no error. Not sure why this one customer (from what I can tell) has the Alert pop-up as email required.

image

Chris - Time for me to google how to decompile a DLL. I learn something new every day!

I found these threads:

  1. How can I see what business objects and methods are being called on an action and how do I use them? - #4 by josecgomez - ERP 10 - Epicor User Help Forum
  2. Any way to get grid format options to stick? - #15 by Chris_Conn - ERP 10 - Epicor User Help Forum
  3. https://epiusers.help/t/data-directives-find-corresponding-table-to-data-definition/40918/5
  4. Decompiling a .DLL file to view Source Code

Nah I dont think thats a good direction anymore, it probably wont help unless you are c#'er and intend to dig deep.

I think I would focus on that specific customer. Look at all of the related settings and tables. Is this box checked?

I’d also search for all BPM directives and share that list here so the community can suggest some to check.

Hi Andris,

I usually like to separate possible Epicor bug / data problem from my BPMs by turning all BPMs off and seeing if get error still.
Use this method to disable all bpms:

Nancy

Chris - Thanks. dnSpy showed my how complicated it is under the hood! I’m proud of myself for finding the Transaction section, he he he. :slight_smile:
image

Sync email is checked. I tried with and without, and no change (if I delete email in Customer Maint). If I’m in PerCon, I can delete the email and save without error.

Here are the BPM’s on Customer, and none seem to be tied to this CustID or raise an exception for email:
image

I thought maybe the address verification from Avalara might affect it, but unchecking Verify Address on our Customer Entry form doesn’t change things.

Nancy - Great idea! I’ll give that a shot.

Thanks guys.

What does the AssignAllEmailsAttribute do?

1 Like

Chris - AssignAllEmailsAttribute sets the Customer’s attribute to add them to our mailing list.
image

What about Data Directives, can you show us any Data Directives on the Customer or CustCnt tables?
Also, do you have any Method Directives on the CustCnt BO?
Seems like whatever the condition is, it’s dependent on some other value.

I have seen something similar before, in that instance there was a BPM to send an email, we were using a data field for the email address, but Epicor complained it wasn’t a proper email address, so I had to add one into the CC field.

What do the CorrectAddress and AtMail BPMs do?

Nancy - I tried disabling all BPM's via the web.config setting (very cool, by the way!), and still got the error message! I verified that other BPM's didn't fire (was concerned I'd need to recycle IIS or somehow reset things, but it didn't seem required). This same customer behavior is in our test db, so that's where I'm playing...

Rick - We have a few Data Directives for Customer, and none for CustCnt. CL-#### is only change logs, and the CatReqAutoPrint and CatRequest are for our mailings, which set fields via widgets, and do not have alerts.

CustCnt has 2 method directives. PrimaryCheckbox sets fields only, and currently isn’t enabled. LimitAMZNContacts shows up blank on the preview screen, and also isn’t enabled. That one looks for a CustID=### condition, and sets the pageSize argument.

image

Mark - CorrectAddress runs the mailing address through Avalara’s address verification via C# code, and doesn’t seem to touch the email field. AtMail looks for a condition that the ttCustomer.EmailAddress has an @mail or @usa domain name, and then sends an email to a manager.

Andy - The Customers email is @gmail.com, and I can’t find anything that would cause that to bomb out. Other customers let me delete their emails. I’ve tried to replicate the scenario, and can’t figure it out.

Thanks for the suggestions, everyone!

hi

what is in the send email piece of code, this is where the problem might be, if you are using the field to pick it, you may need to put a dummy in the correct format in the bcc or cc box

Andy - It’s a basic outgoing email widget to two people… I would think the conditional logic of matching “@mail” or “@use” would be needed to get to the Send Email widget. Thanks for the ideas!

image

image

image

Hi,

This looks like the same issue, just try putting a generic email in the CC box, like bill@hotmail.com, that fixed ours

Andy

Andy - The AtMail BPM (AFAIK) works fine, but I was trying to figure out why Epicor is preventing this one customer account from deleting the email address (everyone else is fine, and can exist without an email entered…).

I told the user to enter “NONE” in the CustCnt.EmailAddress field, which let her move on, but, like a dog with a fresh bone, I wanted to see if I could figure out why it was bombing out… When I disabled BPM’s (including AtMail), I still received the error.

Shot in the dark here, but do you happen to have a custom UI that’s calling code there?