Select Page
SQL Server: Turning Tips and Playing Tricks

SQL Server: Turning Tips and Playing Tricks

SQL Server Configuration, Tuning & Optimization

The perspectivism of an ERP system shifts based on one’s point of reference. To an end user, an ERP system might simply be a series of screens from which one enters and extracts data. But to an ERP administrator, the view from behind the curtain might be quite different.

For an Epicor admin, the Epicor ERP application’s curtain call generally includes a number of actors: the application server, the database server, and the end user client install among them. Each of these layers requires different tricks and techniques to keep them running smoothly.

Learn about SQL Server by watching an Epicor consulting video presentation:

SQL Server Training

Server-side wisdom is not attained simply by paying for the next round. Much of this kind of information is acquired by doing. There are guide books and training materials, of course, but these cover what we tend to call the “happy path” — and anything that veers off that path is uncharted. Also, there is a certain truism about software vendors keeping their cards close. I once had an instructor shut down one of my end-of-class questions simply: “I could tell you, but I’d have to bill you for it.”

Common Epicor Admin Tasks

In that light, we thought that it would be helpful to openly discuss some of the SQL Server tools and tricks of the trade, as to assist Epicor admins and members of the user community in solving common SQL server tasks. In the above video, recorded at a past EstesGroup User Summit, Daryl Sirota, EstesGroup’s Director of Technical Services, goes over some key SQL Server considerations that cover the range of challenges that a system administrator may encounter in managing the Epicor ecosystem, including the following:

Licensing

SQL Server licensing models vary, often by the number of users vs. the number of cores. An important consideration with licensing is scalability. The more you look to scale an environment, the more licenses you may require. Moreover, how you deploy SSRS vis-à-vis also adds potential licensing complications. We would recommend that you explore the options in constructing your SQL server environments to manage these licensing concerns.

Security

Database security begins with understanding who has admin access to a given database (be it a user with physical access, a database owner, or a local SQL admin or Windows administrator). Beyond basic access, a border concern has to do with understanding how data is leaving the database — whether through replication, application access, an external API or a basic user download. Understanding how your data may leave the server is a good starting point to understanding how to safeguard it through cybersecurity or endpoint security.

Backups

Backing up your data for future disaster recovery scenarios introduces a number of challenges. Firstly, it should be clear that backing up your data is not enough. You need to test your backups to make sure they are complete and can be restored properly. Moreover, RTO and RPO considerations extend beyond an individual DB. Backing up an individual database is one thing. Another equally important element is being able to back up and restore your entire SQL server. Disasters can happen to an individual DB or to your entire server, and different strategies will be required, depending on the kind of failure.

Performance

There are a number of simple steps that can be taken to optimize performance. First, confirm that you’ve formatted drives to a 64K cluster size, to optimize efficiencies. Another step might be as simple as separating the database and transactional log volumes, due to their different IO patterns. Additional decisions, such as how you choose to allocate data, or how to separate the SQL engine from SSRS, can also impact performance.

Redundancy & Availability

Redundancy is less about backup and disaster recovery than it is about constructing a server environment that is sufficiently resilient, such that the overall system can operate even when one of its components fails. This might involve virtual machine replication, in order to provide redundant database servers. In our ECHO managed hosting environment, for instance, our SQL servers are replicated such that if SQL server were to go down, a redundant VM steps in and takes its place.

A SQL Server Maintenance Plan

Beyond the above, a number of PowerShell and SQL scripts can be put to use to complete a number of common tasks, such as copying a production environment to a test instance, truncating transaction logs, updating the task agent settings or recreating SQL replication in support of e-commerce solutions.

Epicor Process Set Maintenance: Bundle Up

Epicor Process Set Maintenance: Bundle Up

Scheduling ERP Processes

Batch processes have been with us since the inception of business computing. You can complete a batch of tasks as a single process for sake of efficiency. The benefits of such processes are clearly time-saving for an Epicor administrator. Batch processing allows for the automation of many tasks that would take an actual user an immense amount of time and effort to perform in order to accomplish the required manual tasks and calculations. In ERP software, the Materials Requirements Planning (or MRP) process is probably the most well known of such processes. As ERP systems have become more advanced, the need to group multiple processes to operate in harmony has become increasingly important.

