Earlier today I realized that using Epicor is nothing like riding a bicycle. And I mean that in the way of “you never forget how to ride a bike”.
I created a post asking for a quick point in the right direction for modifying Job Costs after-the-fact, and was pointed to the right place to go (Job Cost Adjustment) and what to do. The funny part about that is that I have used that screen in the past…A lot…but, it has been a few years since I used it last and I completely forgot about it. It looked familiar once I opened it up, but for the life of me I could not, with complete confidence, say “Oh! That is what I am supposed to do. I remember now!”.
As the old saying goes: “Use it or Lose It”. And if you don’t use those screens all the time, it is quite easy to lose that knowledge. Even for some of those really simple and straight forward tasks.
With that being said, I know I am not the only person here that finds themselves in situations like this, and on behalf of them (and myself), I would like to say “Thank You” to all of you that help us out when we find ourselves in these types of situations. Sometimes even asking for help with something that is basic as can be, is difficult for someone to do, but this community makes it easier to do. Y’all are great
No, it’s not like a bike. I bike does one thing: moves you from A to B. All bikes work roughly the same. The UI is simple: handlebars, pedals, seat, and a gearshift if you’re fancy.
This software does hundreds of things and how it accomplishes it varies with each iteration. It has duplicate components that accomplish the same task. As for the UI…
Let’s just say I have users regularly asking me how to do something in their module. I’ve literally never done it myself, probably haven’t read that part of the documentation, and may have opened that screen 2 years ago. I mostly write c# and SQL and look at logs, tables and BO methods. What users think I do and what I actually do as the “ERP expert” is massive.
So yeah, been there. Like yesterday. It was an AR question.
That is exactly the same situation that I find myself in almost every day. Let me work with the data, give me projects that I can use to sharpen my C# skills, etc. But, ask me how to do the entire Quote to Cash process? Well, I could nurse my way through it but it wouldn’t be with any speed or proficiency.
“F-n’ Barrel Racers” is the only thing that will pop into my head when I see anything with him, or that relates to Yellowstone (great show if you haven’t watched it)
We have 8 different facilities that do not communicate and each uses the system in a different fashion…we get duplicate requests like that constantly. But there is always something that is ‘just different enough’ for them to justify creating a whole new one.
Once we consider doing the upgrade out of 10.2.400.22 into something more modern, it will no longer be a ‘suggestion’ that we begin to operate as one large entity that does things the same across facilities. It is going to be mandatory. Especially when you take into consideration that we may have to start with a nearly ‘stock’ implementation when we upgrade (refer to my other thread here if you do not understand why I say that).
I agree - when we went from 9 to 10, I let them have some of the ‘duplicate’ objects. When we went from 10 to 11, we got rid of 99% of them. The conversion to Kinetic UI will wipe out the rest. It takes time to migrate the users as well as the software.
So relatable. My question to you: did you make it the same? I often find that my “strategy” evolves and I find newer ways of doing the same things and reasons why doing it 1 way vs. another make a difference. Unfortunately, nearly all of the new ways of doing things were preceded by the answer to why not do it the way I did it.
I don’t flake on stuff I’ve made, as I’ll periodically prune what’s out there just to see if anyone notices. So I’m writing new stuff all the time, but the cumulative total of active reports and dashboards stays fairly even.
I do get change requests all the time though. I’ll look at the existing version, get grossed out by all the weird, complicated logic trees, then start rewriting it from scratch. It starts out very clean. Then I hit an issue. Then I look back at the original and then realize “oh, all that spaghetti is there for a reason.”
New version usually runs a bit quicker by the time I’m done tho. I also update to current best practices when able. I think I’ve only got 1 report left using XML nodes instead of string_agg.
I mean, sure, I don’t remember everything. But it’s in the 97-99% range. (I mean with computers. I never remember where I parked or where I put the WD40, which is why I have 3 mostly-full cans of it.)
The only place where I get caught off guard is AP. Why? The woman that does AP here is like perfect at her job, and she has been here for the entire 7 years that we have had Epicor. She almost never asks me for help because she doesn’t need it.
So, do you all mean to tell me that you have THAT many subject-matter experts in every department that you are able to forget all this mortal knowledge? That would be nice.
Also, I do very much take it as a point of pride to know how the UI works. I feel like coding is a crutch that supports one or more of the following weaknesses:
The functionality already exists in Epicor but I don’t know about it or don’t know that it can/should be used in that way
I do know about it, but the organization I work for does not want to change its business processes to accommodate it (I’m not saying that’s always wrong)
It requires an additional module that Epicor wants to charge too much for (wildly subjective of course), when there is only one feature of the module that we care about
Kinetic just can’t do it natively
But my point is that my view of the job was always that I am a user guide first and a coder as a last resort. I think you all feel the opposite.
They don’t have to be experts. They (and their bosses) just have to be silent. And by “silent” I mean they’re shoving things into an Excel file for expediency rather than trying to fix the process flow.
LOL, no. There isn’t enough time or resources to code a fix for every issue, and even trying a code-first approach kneecaps you at upgrade time. My basic workflow is:
Is there stock functionality for this?
Does the user know how to use it?
Do they actually use it? Why not?
Only then do I get into questions as to whether or not the canned functionality is missing something, or just plain sucks. I try to prompt the SME into describing how the system would, ideally, work for them. Even then, I’m probably “solving it” using some canned field we either weren’t using, a basic UD field, or a 1-2 widget BPM that does a IF statement and then prompts the user. Or I just tattle to the higher ups, who do their own thing to enforce compliance.
Where we differ, I think, is that if I’m going the custom route, I’m more likely to write a dozen lines, shove it into a code widget or function where it’s all in one place, and be done with it. I would not build some of the 20-widget monstrosities I’ve seen around here. I still hew as close as I can to the way the system itself works (though I don’t often use the fatass GetBy methods), which can make for slow work, but (usually) easy upgrades. In the end, we’re really not that different I suspect.
However, you’re never going to hear about any of that (except that last part) on here because “use that dropdown” is mundane. In terms of professional growth, I’m sharpening my C# skills, connecting more things over API, and I’m probably more likely to opine or query others on that topic. Doubly so since I am the sole resource of that kind of stuff here, so it’s not like I’ve got a set of peers I can spitball with at the watercooler. I’m here to find the right way to do things I haven’t done yet, and to pay that back in turn.
This is where I usually land, too. Can I do it with widgets? Sure. But if it’s going to take 8 “Set Argument/Variable” blocks, a conditional with 4 lines and a query, Invoke Method, Fill Table By Query, then another massive conditional, then finally Raise exception… I’ll probably opt for the 25 lines of code in a single custom code block.