Select Page
12 Days of ECHO: EstesGroup ERP Admin Tips and Tricks

12 Days of ECHO: EstesGroup ERP Admin Tips and Tricks

This Holiday Season, EstesGroup would like to give you “12 Days of ECHO” tips and tricks for those ERP System Admins out there.

 

We understand this time of year there is a lot going on for companies, such as: year end preparations, budgeting for the next year, personnel changes, and company shifts, etc. So that being the case, we wanted to bring a bit of humor and help to your holiday.

 

The 12 Days of ECHO:

  1. Epicor ERP SysRow-ID
  2. SQL Licensing
  3. Auto-Login Epicor ERP
  4. SQL 64K Clusters
  5. Too Much RAM for Your Epicor VM
  6. IIS Log Sprawl
  7. Epicor 10 Server Disk Space
  8. SQL Transaction Log Maintenance
  9. SSRS Stealing the Show (CPU)
  10. Epicor Performance Diagnostic Tool PDT for a Sanity Check
  11. Online Transaction Processing vs. Decision Support: How to Find & Avoid Deadlocks
  12. Ransomware 2020, The Good, The Bad, The Ugly

 

For any questions or for assistance this Holiday Season, please Contact Us or let us know below:

 

[pardot-form id=”856″ title=”Blog Forms Submission”]

Understanding Epicor ERP’s “Default Revenue Recognition Method” Error is Part of Company Configuration

Understanding Epicor ERP’s “Default Revenue Recognition Method” Error is Part of Company Configuration

Revenue Recognition is Everything

When I was still part of the user community, I was involved in a planned implementation of Epicor at one my company’s divisions.  The division was in the construction industry, and the ERP systems of the time routinely encountered gaps in addressing the business requirements that come out of construction management environments.  This was back in the days of Vantage 803, and at the time, Epicor’s construction management capabilities were rather thin.  

 

To address this yawning void of a gap, a large customization was in the works to allow for increased revenue recognition (or “rev rec”) functionality as part of Epicor’s Project module.  This functionality would eventually find its way into Epicor’s base package, but at the time, all anyone at my company could talk about was “rev rec  “We can’t start prototyping until rev rec is ready.”   “There’s no point in testing until rev rec has been implemented.”  Everywhere I went, all anyone could talk about was “rev rec.”  Still rather green in general and quite new to the business models of the construction industry, such shorthand was immensely confusing: Just what exactly is revenue wrecking?  Isn’t revenue a good thing?  I was befuddled. 

  

I wasn’t the only one.  As is the case with many of such monumental customization projects, all of these discussions were in vain, as the division never came close to going live on Epicorthough the functionality that came out of this failed attempt was pretty cool!  Many years later, I’m still quite oblivious to the intricacies of the construction industry, but I have managed to get past one annoying revenue recognition error when setting up a new company in Epicor.  As part of initial company configuration, I’ve encountered the following “Default Revenue Recognition” error message a number of times: 

The message reads as follows: “Default Revenue Recognition Method cannot be None or Blank when not allowed to be changed per project.”  Well, that’s not especially helpful, especially given that the error normally surfaces when configurating another area of the applicant, such as the Modules > Production > Job area above.   

  

As it turns out, the cause of this error actually resides in the JCSyst.DfltRevRecMthd field, as found on the Modules > Services > Project Billing tab: 

Selecting a method is normally sufficient to get past this error, though additional setup may be required, depending on the method selected.  Even if you don’t intend on using revenue recognition, this step is necessary, depending on the modules licensed.  So don’t let revenue rec your company configuration—set your default revenue recognition method and move on to bigger and better things… like deciding whether or not to schedule into the past!  Now that conversation requires three cups of eggnog and a game of twisterso I’ll save it for another day. 

Have questions about Revenue Recognition Methods or Company Configuration? Let us know below or Contact Us today.

Getting Past the “CGCCode Mismatch” Error When Importing Dashboards in Epicor 10 ERP

Getting Past the “CGCCode Mismatch” Error When Importing Dashboards in Epicor 10 ERP

In work and in life, I find myself torn between two ambivalent instincts: the instinct for understanding and the instinct for action.  It is often of great utility to understand as much of a given situation as possible—to be able to relate its causes and effects.  I think back to my Six Sigma days, to years of enlightening multi-factor designed experiments.  While this kind of understanding is summoning in itself, sometimes you simply don’t have the time to design an experiment to be in the know.  Sometimes you need to go straight to action itself as knowledge. 

  

