Hints for Test environment

Just some hints when making a Test environment from a backup of the live one.

  • Set a theme that obviously shows the user they’re in the Test Environment
  • In Company Maintenance:
    • Change Company name to something obvious like !!! TEST CO (10-13-2020) !!!
    • Change Global Alert From -> Email Address to indicate it’s from the test company.
      Ex: from no-reply@example.com to no-reply-TST@example.com
  • In Company Config:
    • Disable TaxConnect, or set URL to sandbox (if you have one)
  • In System Agent Maintenance:
    • Remove schedule tasks and/or disable schedules
    • Update “Server Data Directory” and “Client Data Directory” in System agent (if needed)

Probably lots more … Feel free to add yours.

Maybe it should be a new topic, but what “resources” do you share between the Production App and Test App?

  • Do you have entirely separate SSRS storage (DB’s for the actual RDLs, and/or the ReportData, DataSources, etc…)?
  • Separate attachments storage?
  • Separate Client Data storage (the “EpicorData” folder on the App server)?

If so, do you copy those resources from the storage for Production App, to the storage for the Test App?


When making a new theme for the Test environment, do it in the Production environment. This way it will exist when the PROD is copied to TEST. Then all you have to do is select the theme.


Good ideas Calvin, for sure.

We have separate everything - sql/ssrs server, docstar server, appservers, epicordate locations, etc. - but they are all on VMs and with the ability to snapshot at will, testing/receovery/testing cycle is super easy.

As for changes inside the DB, I’ve built a script :slight_smile: to do the work for me… it can be found attached to this post TestEnvironment on same server as Production - #6 by Ashley
It disables schedules, set’s company names, directories, etc. as you described.

The drawback of totally separate is that you do need to copy report files and stuff between systems to keep everything in sync.


I was just about to ask if anyone had put a script together for this :slight_smile:

Here is a previous discussion around this topic. I am planning on using @markdamen’s SSIS approach just have not had the time to get it in place.

EpicCare has KB0050119 Checklist after Restoring an ERP10 Database to a different location that I usually refer to.

1 Like

I also like to have a field Company.LiveDB_c that I set to false. This is used in things like print routings so the emails can still be sent in test, but to test accounts.
Epicor now has a basically the same field in Ice.SysCompany but it’s a bit hard to access in the routings…


Makes me laugh, it says,

“Since 10.2.700 you can define colors and a friendly installation name such as pilot or live which may be used to help you more easily see what environment, company, and site you are currently working in.”

Yeah but not in Kinetic…

I’ll add that to my gripe list. Maybe they mean the theme (windows) as @ckrusen said and not so much the home page. But that is a genuine use of colors that Kinetic disables. I think that’s what got me on that tear in the first place, was I couldn’t make my home page different in Test.

For colors I usually set them in the config file. (Doesn’t help for Kinetic)

Old school E9 colors for test.

<Style value="Office2007" options="SpecifyName|None|Default"/>

Not near a Kinetic screen at the moment but doesn’t the Active Home Page show the Company Logo? Don’t remember if it always displays or just in the Change Company/Site menu. But if it does, you can point to a nice sickly-colored green image to get a visual indication that you’re in Test in Active Home/Kinetic.


This it what I do with my theme :slight_smile:

1 Like

@Mark_Wonsil Just the drop-down. Was definitely worth a try, though.


@ckrusen Um, Calvin, you didn’t really need the arrow. I was able to spot the green without it…

1 Like

I was afraid of that.

How about the Employee (EmpBasic) photo? Just make it that pretty green for every user login. :man_shrugging:

This is a really good list -
I would add to turn off the mail routing - maybe tweak the URL in Company maintenance to prevent email routings of invoices, etc.

I have asked Epicor Cloud team to do something like this - especially the theme and company name - I would think that it would be a simple process to push through.

Especially on MT - where the theme is shared with all of the other companies.

In SQL before starting task agent

  • update Ice.FavItems pointing to old app server replace with this app server (no longer needed but was a bug in 10.1.X)

  • update email addresses in tables used by print routing routines (ie, Customer, VendCnt, PerCon, etc)

  • update Ice.ProcessTaskParams whereparamname = ‘EmailTo’ to my email

  • update Ice.ReportStyleRule RuleBody XML to contain adjusted subjects and addresses

  • update Ice.SysCompany SMTPServer, Name, EmailFromAddr, etc

  • update Ice.DocType set BaseURL

  • exec sp_change_users_login on SQL users (needed when moving across SQL servers)

  • update Ice.Menu where program like ‘http://[MyReportingServer]’ (anything pointing to our live Reporting Server, repoint to the TEST reporting server)

  • update Ice.SysAgent set filerootdir to new root and started=0

  • update Ice.SysConfig values with key1 in DataDiscovery,EducationUrl,ESUrl,HelpUrl

  • delete from Ice.SysTask

  • truncate tables => Ice.SysTaskParam, Ice.SysTaskLog, ice.SysRptLst

  • update Ice.BAQExtDataSource set ConnectionString (encrypted so change it manually, record the value from test and then you can use it in your script)

  • update i set i.ThemeID = ‘CleanRoom’ from Ice.SysUserFile (sets white theme for all users)

Then manual steps

  • start task agent
  • manually redeploy all dashboards and directive update to refresh signatures on all BPM
  • in old versions, had to run conversion 90010 to refresh updatable BAQ BPM signatures

I don’t have the latest version of Epicor so I can’t play with the Kinetic stuff, but I did take all the other suggestions here and update my helper script in case anyone would like it…
Post Upgrade Settings - Generic.sql (12.8 KB)

1 Like

Have you tried this in E10.2.600?. It no longer works as we cant access other tables in routing. I have done similar in 10.2.100. APR is bit a mess when it comes to different environment.

Lot of nice ideas.

I do have lot of UDCodes for generating output files, EDI path, etc. I am planning to create BPM Function and attach to SysAgent so that it will update when server path is changed based on the environment.

@Arul, Company.LiveDB_c will be available in the routing if you add Company as part of the RDD.

I wouldn’t do the cleanup in a BPM. Do the cleanup in the SQL script you use to restore test.
I run a script that restores the DB, sets the test DB to simple recovery and then all the various clean up.
Take a look at what @MikeGross posted earlier. This is the one exception I make to the rule “never write directly to the DB”.


If you use Virtual Machines then it’s best if you replicate your PRD. That means separation of everything.

Few Items to add:

  1. Reset the passwords, so in DEV or TST they have generic passwords.
  2. Find/Replace Printer Paths.
  3. Find/Replace any UD Columns that store some UNC Output Path
  4. Attachments

I have seperate BarTender, Service Connect, Quick Ship, Epicor. (DEV, TST, TRN, PRD)

Now if you are not using VM atleast seperate SSRS and Attachments.

I have thought about this before, but I know Epicor has the application instance condition in the BPM. image

I wish it had this in the SSRS breaking/routing, as it would prevent us from e-mailing vendors/customers when running tests for changes or support tickets. But adding a UD field could at least keep you from generating any results in that SSRS report…

Let’s get this out on Epicor Ideas!! This functionality could be applied in a number of places - especially some of the items in the script like Avalara Tax Connect, DocStar, Agile/Manifest, HCM, Mattec, etc…