Female using cloud technology on a mobile workstation

Epicor Process Bundling

In an Epicor context, there are many processes that you might want to sequentially bundle, such as following up an MRP regeneration by running the production planning and the shop schedule load graph processes, such that you can see the implication of the MRP run on material shortages and shop load respectively.

Sounds simple enough, but the problem with this scenario comes with the fact that such processes often run in the wee hours of the night, and only the most zealous members of the ERP fandom would wish to set their alarms for 3:00 AM so they can manually kick off a few ancillary processes once the MRP regen completes.

Enter Epicor’s Process Set Maintenance. Epicor process sets allow Epicor admins to bundle process runs into a single event. This allows you to sequentially run a suite of Epicor processes automatically, without human intervention. Process sets can include various differences:

  • processes
  • reports
  • executive queries

Once a process set is defined, and then attached to a system agent schedule, the related tasks are automatically processed according to the timing defined by the system agent.

Let’s look at a common issue, one that surfaces frequently for an Epicor admin. At times, you may wish to run processes in a manner that filters the actual processing. For instance, you may wish to run MRP by site, or PO suggestions according to a handful of part classes. Confusion is commonplace in handling process sets when the processes involved possess filtered activities. I’ll give you an example of the problem and an explanation of the actual behavior an Epicor admin can expect to experience when setting up and executing a process set.

Epicor Process Set Maintenance With Process Filters Enabled

Creating a process set occurs through the Process Set Maintenance screen. Once a process set is defined, individual processes can be assigned to a process set. In the example below, I created a process set:

Epicor Process Set Maintenance Screen

Next, I opened the PO Suggestion screen and configured its process parameters. Of those parameters, I set a site-specific filter:

Epicor Generating Purchase Suggestions Screenshot

Then I clicked the icon below to save the PO Suggestion process to the process set I previously created:

Save Epicor Process Set Screen

Returning to my original process set, I now see that the PO Suggestions process has been attached to the process set. Were I to go through the same actions with other processes, I could add multiple processes to this process set, and then use the “Move Up” and “Move Down” buttons to order them appropriately. But one point of confusion exists here. If I were to double-click on the process that I just added, to review its properties, the filter that I previous defined is no longer visible:

Epicor PO Suggestions

As we will see, this cosmetic issue is not detrimental to the actual execution of the processes themselves. To complete the setup of a process set, you need to assign it to a System Agent Schedule. This is accomplished through the Schedule Process Set screen. From this screen, you can select the Process Set:

Schedule ERP Process

Allowing the System Agent schedule to run according to its next run time, I can see in the Epicor System Monitor that the underlying process ran successfully:

Epicor System Monitor

Looking at the Log File related to the PO Suggestions run, I can see that the PO Suggestions process ran according to the filter that I had initially set. As you can see, the log file indicates the Epicor site that I had defined:

Epicor Process Log File

Epicor Admin Automation

In summary, while it may appear that an Epicor process loses its configured filters when added to a process set, in actuality, these parameters are retained, allowing the Epicor Admin great flexibility in automating a variety of ERP system activities.

Epicor Consulting? Epicor Managed Hosting?

Get advice from an ERP consultant or managed IT specialist. Chat with us to get a free ERP consultation or technology assessment.

Epicor Server File Download: Serving the Process Server

Epicor Server File Download: Serving the Process Server

The Pandora’s Box of ERP

Epicor processes can be a Pandora’s box of complexity. Rumbling under the surface, these processes perform innumerable tasks that allow an ERP system to function effectively. But when these processes fail to deliver the expected functionality, understanding the logic of these subaltern beasts can be problematic.

Happy distribution warehouse manager holding a cloud-enabled mobile tablet
  • Was it a problem with network connectivity?
  • With master file setup?
  • With company configuration?
  • Was it a bug?

Accessing Log Files Through Epicor Server File Download

One can spend an immense amount of time trying to troubleshoot these processes, especially given the timing required to perform trial-and-error with back-end processes. Such repetition gives ERP wheel-spinning a new meaning.

