[New Feature] Asset Maintenance Management

As promised during ERPNext Conference, here I present Asset Maintenance Management. Some of you might remember me presenting Equipment Maintenance we have implemented for our company ESO Electronic and many of you wanted that feature. So we have enhanced it and extended it to the new Asset Module.

I have already sent the Pull Request to the Frappe Team, you can check it out here.

Asset Maintenance/Calibration Management

Enable Asset Maintenance

Check Maintain Required in Asset to enable Asset Maintenance

Asset Maintenance Team

Create Asset Maintenance Team, select team members and their role.

Asset Maintenance

For each asset create a Asset Maintenance record listing all the associated maintenance tasks, maintenance type (Preventive Maintenance or Calibration), periodicity, assign to and start and end date of maintenance. Based on start date and periodicity the next due date is auto-calculated and a ToDo is created for the Assignee.

Asset Maintenance Log

For each task in Asset Maintenance create a Asset Maintenance Log which will have status, completion date and steps taken. Based on completion date here, next due date is calculated automatically.

Asset Repair

You can also maintain the records of Repair/Failures of your asset which are not listed in Asset Maintenance.

I know there are lots of other enhancements that can be done to this, but this is the final first cut. After community starts using it and have improvement suggestions, we will improve on it.


@KanchanChauhan very good work, many thanks

1 Like

This combined with the support module means ERPNext can be a bare-bones standalone CMMS. That’s pretty cool considering there’s no real, reasonably simple, and supported open source CMMS available today, and the present paid options are EXPENSIVE!

One small suggestion is to rename “Asset Repair” to “Asset Work Order” or just “Work Order” - that’s the more common terminology in the CMMS world.

Ideally, based on the maintenance schedule, a “Work Order” is automatically generated which needs to be attended to. But, this implementation works as well!


Another feather to ERPnext. It was just this week i wrote about ehancement of maintenance module and our amiable @JayRam said we should wait a bit for the manufacturing module enhancement to be done and this facility management will be integrated to it.With this ERPnext stand tall as Facility Management Software.
Kudos to the Team and community.

Awesome work Newmatik team!!!

Awesome work! How soon can I test ride this?



Hi @JayRam. It is already in develop branch, should be available on next release.


Develop branch: Here I come!

@KanchanChauhan Can you guide me how to create barcode for each item from this module? The items can be located in remote locations hence the need for PDA access to conduct audit trail. Can the controls team access the module through hand held device to conduct audit of stock in EPRNext versus actual physical stock by scanning the printed barcode. Something similar to what supermarkets do to check inventories at retail outlet. I am testing this module on V10 currently.

Thanks for the help. Wishing you a happy new year.

@fkardame FYI.


Unfortunately barcode scanning is not available for Assets but that will be a great enhancement to it. Can you please raise the github issue for this.

1 Like

Thanks. Done. Hope it correct as it is first time I have created an issue on Github.

1 Like

i am not able to create new asset … new option not showing

I am test driving the asset maintenance module. Excellent work.

Is there a way to generate the Maintenance Schedule, based on the Maintenance Task that is set up?

Can we not integrate the Asset Maintenance module and the Maintenance Module? The Maintenance Module (Not the Asset Maintenance Module, but the Customer Focused Maintenance Module.

The customer focussed maintenance module already has the maintenance schedule that it can generate schedule.

Is there any plan to link up these two modules? I think we should because the rhythms are the same.

Excellent initiative. Thanks much Team ESA.




Hello All,
How do I log completion of a Maintenance task after the Due Date?
After creating an Asset Maintenance, a log is created for 19-05-2019, on 21-05-2019 I want to record completion of the task, I tried it in the following 2 ways

  1. When I mark the Status as Completed and Save the Asset Maintenance Log, the status changes to Overdue since the Due date was 19-05-2019 and I am trying to mark it as completed on 21-05-2019
  2. When I try to add a Completion Date; 21-05-2019, there is an error saying “Please select Maintenance Status as Completed or remove Completion Date”

hi, how to update overdue asset maintenance log? same issue with item 2 highlighted above. there is an error saying "Please Select Maintenance Status as completed or removed Completion Date

Hi, I am trying to set up an Asset Maintenance program.

When i create an asset there is a mandatory field for ‘Asset Name’ which I fill in but when i create an Asset Maintenance it uses the Asset Series number as the Asset Name.
How do i get the Asset Name to copy to the Asset Maintenance?
Using erpNext Hosted Cloud v12

Hi, how can I set different periodicity? Like semester, biannual…


@KanchanChauhan this was good feedback. But it seems “Work Order” is reserved for manufacturing module – as a manufacturing/production “Work Order”. I guess we have to use “Asset Work Order” or “Maintenance Work Order” or something else.

For us, we are working on replacement for our work order system (a CMMS). The Asset / Maintenance module is probably great for those that don’t have experience with other systems @felix is referring to, but this Assets/Maintenance module becomes a little confusing with the processes and workflows for different things.

Primarily site maintenance teams will have something like this:

  • Single table of all “Work Orders”

  • The single “Work Orders” doctype should combine ALL TYPES of work on an asset such as, commissioning, repair, calibration, maintenance, pm, retirement, etc. (just make a work_order_type field). This makes reporting, filtering, dashboards, etc. very easy. This is where current module has an issue (IMO) by giving “Maintenance” and “Repair” different doctypes.

  • “Recurring Work Orders” would be something like special version of auto-repeat. This is what you are already doing with “Asset Maintenance”. Instead of defining task task task within a single “Asset Maintenance” record, it is probably better to define each as their own doc/record because in the real world each activity probably has specific instructions, SOP’s, defined parts or parts kits to be used, etc. I.e. if asset is vehicle, the every 3 months oil change, has much different instructions (and instructions probably required for tech) than every 5 years engine rebuild.

  • The “Recurring work order” should just create a “draft” document in the “Work Orders” table assigned to whomever was indicated in the recurring work order template, or TBD by work manager (work_order_assigned_to = 0).

  • As others suggest, additional frequencies/intervals probably need to be considered (sometimes people have service interval of 3 times per year, or every 5 years, etc.). There will be a minutes frequency for auto-repeat soon, so this should help define whatever frequency anyone needs.

  • For a CMMS, the Assets/Maintenance module is probably too heavy on finance side. But on the other side of this, it is probably important to be able to link a “work order” to “purchase order” - for finance :slight_smile:

  • Parts / Stock linkage is another nice feature to have . If “work order” is to change oil on vehicle, then maybe the technician processing the work order will consume 5 quarts of oil stock, as well as 1 oil filter from stock. It is nice if this can be indicated within the work order. Probably don’t want to have a technician have to leave the ‘work order’ to go to a different view for Parts/Stock. Let them do within the work order and update qty based on what they report as used/consumed.

  • In many environments, “work order” must be reviewed/approved by a manager or another person. Work Order should be able to be submittable document with capability for workflow.

  • Integration with to “todo” for assigned maintenance tasks is nice because it uses frappe methodology - but maybe makes workflow more complicated than needs to be? A simple “Assigned to me” button on top of doctype “Work Order” could work for technicians to see what is assigned to them. (refer to my question here as example… How to make filtered results BUTTON on top of doctype results? - #2 by jpuser)

Problem is this is now 3-4 years later and some people have probably already adopted Assets/Maintenance module as it is. Only thing for me to do is either do is use Assets/Maintenance module as-is (and add new fields I require) or create new app from scratch. But I would use locations, assets, items, etc. still. Difficult decision.