The life of the ERP administrator is often torn between such directions of learning.  The Epicor 10 ERP admins out in the user community that I’ve met over the years are some of the most knowledgeable people when it comes to navigating Epicor 10 ERP’s ins and outs, and I’ve learned much from their deep understanding of the application, from the end-user’s experience, all the way down to the application’s lowerlevel functionality.  But admins also understand that if something needs to happen by morning, it needs to happen, and have therefore developed an appreciable measure of pragmatism as to be able to triage situations and “git er done” as needed. 

  

One such circumstance occurs when importing dashboards, especially when the dashboard is coming from one company to another or from one version to another.  In my own practice, I have a bundle of old favorite dashboards that I have developed over the years, going back to my own time in the user community.  And over the years, I’ve doled these out to customers, to assist with issues that they are experiencing.  In so doing, I have, on occasion, encountered the strange “CGCCode mismatch” error upon import.  Here’s how it happens: 

 

I follow the normal protocol of importing a dashboard definition: 

But I receive this quarrelsome application error message in response: “There is CGCCode mismatch.  Dashboard export created with CGCCode=US.  Import cancelled.”

One could talk at length as to why this error occurs without coming to a specific answer.  While I don’t have a good explanation of the source of the issue, I do know how to get rid of the error, as to allow the dashboard to be imported. 

 

Opening the dashboard definition in Notepad, I search for the “CGCCode” tag: 

I locate the nearly “PropertyValue” node and discover that the value is “US”, as was specified in the above message: 

I delete this value and save the definition: 

Thereafter upon subsequent import, the dashboard will load successfully.  While I think it’s optimal to know a situation’s underlying causes and effects, sometimes circumstance demands simplicity.  As such, if you’re in need of getting a dashboard loaded on a timeline, and need to get functionality in front of the user community in a hurry, this little hack might be just the trick for fixing your CGCCode mismatch error in Epicor 10 ERP.

 

Are you having issues with, or have questions about, your Epicor 10 ERP Dashboards or Technical areas? Contact Us today. 

[pardot-form id=”1302″ title=”Ask Us”]

The Unique Family Dynamics of a Successful ERP Implementation

The Unique Family Dynamics of a Successful ERP Implementation

Tolstoy famously remarked that “all happy families are alike; each unhappy family is unhappy in its own way.”  Reflecting on Tolstoy’s own relations and on the kindred lives of the characters in his novels, I’ve often wondered if Enterprise Resource Planning (ERP) implementations are like families, and whether such categorical statements could be similarly applied to successful and unsuccessful families of projects.  While every project has its own unique dynamics, I’m obliged to believe that roughly the inverse of Tolstoy’s statement is the case—that each happy ERP implementation isn’t alike, but rather is successful in its own way.

 

That is, I’ve seen successful ERP implementation projects that have differed from one another in surprisingly significant ways.  As such, it might be best to review successful ERP projects individually and try to understand what it is among them that made them successful.  Anyone can wax eloquent on the generic platitudes that lead to a successful implementation, but in practice, when the time comes to make tradeoffs between platitudes, it’s helpful to know how companies work through challenges and finally arrive at successful implementations.

 

One project that we recently completed fit such a mold.  While not free of obstacles, the end-product was immensely successful.  A number of key factors led to the ERP implementation’s success:

  • All of the team members were engaged and onboard.  Getting the team to buy into the project’s mission, and actively support that mission, was never a problem.
  • The project team did a large amount of their own end-to-end testing.  Unlike some projects, where the team only tests while the consultants are onsite, the team verified their system configuration and business processes whenever possible, leading to a rock-solid business process at cutover.
  • The team took ownership of issue resolution.  The team dug in, tried things out, and came to solutions.  This served to greatly shorten certain phases of the project.
  • The team made decisions quickly, collaboratively.  The project was rarely, if ever, waiting on a key decision, and nobody on the team could have been accused of analysis paralysis.
  • The team took responsibility for their roles and did the work on time, and on schedule.  Schedule attainment was a high priority, and the team put the necessary work in to make things happen.
  • The team displayed a culture of respect, staying respectful during difficult conversations and decisions.  The stresses involved in an ERP project can at times encourage dysfunctional or toxic behaviors, but this team treated each other with a high degree of respect, even when working through the toughest decisions.
  • The team’s project management was of the highest capabilities, displaying excellent collaboration and communication with the core team, and with the EstesGroup team as well.

The net result was a successful ERP implementation project on-time and on-budget, with the expected level of system capabilities.  The team experienced a clean and quiet cutover, and quickly stabilized.  Within a short time, the company had moved onto managing daily operations and planning for the future.

Every project has its wayward sheep, be they executive sponsorship, excessive customization, inadequate team investment, or challenges with data conversion.  No project ever checks all the happy boxes.

 

But in spite of challenges, the best companies still manage to successfully implement their enterprise systems, keeping their team engaged, committed, and dependable—regardless of all the unique twists in their project’s DNA.

 