Fortunately, Epicor has a means of slowing the wheel, if not breaking it altogether. It is a general best practice when designing and developing complex programs and processes to include some form of logging. This provides the end user, or Epicor admin in this case, an opportunity to divine the logic of the program in question. This can help you troubleshoot process issues quickly.

In the past, gaining access to these logs to anyone but an Epicor administrator has been problematic. But in recent versions, Epicor added functionality to allow an end user to access server-side log files: Server File Download.

Epicor Server File Download provides the ability for a given user to look up various types of log files and save them to a local location. This allows you to retrieve and review log files. It does not require access to the server locations where they are stored.

Let’s assume that I kicked off a PO Suggestions process and enabled logging, specifying both the logging level and the log file name:

Epicor Server Download Generate Purchasing

As the process runs, it writes a log file to the server. The log file can be retrieved using the following method:

  • Open the “Server File Download” screen, which has the following menu location: System Management/Schedule Processes/Server File Download.
  • Choose the Directory Type. User: These logs normally refer to the user-specific logs. Company: Company type files are the most common logging methods and logs for processes such as MRP or PO Suggestions normally land here. Reports: This area holds XML files related to Crystal Reports.
  • Use the “Select File…” button to identify the file you wish to retrieve.
  • Use the “Client Path…” button to define the location to which you want the file saved.
Epicor Server File Download

Clicking the “Select File…” button allows you to search for and select the file in question. In the example below, I located the file that I had named previously, when I kicked off PO Suggestions:

Epicor PO Suggestions

Clicking the “Client Path…” button allows you to specify the location to which you intend to download the file:

Epicor Server File Download Browse For Folder Screen

Once the source file and the destination location have been defined, select the OK button. This will kick off the download activity:

Epicor Source File

Once the download has completed, the system will raise a download status message:

E10 Server Download Complete

Once downloaded, you can navigate to the specified path and access and review the log file to better understand the details of the process itself:

ERP Process Server Log File

ERP system troubles? Check the log…

Navigating the workings of an ERP system’s back-end server processes can feel at first like an exploration into the Eleusinian Mysteries. Fortunately, Epicor’s Server File Download toolset allows you to unearth the hermetic actions of Epicor’s darker processes, hiding in the process server’s chthonic cave, bringing them into the platonic light of your client folder and making them visible for all to see.

Never miss an ERP step. Learn about our private cloud hosting solutions.

Epicor Data Fix Workbench: Balancing the Balance

Epicor Data Fix Workbench: Balancing the Balance

The Weight of the ERP Data World

My old friend Thanos was a big believer in the principle of balance. In an ERP context, data integrity is the epitome of balance. But sometimes unexpected issues corrupt data and throw this precious balance askew. Read further to understand how to use the Epicor Data Fix Workbench to restore data balance with a snap of your fingers.

Cloud ERP for Manufacturing

Fundamental to the successful management of an ERP system is the management of its data.

An ERP system is only as good as its data. If the data gets dirty, the ERP system will similarly suffer. But the sources of data discrepancies vary. In many cases, they are due to inadequate policies and procedures surrounding the entry and maintenance of ERP information. In other cases, the system itself is responsible for problems with its data. In these cases, Epicor ERP supports its customers through the development and delivery of data fix routines. These routines resolve specific data-related issues with the application’s data, allowing for smoother system operation.

When a customer encounters a data-related issue, Epicor support may provide a “.df” file to resolve the issue. These data fix routines need to be correctly installed and ran. The following document describes some of the steps involved in the installation and processing of data fix routines:

  • Upon receiving a data fix, save the .df data script file to a location accessible from the application server.
  • Log into the application server and open the Epicor Administration Console.
  • In the left tree view, navigate to the “Database Server Management” nod, and locate the database to which you intend to deploy the fix.
  • Select the E10 Database in question, as accessed through the admin console.

Once selected, click the “Import DB Health Scrips(s)” selection in the right “Actions” window:

Epicor Data Fix Screenshot DB Health

This will raise a selection window. Click the ellipsis to search for the data fix script in question:

Epicor Data Fix Screenshot Select Scripts

Locate and open the data fix file in question:

Epicor E10 Pilot

Once selected, click the “OK” button to load the fix into the database:

