I really wish Epicor would get thier crap together when it comes to fields that link from other records. Example: the Reports To field in Person Contact Maintenance screen which is free form text compared to the Reports To field in Work Force Maintenance which is a drop down menu that grabs the employee linked to the company access listing that comes from the User ID Maintenance.
Feature request:
Make one form that I can fill out all the info that is either a link or a dependency field between these elements: User ID, person/contact, employee, workforce, buyer. Going to all these different forms just to have to guess at what fields link to each other is a pain during the creation. Especially in multi-company with global per/con records.
Exact email I sent our internal teams:
I felt this was important enough to type up to show some of the intricacies with Epicor securities. I know its long but it is worth the read.
Some of you ask me why we don’t have the Epicor security process fully documented yet. Some of you ask why Level 1 Service Desk isn’t taking on Epicor user id creation yet. Some of you periodically ask me why we aren’t utilizing DMT files for loading user ids, employees, person/contact, workforce etc. Well, I am continuing to load them manually while documenting everything. The current sprint story I am working on for Doug helped shed even more light on why I don’t use DMT files and why we don’t have Level 1 Service Desk isn’t taking on Epicor user id creation yet: To do the DMTs is just as much if not more confusing than the manual process below. Why? Because every dang record is linked and every link has a primary key field and some of those primary key fields have to be done in sequential order. There are too many layers and dependencies of securities and they are all linked. Then add in multi-company and global record functionality to boot.
Doug’s request: take this list of 20ish sales users and start loading workforce records in company 004 and 018. Simple right? Not so much…. This is why we made this a 21 point story.
I have to first ask: is the associate already in Epicor and what company access do they already have? That kind helps define what they need and what company access they may already have before I even start.
- In order to load Workforce, I need a person/contact record… fine
- In order to load the authorized user for Workforce, I need a user id, fine…
- In order to load the user id, I need an employee, fine
- In order to load the employee, I also need the person/contact record, argh… fine
- In order to load the person/contact record at the child company, I need to load the person/contact record at company 003 and mark it “global” so it can be linked
- If I do that I may as well load the employee in company 003 too, but wait I need the supervisor field set on the employee record
- In order to load the supervisor, I need to load the employee record for the supervisor, which means I need to load the person/contact for the supervisor at company 003 and mark it “global” first… Sigh
- Great, now I have the global person/contact record at company 003 marked “global” for the supervisor, now I can create the supervisor’s employee record
- Now I have the supervisor’s employee record but it has no supervisor assigned, Ugh
- OK fine, I will deal with setting all of those recursively on up the org chart tree later….
- But I could save some time going forward by taking this 20ish associate listing and put them in org chart reporting order and work top down, that would help a little…
- Go back to the employee record and set the supervisor, dang it, get an error… on the supervisor’s employee record I forgot to check the “supervisor” checkbox on that employee record because that is required, fine
- Open the supervisor’s employee record again and check the “supervisor” checkbox and save the record
- Now I can open up the employee record again and set their supervisor, woooo finally
- But wait, the person/contact record I created needs the Role set now because the Role is what is passed onto the workforce record, wonderful
- Set the Role on the person/contact record at company 003 so it is there, and may as well go back to the supervisors person/contact record and set the Role there too since I have that info… good done
- Now I can make the user id right? Well kind of… The user id holds the security groups and the company access list, the company list is where you set the employee record link for each company in the access list.
- Ok so let’s wait on the user id for now I guess because that just makes sense
- So now I may as well load the person/contact record at the child company and link it to the global record in company 003 just so I can set the Role, then I can also create the employee record at the child company
- Ok the person/contact record is created and set with a Role at the child company and linked to the global record, onto the employee record at the child company…
- Oh dang it, I need to have the supervisor employee record in the child company…… /facepalm
- Dang it again, need the person/contact record for the supervisor at the child company in order to create the supervisors employee record
- Ok I have the person/contact record and the employee record for the supervisor at the child company, now back to the employee record so I can set the supervisor field
- Dang it, forgot to set the supervisor checkbox on the supervisors employee record first… again…… /doublefacepalm, ok done
- Now back to the employee record so I can set the supervisor field for real this time, ok done
- Oh yea…. I will deal with setting all of those supervisors recursively on up the org chart tree in the child company later…. Ugh
- On to the workforce record in the child company!
- Create workforce record, reference the person/contact at the child company, and sweet: the Role field came in as expected
- But wait the Reports To field isn’t filled out… dang it
- Do I set it here or set it at the person/contact record… no wait. Those fields actually don’t link?… wonderful
- Set the Reports To field drop-down on the workforce record and remembered to check the “All Territories” checkbox and click Save, HA
- Now I need to add the authorized user to the workforce record… what the crap, the drop-down doesn’t have the employee in it? Oh yea, this pulls from the user id, and the company access list… argh
- Create the user id record, set the security groups, add the child company into the access list and add the proper site access…
- Now, because I already created the employee record in this child company I can find the employee to choose from the employee drop-down from within the company access list…. Yay that works
- Now I go back to the workforce record and add the authorized user, wow look at that, I can find the name in the list now because their user id now has access to this company and the employee is set under the company access listing
- Neat. I am done with this employee… wait, nope… this was only one company they need access to…… now I need to repeat the process for the other companies they also need access to…
- Time to create the workforce record… wait…. Need user id… wait… need employee… wait… need person/contact
- Well at least they already have a global person/contact record at company 003 so that helps
- Go to the other child company, create a person/contact record, link it to the global person/contact record from company 003, set the Role
- Create the employee, set the supervisor…. Wait… no supervisor employee record in this child company… so that means I also need the supervisor person/contact record first… and remember to check the “supervisor” checkbox, OMG….
Time to get more caffeine, put the headphones on and block out the world…. Because getting through more than a few employees is going to take some concentration….
And no, trying to use DMTs doesn’t really help, because I would have to have the global person/contact ids, all of person/contact ids at each child company, all of the employee ids, all of the supervisor employee ids, the user ids, the company access list for each user id, the site access list for each user id. Then in order to load them the same sequence of dependencies applies: the DMTs would have to be loaded in sequence so that all the records are available in order to link to the other records and global records. If one number is off then you have incorrect employees linked to the wrong global employee record. Then this requires a manual un-link and re-link to fix it. Also, the employee DMT file has to be in the recursive org chart order from top down, or else it errors and the employee supervisor fields/records don’t load. And don’t forget to mark all of the supervisors with the “supervisor” checkbox or else it also fails to load. It’s just a mess.
My effort right now is attempting to document the manual process and all of the dependencies, because sequence of these events are greatly important to be successful.