Are you ready for your company to create its own exceptional implementation story?

Come talk to us, and we’ll share some of the greatest success stories of ERP history—prosperous implementations similar in success, yet nuanced in achievement—stories that can inspire your own project to be a story with a happy ending.

The Company You Keep: Deploying Company-Specific Customizations in a Multi-Company Environment

The Company You Keep: Deploying Company-Specific Customizations in a Multi-Company Environment

Setup is crucial for a successful company-specific customization in an Epicor ERP multi-company environment.

Maintenance of the Epicor ERP menu in multi-company environments can be unintuitive, and many customers come to us looking to better understand its capabilities and its limitations.  One area of special frustration is the deployment of customizations in multi-company environments.  Deploying company-specific customizations—especially since ERP version 10.1.600—has been a point of confusion.  Fortunately, once the steps are understood, the act of getting your customizations to the menu becomes less ambiguous, even if a little cumbersome.

 

When creating customizations, you can develop one that is specific to a single company or one that applies to all companies.  Let’s assume you were making a customization of the Epicor ERP Part Maintenance form.  For instance, perhaps you thought the Part Maintenance form would look better with a big green spot:

Let’s also assume you wanted the big-green-spot version deployed only to the company you were working in (in the case below, this would be the “EPIC06” company).  As such, you’ve saved the customization by not setting the “All Companies” flag and allowing the company to remain the one you’ve been working in.  This creates what is called a “company-specific customization”:

Now, deploying this customization to the standard “System” menu is not possible—the customization is not available when you click the “Customization” drop-down in Menu Maintenance:

To deploy the customization to the currently company without affecting all companies, navigate to the “Actions” menu in Menu Maintenance and select “Copy to Current Company”:

When this is done, the application makes a copy of the system menu.  In doing so, the new menu carries over a number of values from the original menu: the Menu ID, the Name, the Security ID, the Parent Menu ID, and even the Order Sequence is carried over.  But a number of key fields change.  The duplicate menu is no longer a System Menu, as it now has a Module type of “UD.”  The menu no longer applies to All Companies, as the owning company is now the company in which it was deployed. 

Most importantly, the “Customization” drop-down now allows you to select the customization that you’ve created:

When deploying a company-specific customization in a multi-company environment, the above steps allow you to create a menu deployment that will replace the system-based menu deployment for the company in question.  To demonstrate this, log out of the application and back in. 

 

As you can see, only a single menu node for the Part form is displayed:

And when this single node is selected, the customized version of the Part form that was previously created (big green spot and all) is displayed:

If, for some reason, you need to revert to the base “System” menu, you can always delete the duplicated menu from Menu Maintenance.

 

The ability to manage company-specific customizations in a multi-company environment is of great importance, especially in environments where companies have vastly differing business requirements and require highly-specific form deployments.  Such capabilities will keep your requirements aligned with your environments and keep you user base in good company.

Have any feedback or questions about customizations?

Historical Transactional Data Conversion: Prevent the Past from Haunting Your Present

Historical Transactional Data Conversion: Prevent the Past from Haunting Your Present

“I give [this watch] to you not that you may remember time, but that you might forget it now and then for a moment and not spend all your breath trying to conquer it. Because no battle is ever won he said. They are not even fought. The field only reveals to man his own folly and despair, and victory is an illusion of philosophers and fools.” – William Faulkner, The Sound and the Fury

 

Living and writing at a time where the legends of the Civil War and the fables of the Reconstruction were still part of living memory, William Faulkner’s work wrestled with the ideas of history, memory, mythology and heritage, and the challenges of one’s immediate existence amid such a monumental backdrop.

 

The notion of contending with one’s history extends far beyond the literary world, and takes a place of eminence within the world of enterprise system implementation.  Almost without exception, I find myself with customers at the onset of Epicor implementation projects working through options regarding how best to address the management of the historical transactional data from their legacy system.  Customers find themselves in a paradoxical situation: customers want to move forward with a new system that can meet their upcoming strategic goals and initiatives, but they also want to be able to reference the rich history that was built up as part of their legacy system.  It is as if they wish to rip all the lathe, plasterwork, and wainscoting off their old home and slap it onto the walls of their new dwelling.  But as any carpenter would attest, the fit of old materials is never perfect.  Often, is it downright shoddy.

Given the challenges of layering the old with the new, I often work with customers to help them understand the perils and promises of their data desires.  I try to find a way to satisfy the company’s history without compromising the new installation in question.  The fundamental challenge has to do with whether a specific company can bring over historical transactional data from their legacy system.  Transactional data may include Quotes, Sales Orders, Purchase Orders, Work Orders, Shipments, Receipts, Invoices, etc.  In going over the options, there are normally three ways in which a company can reference its historical data as part of a new Epicor implementation:

 

  • The transactional data can be converted using Epicor’s Data Management Tool (DMT).  That is, the legacy data can be manipulated to fit into a format conducive to the setup of the Epicor environment and loaded into the database, as if it were a live transaction load.
  • The transactional data can be loaded into Epicor user-defined (UD) tables and references from within the application using BAQs and Dashboards.
  • The legacy database can be connected to the Epicor application using external data source configurations, and then to queries using external BAQs.

 