Epicor Data Fix Workbench

Once loaded, you can now log into the application and run the fix. Navigate to the System Management > Upgrade/Mass Regeneration and open the “Data Fix Workbench”:

Epicor Data Fix Menu

Once the “Data Fix Workbench” loads, click the “Data Fix…” button to search for and select the desired fix:

Epicor Data Fix Button

The fixes available will be limited to the number of fixes you imported using the above procedure. Locate the fix you wish to run. Select the fix and click “OK”:

Epicor Data Fix Workbench Install

The process for running the fix in question may differ according to the specific fix itself. That said, there are a few general principles to running a fix routine that are consistent across fixes:

  • Enter any needed parameters
  • Click the “Report” button to return records in the database needing correction
  • Select the records you wish to correct
  • Run the routine to update/delete the selected records
Epicor Data Fix Workbench Final Step

The ongoing maintenance and management of an ERP ecosystem is a critical responsibility for Epicor administrators.

With challenges to server performance, network connectivity, database optimization, and endpoint security, administrators cannot afford to allow the system’s data to unravel. Every ERP system will encounter data issues at one point or another. Understanding the process to load and run a given fix in Epicor is a key step for ERP administrators, assisting in the important task of ERP data management.

Epicor ERP Database Upgrade Considerations

Epicor ERP Database Upgrade Considerations

Technical Considerations for an Epicor Upgrade

As more and more Epicor users moved from Epicor 905 to E10, the new world of upgrade challenges leveled off into old world reflection. As a customer, I once watched my company implement Epicor’s Vantage 803 platform and flirt heavily with a disastrous 904 release before upgrading to 905.600B. They finally settled on 905.702A. Since then, they’ve been in a holding pattern, and their jump to E10 is now, essentially, a ground-up ERP reimplementation.

 

If you’ve made the decision to upgrade, you need to consider everything from old data to new cloud-based servers. Because I’ve seen Epicor consulting on both sides of the give-and-get (as a customer and as a consultant), I’ve collected quite a few answers to questions surrounding your Epicor ERP database and your decision to upgrade.

Epicor ERP Database Technical Conceptualization

The Epicor ERP Lifecycle

For customers already on E10, the burdens of keeping your system up to date are much less worrisome. Epicor’s release cadence is now a metronome of consistency. New versions address the bugs and bothers seen in earlier iterations. Epicor consistently provides new functionality to the software and enhances existing capabilities. To this end, it is important to understand Epicor’s support cycle, and the difference between active support and sustaining support. To begin with, active support relates to the full breath of assistance provided by Epicor, and is reserved for versions that have been released roughly within the last two years. Epicor produces a new release (for example, from 10.2.600 to 10.2.700) every six months. That means if you are four releases behind the current release, you’ve moved into sustaining support.

 

Epicor System Support: Version Control

For an example, let’s say you implemented Epicor on version 10.2.300, and Epicor’s most recent release is 10.2.700. This means active support for your old version expired, just as the new version became generally available. As of release .700, Epicor would now only provide active support to versions 400-700. As such, release 10.2.300 would now be on what Epicor refers to as “sustaining support.” Sustaining support significantly limits the level of assistance Epicor will give you, whether it be support through their help line, bug fixes, the ability to purchase new ERP modules, and even the ability to obtain ERP consulting support. To make the most of your support fees, it is normally a good idea to keep your application’s version current.

 

Epicor ERP Upgrade Q&A

For companies falling behind on release upgrades, we can (with minimal angst) get the systems updated. First, we can ask a number of questions regarding the mechanics of the upgrade itself. Then, we can work from the solid foundation of a successful upgrade plan. With this all in mind, I collected some of the questions we normally ask a customer during the consulting process when helping form an Epicor ERP database upgrade plan.

