Thursday, June 29, 2017

Don't Change my BOMs!

One thing that AX is not inherently great at is BOM management. Upon initial setup, if you use "out of the box" security roles, any AX user who can create Released products will be able to modify BOMs as well. There isn't a really good method of tracking BOM changes either, and a user who doesn't understand the complexities of your BOM structures can accidentally mess things up pretty quickly with just a few clicks of the mouse.

In certain industries, BOM change tracking is highly important. Changing a BOM component within a BOM may need to be approved, signed off on, and meticulously tracked down to the minute it was changed.

Since AX doesn't have BOM management, there are a few ways that AX users can accomplish this themselves. I am going to discuss a few different ways I have discovered that users can utilize to track BOM changes within AX and limit their risk with BOMs.

Remove User Access to BOMs

Ultimately, removing user access from BOMs is what a lot of people end up doing. This restricts visibility into the BOM process and can create a headache for any organization. Many people need to have the ability to see and use BOMs from sales to production, then also into the QA process. You have to be able to share this information, but you don't want people to accidentally delete a BOM or change a quantity on a BOM while they are clicking around. Ultimately, it seems that more users accidentally delete a BOM when attempting to remove a line from a BOM because they hit Delete instead of Remove, or they hit the wrong button because the buttons are so close together.

At the end of the day, we really just want users to see BOMs, but we don't want them to be able to change them. What options do we have to limit risk with BOMs in AX?

Block Editing of BOMs

There is an awesome parameter in Inventory management > Setup > Inventory and warehouse management parameters > Bills of materials called Block editing.

The Block editing parameter is available in Inventory and warehouse management parameters
If "Block editing" is selected, then an approved BOM cannot be edited.

It states "If selected, an approved BOM cannot be edited." So, what does that mean?

Basically, there is an approval on a BOM and an activation on a BOM. By selecting this Block editing parameter, a BOM cannot be changed or adulterated in any way unless the approval on the BOM is removed.

Well, this doesn't offer much reassurance if everyone has access to the approval button, but your system administrator can add a new security role that removes access to the Approve button on BOMs with the exception of the people that you want to be able to access, edit, and approve BOMs.

This is a somewhat strange parameter in execution though. In order to remove approval, the approval has to be removed from the top level of the BOM at Inventory management > Common > Bills of materials.

Notice there are two places to approve a BOM in this form.

As you can see in the image, there are two levels of approval in this form. The top one is the one that needs to be removed in order for this to work.

If you access a BOM on a Released product under Lines in the Engineer tab and try to remove the approval, it won't work. The BOM can be re-approved there, but the approval cannot be removed at this level.

BOM as seen on Released product has only one level of approval.
BOMs as seen on Released products only have the one level of approval.

Once the approval is removed from that top level in the BOM form in the Inventory management module, the BOM can be edited as desired. This process will keep BOMs from being accidentally edited, changed, or deleted.

Never Changing a BOM

Some companies may choose to never change a BOM. They may make a new BOM every time they need a change. That is where this next parameter comes in handy.

In Inventory management > Setup > Inventory and warehouse parameters > Bills of materials, there is another checkbox called Block removal of approval. 

The Block removal of approval parameter is available in Inventory and warehouse management parameters
Block removal of approval, when selected, will not allow anyone to remove an approval from a BOM.

It states "If selected, an approval cannot be removed from a BOM or BOM version." The only scenario I can imagine this working well for is if a company uses a BOM for a certain period of time and puts an expiration date on it, then transitions to the next approved BOM after the expiration date has passed. 

Using this method would keep a solid history of BOMs that were used during certain time periods and you would know that the BOM had not been adulterated at any time during that period because of this parameter.

Case Management

Using Case management for BOM tracking can be effective - IF everyone uses it properly. Because this method relies on people to enter the data themselves within cases to track changes, it has a higher failure rate than using a systematic method like those listed above. 

Using Case management would be good for a company without stringent requirements for tracking changes, or if one person always enters the data and is the only person who has access to BOMs.

Like I said, this is the most fallible method to ensuring strict adherence to BOM management and shouldn't be relied on as the gold standard.

Tracking BOM Changes

Lastly, a company may want to track who changes what and when. There are a couple of ways to do this. 

First, BOM versioning allows users to keep old versions of BOMs listed with dates used. You can enter the "from date" and the "to date" for the BOM, and as long as it is entered correctly, that should be sufficient. There can be multiple versions of a BOM that can be kept for as long as a company likes. This does allow for some error as these can be modified or deleted later. 

Second option, turn on database logging for BOMs. Basically, any change made to a BOM will be documented in a log with the date, time, and who made the change. This can be a great tool, but keep in mind that it will log EVERYTHING related to BOMs and it can grow rapidly. Database logging should only be used if this is a strict business requirement. This functionality can be accessed by your system administrator in the System administration module.

BOM Management in AX

So, while there isn't a true BOM management process in AX, it can be done. All it requires is a bit of creativity and a look at what is truly needed in your process to maintain compliance and peace of mind. 

What other ways have you found to manage and control access to your BOMs? Leave me a comment and let me know what else users can try!


  1. Great article! I'll add reference to it in an upcoming post in my AX 2012 Security Unwrapped Series at!

    1. Thanks GG! You're the AX Security guru! I'll reference you back.

  2. I totally agree, this is a big hole.
    I know a few partners that have more systematic BOM change management, including my old employer in France. My current employer implemented BOM-sync mechanism for a client to allow BOM changes to be replicated to Production orders where the materials were not yet consumed. The fun starts when you hit Phantom BOM lines :)

    1. Thanks for the comment! Would love to see an easy BOM management solution within AX. Hopefully Microsoft considers this for the future!

    2. I wonder what your opinion is of the new 'Engineering Change Management' functionality released in D365 (sometime in 2020, I believe).

    3. I have just started working with the Engineering Change Management module. It's interesting! I think there is some work to be done, but it's better than nothing.