Introduction
In our modern day of advanced technology and scientific achievement, many of us take for granted that all the tools and equipment around us just work. Most of the technology we take for granted is considered disposable. We replace expensive cell phones every two years. Microwave ovens and televisions are discarded the first time they break or when the next great model comes out. On and on the list goes. In terms of the maintenance world, this is called “run to fail”. We use and abuse these devices until they get broken or just plain wear out and then just go buy another one.
This run-to-fail mindset as consumers is so prevalent that we fail to recognize many maintenance activities that we perform every day. Something as simple as vacuuming the floor is maintenance for the carpet. Changing lightbulbs and mowing the lawn are just two more ways we “maintain” our homes. These basic activities translate to the industries of construction, manufacturing, and more in a highly sophisticated field simply call maintenance.
Where the average consumer may get an oil change occasionally for the car or truck that gets them to work, the maintenance world manages a list of assets, or equipment, and the investment in maintaining that equipment to maximize life and reduce the total cost of ownership. Equipment, such as a car or truck, is more than just transportation. It is an expensive tool that impacts the profitability of the company, and thus must be maintained to reduce the total cost of ownership over the life of the vehicle.
On January 27, 2020, Acumatica announced the acquisition of JAAS Systems (link: /corporate-newsroom/press-releases/acumatica-summit-opens-to-record-attendance-announcements-drive-leadership-position-in-midmarket-manufacturing/). This acquisition added the popular manufacturing module to the Acumatica portfolio. With that acquisition was created the need for a simple solution supporting the maintenance organization that keeps production equipment running. While the largest organizations use Enterprise Asset Management (EAM) for sophisticated management of equipment, the maintenance organization relies on Computerized Maintenance Management Software (CMMS) to track equipment and schedule preventive maintenance (PM) work needed to keep the plant operating efficiently.
At Summit in 2021, the question was posed to Acumatica management if a CMMS solution was available or in development. The response was that it was not at the time and that they would welcome it if anyone in the community was willing to work on such a project. Fast forward to today, and Phase 1 is now available for free on GitHub as an Acumatica Community Project. Read on to learn more about the project and where to find it if you would like to try it out or even contribute to ongoing development.
The Acumatica Community Project
Seeking to look beyond one person’s ideas and abilities, a group of Acumatica Developer MVPs and other experts in the community and within Acumatica came together to form the project. Geographically, this group spans coast to coast in the US and as far away as South Africa. Effectively a long-running Hackathon project, the team lead presented the idea for the project and provided continuity for ongoing design discussion, but the shape of the project and the results, in the end, would be a team effort. The companies represented by developers and business leaders who shaped discussion and/or coded on Phase 1 of the project are shown below:
The community project began with presenting the idea to an Acumatica executive who directed the project to an Acumatica Product Manager. The resulting discussion vetted the need and value of such a project. The most obvious question was simply, does Field Services meet this need? After a fair amount of debate and inquiry among the community, the project showed merit as it focused specifically on internal equipment and related maintenance. In contrast, the field services module was designed for supporting (and billing) clients with data requirements that make data entry for simple internal maintenance a bit challenging, to say the least. This led to the basic design concept that the project must be easy to use and enable a maintenance technician who may not be computer savvy to enhance his or her work rather than create additional burdens.
Deciding on simplicity and flexibility that supports a wide variety of use cases by making almost everything optional, the team set out to design and build the project. Starting with weeks of meetings to debate use cases and create technical design documents, the key elements of the tool were created in a working model with very little behind the screens in terms of business logic. The working model based on the then-current design concept cleared the way for more productive design discussions, and assignments were made to each of the developers. In addition to the actual screens, there was a need for business logic, DAC review, and enhancement, the addition of standard features like approvals and attributes, as well as web service endpoints and screen definitions for the mobile app.
To complete the project, a GitHub repository was created to support distributed development across the various members of the team. A team member was selected to manage the repository, and all work, issues, and reviews would be completed in GitHub. By installing a local development instance for each member of the development team and syncing to GitHub, changes could be tracked, and conflicts resolved. In at least one case, a working element of the project was broken after a merge, and the use of GitHub in Visual Studio resulted in a clear comparison of the working code versus the newly broken code to locate and resolve the issue.
Presenting CMMS-Lite – Phase 1
Phase 1 of the community project brings the basic features needed to support maintenance operations. Master Data (Profiles) allows setup of Equipment, Work Order Classes, Measurements, and Failure Modes. Transactions provide Work Order entry for both PM type templates and standard work orders for actual work performed. A processing screen scans the equipment for scheduled PM jobs to be performed and creates standard work orders to be scheduled for completion. A basic set of reports exist to view Equipment details, Work Order Details, and a list of Work Orders. A preference screen enables adding various setup parameters and standard approvals for the module.
The heart of CMMS-Lite is the equipment master which represents complete machines, individual components, shared tools, and even “Other” when no other category fits. The equipment screen enables managing somewhat static information about at the equipment, but it also provides a place to focus on the maintenance and reliability of that equipment.
When equipment is purchased for manufacturing, the maker of the equipment often provides a Recommended Spare Parts List. The BOM tab allows adding these items to the equipment provided they are set up in the Stocked Items screen. The Schedules tab supports attaching PM jobs to the equipment to define the schedule of repetitive maintenance needed for the equipment. Work Order History simply shows all work orders that have been created referencing the equipment. Failure modes provide a place to record ways that the equipment may fail and provide a comment as to how that means of failure is mitigated.
The work order consists of two types. The Template work order is the definition of a PM job that would be scheduled for equipment. The Standard work order is actual work, whether created to satisfy defined PM activity or manually entered by a user requesting maintenance service. Standard Work Orders may be routed through the standard Acumatica Approval process, complete with optional or required reason prompts for approval or rejection, and contain any attributes associated with the work order class selected.
Work orders are comprised of a list of instructions, or operations, to be performed. Each operation optionally may have labor requirements specified by the type of skill and hours (in decimals) required. Materials and tools (equipment of type Tool) needed for the operation may be specified, as well as measurements taken, and failure modes observed by the maintenance technician.
The processing screen may be set on a standard Acumatica schedule to convert any scheduled PM jobs into Standard Work Orders.
Once the standard work order is created, it may require approval or advance to the Pending Schedule state for a maintenance planner to assign a date for the work to be completed. Once completed, the work order will update the equipment schedule with the last completion date and automatically set the next scheduled date to start the cycle over.
Where Do I “Git” It?
Excellent question! CMMS-Lite is now available on the Acumatica GitHub. (link: https://github.com/Acumatica/CMMS-Lite) To live life on the edge, the most recent version in development is under the Development branch. The current version considered stable for testing should be under the branch Testing.
Download it. Try it out. Provide feedback. “Git” involved and make it your own! Phase 1 is released now and optimized for Acumatica 2022 R1.