Detail Your Current ERP Environment

  • App Server(s): How did you deploy your production application? Is it deployed on a single server or on multiple servers? Are your test environments deployed on the same server as the production environment, or are they deployed on separate servers? Is your environment deployed onto a physical server, a virtual server on physical hardware, or to a cloud-based VM? What is the version of your operating system? Is it up to date? What are the physical properties of your application server environment(s)—RAM, CPU, hard drive?
  • SQL Server: Is the SQL Server installed on the same server as the application or to its own server? What version of SQL Server Management Studio are you using? Is it up to date? What are the physical properties of your database server—RAM, CPU, hard drive?
  • Epicor Applications: What version of Epicor are you on? To which version of Epicor do you intend to move? Is it supported by your OS and SQL Server versions?
  • Epicor Extensions: Which Epicor extensions are currently in use (Web Access, Mobile Access, Enterprise Search, Social Enterprise, Education, Information Worker, Data Discovery)? Do you intend to utilize the same extensions when you upgrade?
  • Third-Party Tools: Do you have any third-party tools or integrations that will need to be in use when you upgrade (CRM integration, External Configurator, Ecommerce, etc)?
  • Client Installation: How is your user community connecting to the application? (Client install? Terminal Server? Web access, etc.)? Do you intend to utilize the same installation methodology when you complete your Epicor ERP database upgrade?
  • Backup Policy: What is the current backup solution and disaster recovery policy? Do we need to carry this forward, or will we make changes to this as part of the upgrade?

Clarify the Future-State Server Map

Live Server: Do you ultimately intend to deploy the upgraded Live environment onto a new application server or utilize the existing server?

Test Server: Will you be using a new Test server or utilize the existing server, with the intent of running two versions concurrently during the upgrade phase?

Database Server: Will you be deploying to a new database server or using the existing server?

  • If a new server, have you procured your additional SQL Server licenses?
  • If a new server, who will we be installing the SQL Server application?

Roles and Responsibilities: For all new servers, what tasks will be the clients responsibility?

  • Provisioning new servers
  • Providing new OS licenses, installing operating systems and enabling RDP
  • Providing the agent-based backup solution
  • Supplying any anti-virus exclusions

Server Access: What is the preferred method of attaining server access?

  • Remote connectivity agent
  • VPN/RDP
  • Virtual Desktop
  • RMM

Order of Operations: What does the upgrade and verification process look like? Are we upgrading test application first?

Verification Plan: Is there a testing qualifications checklist? Have you identified the scenarios, products, and business processes that you wish to use for testing? Finally, have you identified all the customizations, dashboard, and reports that you will want to verify as part of testing?

A New View From an E10 Upgrade

So far, we’ve looked at questions surrounding primarily technical considerations. However, with all the discussions of feeds and speeds, it’s not uncommon to have a customer come to us asking, “What does an Epicor E10 upgrade actually look like?” To begin with, answering the above questions will go far to understanding the shape of the upgrade. Next, moving beyond the technical considerations, we can identify a basic flow of activities. Moreover, this flow can help customers understand just what needs to be accomplished and in what order.

 

While each upgrade looks a little different, based on the specifics of the organization, most upgrades follow a sequence similar to the following:

  • First, spin up any new servers and install operating systems and SQL Server as required.
  • Then, install a new version of the Epicor application to a designated application server and/or upgrade the existing Epicor application on an existing Test server.
  • Meanwhile, take a copy of the production environment database to create a Test environment database on the SQL Server.
  • Next, upgrade the Test environment database from the Admin Console on the application server.
  • Perform testing activities to determine whether the new version works as anticipated. Perform remediation where gaps or issues are found and retest.
  • Once approved, schedule live upgrade, client deployment plan and communication plan.
  • Then, focus on upgrade production application and upgrade client deployments.
  • Support end users during post-upgrade period.
  • Finally, decommission any old application install and/or servers that are no longer required.

An Epicor Database Ace

Beyond version support, you can find many good reasons to keep an up-to-date Epicor ERP system on your side. Primarily, updating to the current version of the application allows you to leverage the cutting-edge features of the system for your users. So give some thought to sprucing up your data with an Epicor ERP upgrade.

Do you have a question for an Epicor consultant? If you need an answer to an ERP question, please fill out the form below, and we’ll talk to you soon. Likewise, you can use the chat to ask your questions, and we’ll talk to you within seconds or minutes. For more Epicor consulting advice, read one of our ERP white papers. If you’d like to know more about hybrid and private cloud ERP, watch a webinar on virtual office cybersecurity. Then read about our managed IT solutions that are perfect for any ERP system.

