Best Practices: Is your Production Code Safe?

    10862667 912401078791320 3338666159139454024 oChad Burton, Associate CNC Solutions Architect

    Object Management Workbench (OMW) is the tool that manages and controls the EnterpriseOne's development life cycle. Out of the box, they provide the basic setup which ties into the standard pathcode configuration. The default development lifecycle is very straight forward.

    Standard Pathcodes
    PS920 – Pristine – Clean, unmodified code from Oracle used as reference
    DV920 – Development – New objects and code changes start at this stage
    PY920 – Prototype\Test – Testing of new objects and code changes happen at this stage
    PD920 – Production – End of Development Lifecycle; Production code resides here and impacts Production Data

    During the standard lifecycle as code is improved and updated, it is promoted up into Prototype and eventually Production. When these promotions occur, it replaces/overwrites the previous version of the object that was in the target pathcode. This works without any issues between Development and Prototype, as we can always pull the object down from Production if issues are found. Production is never impacted and the risk around Development/Prototype is slim.

    The issue of risk grows into critical levels once the object moves into Production. As the object moves into Production and completes the lifecycle, we lose the object that was in Production previously. There are times when the testing did not occur or was not thorough enough to catch every scenario. There are also times when we find this change or enhancement had a side effect that was not desired. What happens when that side effect impacts your business? Are you unable to run payroll, take sales orders, process pick slips or process credit cards? Any of these are mission critical and the longer the problem resides in Production the more it impacts your bottom line.

    We are covered if this is the first modification of an object that makes it into production. For this situation, we can always resort to pulling a copy of the object from Pristine to repair the problem. Although, what if this was a complex change and not the first change on that object? What if this code was moved into Production by accident? It could have been a project that never finished being tested, or a developer that made the change is not available to help undo the code modifications quickly.

    Pulling the pristine copy will lose any other past changes/customizations that were working in production. It is very likely the Pristine copy will be just as big of an impact to Production. How is your backup system? Some may need to restore to the previous night or weekend backup. Going with a backup/restore option may cause other side effects to Production. How long will this process take? What is your comfort level around it?

    You can put on your cowboy hats and try to find a recent copy of the object on a workstation to sneak it back into Production, which may work or may compound the issues. Are you sure that workstation had the most current copy of the object? Were you able to trick OMW correctly to sneak that object into Production? Are you willing to take that risk to fix an issue in Production?

    Well, you don't have to take those risks or play games of chance with your Production system. GSI recommends setting up a Production Save location. Let's add one quick step into the Development Lifecycle which checks and backs up an object when it is replacing code in Production. This will allow you to fall back to a previous version of code if something gets into Production and causes problems. We just move the project to a custom status which brings back the previous version of that object. Production is back functioning and stable within minutes of finding the issue.

    Production users continue along smoothly as the development team reviews the problem around the recent modifications. Configuring a Production Save within EnterpriseOne allows you to have a "Reset Button" for code changes. With all the efforts and work done to keep Production Data safe, it is surprising how often the code is at risk. Is your Production code safe?

    Have a question about Best Practices in JDE System Management, please contact us at inquiries@GetGSI.com!