The primary concern has to do with addressing the desire to actually convert legacy transactional data into Epicor’s database without compromising the historicity of the data itself, and without gumming up the system with a lot of noise.  It’s hard enough to correctly convert live records, much less to convert the mountains of ancient data.  From my own experience and from the experiences of my coworkers, we do not consider it a recommended best practice to convert historical transactional data into Epicor’s standard table structure when implementing Epicor ERP.   The following reasons underlay this recommendation:

  • When implementing or reimplementing, it is often the case that the base setup data values change, in terms of their naming conventions, quantity, values, etc.  This can make the transformation of legacy data labor-intensive and error-prone.
  • ERP data is by its nature integrated.  Loading transactional records can trigger unexpected effects.  For instance, should an Epicor customer elect to import the Purchase Orders from the legacy environment, the system would plan for these POs to be received and alter system planning accordingly.  To avoid this, these records would need to be closed, but the data in question would therefore fail to reflect the original legacy data, in which Purchase Orders were closed through the receiving/invoicing process at a much earlier date.
  • To load transactional data in the form in which it exists in the legacy environment, the entire collection of related records needs to be loaded.  For instance, if a customer wished to have purchase order history, to have representative data in the Epicor environment, the related PO Receipt and AP Invoice records would also need to be included.  This is, among other things, a tremendous amount of work.
  • In some cases, Epicor’s business logic updates fields and does not allow these to be user-updated.  For instance, Sales Order or Purchase Order lines are system-set and not user-modifiable.  This makes it difficult to load historical data that accurately reflects the legacy data: what was PO Line 2 in the legacy system may get converted to PO Line 1, as it was the first line to be loaded.
  • Transactions have general ledger implications.  Loading transactions can thus have unexpected consequences that affect WIP, inventory, and their related GL accounts.  For instance, should the user import Purchase Order Receipt records, the transaction date would not by default reflect the actual date in which the transaction occurred.  Should the customer wish to date the transactions into the past, the necessary fiscal periods would need to be created.  If the load does not include all transactions, the General Ledger would be inaccurate, and would require effort to reconcile and correct.

 

An alternative to performing a DMT table load into the standard tables is the utilization of Epicor UD tables to store this data.  This avoids many of the perils above, but requires the implementing customer to construct querying tools (BAQs and Dashboards) to retrieve and present this information.  Moreover, I’ve found that the actual usage of historical data tends to be less than anticipated.  In many cases, we have found that the actual usage of this data tends to decrease significantly shortly after cutover.  I recently had one customer go to great lengths to convert data to UD tables and construct the necessary querying tools to view the data—only to forget almost entirely about these capabilities amidst the booming buzzing confusion of cutover.  By the time they had settled down, they already had built enough living history into their database to move forward, and the UD tables were all but forgotten.

 

A final option is to access the legacy database using external data source connections and query it using external BAQs.  This option is normally the simplest of the three, as it saves the time of initially converting the data, though it similarly requires the construction of the necessary querying tools to receive and present the data.  Depending on the age and format of the legacy database, the external data source option might not be feasible.  As part of some implementations, I have seen customers convert their legacy databases into SQL format at cutover, for the express purpose of querying their ad hoc history via external BAQs.  In other cases, I’ve seen customers fall back to the UD table option when other options were seen as too labor-intensive.

 

As such, given the other options, I recommend that the conversion of data at cutover be limited to master file and open transactions, and utilize external data source connections to the legacy database, and/or UD table conversion, in order to gain access to historical legacy data.

 

When it comes to the art of crafting prose, William Faulkner forgot more than most of us remember.  Elsewhere in his works, Faulkner wrote that “[t]he past is not dead. It’s not even past.”  In a similar vein, the attempt to bring old historical data into a new ERP system is itself an act of rewriting history.  And in doing so, one sacrifices accuracy for availability.  Also, when implementing a new system, a company quickly learns that the high cost of retaining history is something they would soon like to forget.  As a company builds a new history in its new system, the old history becomes less and less valuable, with such surprising rapidity that the old soon takes its place at the back of the database, taking up space and gathering data dust, like a childhood diary left on a top shelf and forgotten.

 

Do you have questions about the Data Management Tool or best practices for data conversion? Or do you want to talk with the author about anything Epicor related? Chat with us now!