Epicor System Monitor: Canceling a Hung Task

Epicor System Monitor: Canceling a Hung Task

Epicor’s System Monitor is a handy ERP tool that can be used for one of many purposes in working with the background processes and reports that Epicor’s Task Agent orchestrates. The Epicor Task Agent handles all server-side tasks for a given application server. These can be scheduled tasks or “immediate run requests” that are triggered by end users. Additionally, these can be SSRS reports or long-running processes like MRP or PO Suggestions. Whatever the tasks may be, the Epicor System Monitor is the perfect tool for viewing their status as they run, and their history once they complete.
Chalkboard Sketch of Planning Steps Including Tasks
On occasion, a task may hang or get stuck such that it prevents further processing. Imagine that a process such as PO Suggestions hangs up and stops processing, for one of many reasons. Tasks are stored in Epicor’s SysTask table, and if an active task such as PO suggestions is stuck in the System Monitor, it will prevent any subsequent attempts to run PO Suggestions. This can be a great problem to a company that needs to get new suggestions in the hands of its purchasing department.
Epicor System Monitor Generate PO Suggestions

Fortunately, there are a number of steps one can take to cancel or complete a stuck task.

When troubleshooting a stuck task in Epicor, look to address it in the following order:

  • Cancel the task in the System monitor
  • Bounce the Task Agent
  • Bounce the AppServer instance
  • Update the rogue SysTask record directly in SQL

Cancel the Task in the Epicor System Monitor

The simplest way to kill a task is using the Epicor System Monitor itself. This can be done by navigating to the “Active Tasks” tab, selecting the task you intend to cancel and clicking the delete (“X”) icon. If successful, this task will fall out of the “Active Tasks” queue and fall into the “History Tasks” queue as a task with a status of “Cancelled”:

 

E10 Canceling Active Tasks

Bounce the Task Agent

If the task will not cancel through the System Monitor, you can try to bounce the Task Agent itself, which may free up the task and allow it to cancel. This is a relatively noninvasive method and will generally go unnoticed by the user community. From the AppServer, launch the Epicor Administration console, and from the Admin console, launch the Task Agent Configuration utility. Select the task agent you wish to cancel and from the “Actions” menu, select “Stop Agent…”:

Epicor Stop Agent Screen

Bounce the AppServer Instance

If a Task Agent bounce is ineffective, bouncing the AppServer itself may work. This is a much more invasive solution, so it should be done when the user load is low, or else at a prescribed time such that the user community will be prepared. From the Admin Console, navigate to the server you wish to bounce, right-click the server node and select “Stop Application Pool.”  Once stopped, right-click it again and select “Start Application Pool.” In my experience, this will normally shake loose the stuck task:

Epicor System Monitor Admin Console to Stop a Hung Task

Update the rogue SysTask record directly in SQL

If all else fails, your last recourse is to update the SysTask record through SQL Server. Opening an instance of SQL Server Management Studio, navigate to the Database in question and create a new query. Enter the script below, adjusting the SysTaskNum to reflect the specific task number as found in the System Monitor. Run the query to update the record. While I am never a fan of direct SQL updates, this is one case in which such an update may be necessary.

 

update ice.SysTask set EndedOn = GetDate(), TaskStatus = ‘Complete’, History = 1 where SysTaskNum = 55228
delete ice.SysTaskKill where SysTaskNum = 55228

 

 

The Epicor System Monitor Lets You View, Manage and Cancel Tasks

At times, Epicor tasks need to be stopped. Hopefully, this article helped you understand the steps to take when trying to kill a task. This Epicor screen shows you which tasks are active, and it enables the initial steps for task resolution. You might even use this ERP feature daily. Due to its usefulness, the System Monitor is a classic. If your ERP system is a labyrinth, then your Epicor System Monitor is a golden thread, helping you navigate the maze and kill the wrongful task. As I’ve always said, it’s better to monitor than to minotaur…

 

For more ERP tricks from our Epicor consulting team, ask us for a case study on CTO and ETO implementations.

Or click here to watch our Epicor Summit to learn about Planning Workbench, SQL Server Administration, and SSRS Reports.