≡ Menu

Beware of Implicit Checkout

Share the knowledge

…And another thing, what’s up with NX checking parts out without being asked? Mike paused to take another swig, Somehow I’ll be able to save changes to a part without intending to, what’s up with that?

It was a typical wild and crazy night at The Dojo — a couple of engineers hanging out, drinking beer and talking about Teamcenter and NX.

What Mike had run into is one of my pet peeves with the NX integration with Teamcenter: you can’t prevent NX from checking parts out for you.

The Integration is Too Nice

Mike had been reviewing an assembly that a team of designers had been working on. He tried out some design changes. He didn’t intend to save any changes so he didn’t check any of them out.

Mike’s done a lot of design work himself. He learned the hard way to save his parts often. A summer thunderstorm, a tree branch falling on a powerline, and suddenly a day’s work is lost. His fingers know how to hit control-S to save without any direction from his conscious brain. And that’s probably what he did, because suddenly his changes had been saved to the database even though he had never checked anything out.


In order to save a change to a part you need two things:

  1. Write permissions granted by the Access Rule Tree.
  2. The part needs to be checked out to you.

Many people may have write access to the same part, but only one person can have it checked out at a time.

Explicit and Implicit Checkout

There are two ways to check a part out: explicitly and implicitly.

An explicit check out is one that you manually do yourself. In NX you can right-click on a part in the Assembly Navigator (ANT) and check it out. You have to make a somewhat conscious decision to do that.

Implicit Checkout is one that NX does for you. It saves you the trouble of doing an explicit checkout. Implicit checkout is silent. There won’t be any message telling you that you have checked out the part. The problem is that sometimes NX will check out a part to you that you have no intention of checking out. That is what happened to Mike.

Manual-Schmanual Locking Policy

Right about now some of you reading this are screaming, MANUAL LOCKING POLICY!!! at your monitor. I have two things to say to you,

  1. Cut it out. You’re scaring your coworkers.
  2. It doesn’t do what you think it does.

NX's Customer Defaults for Explicit and Implicit Checkout

Yes, there is a setting in the customer defaults to set the locking policy to manual and yes it does prevent NX from implicitly checking out the file… for a while.

Here’s the thing though,

if you try to save a NX file that you do not have checked out…

…and you have write access to the part…

…NX will check out the part to you.

Even. If. The. Locking. Policy. Is. Manual.

When you hit save NX will check the part out, save, and then check it back in. All automatically. You can try this yourself and verify what happened by looking at the check out history.

What to do?

For a long term solution I’ve filed an ER about this. I invite you to do the same. Personally I think this behavior should be changed so that you can force users to explicitly check out a part in order to change it. Perhaps the Access rule tree could be modified to control who can check parts out.

But in the short term what we do is change our access rules so that only the owner of a part has write access to a part. In effect, ownership replaces Check-in/Check-out. Users rarely explicitly check parts in or out. The only time the deal with it much is when a part failed to implicitly check in for some reason and someone else needs to work on it.

It kind of works, but it’s not perfect by any means. Having to manually re-assign objects as work is moved around the group has its own set of problems.

Your Thoughts?

I’m curious what everyone else thinks of this. Do you see this as a problem or not? Have you found a solution that I’ve missed?

Update: TC_Auto_Checkout (is not the answer)

I received an email that reminded me of a Teamcenter preferences I had forgotten to mention, TC_Auto_Checkout. At first it sounds promising because the doucmentation says that it, Enables or suppresses automatic implicit check out…, which is just what I want. But documentation then goes on to say, …of non-NX datasets. It doesn’t do anything for NX datasets.

  • http://hooverm.pip.verisignlabs.com/ Teamcenter Heretic

    Group Write access in the Rule Tree is inherently evil for just this reason!
    Short of Scott’s ER I would recommend that everyone look at their rule tree and see if they can get away with Owner write, group read/copy.

    The other option is that users are forced to do explicit check out to PROTECT their parts and that comes with a whole boatload of issues.


    • Rafi Krigman

      Just heard that the problem described her regarding implicit vs. explicit checkout is “fixed” in NX8.5 integration with TC

  • Patrick K.

    Scott, I completely agree with you.  This has been a problem for much too long…


  • Per Engström

    What about using “Save Work Part Only”? Maybee that can prevent some people from unconsciously saving wrong parts? Like saving parts (or subasm) in assemblies when they only think they changed things in the asm?

    • Mike Hallack

      My thoughts exactly.

      I have convinced our users to stop using the default save (evil) and only use the ‘Save Work Part Only”. Prior to NX8 I had created an icon for SWPO on our site wide custom “Callaway Save tools” toolbar. Big Thanks to Laurie and the dev team for adding the icon to NX8.

      Hey Scott, great name for the main character. LOL

      • http://plmdojo.com/ Scott Pigman

        I listened to a NX 8.5 demo last week. They’ve finally added the ability to require an explicit check out in order to save changes to TC. That should finally solve this problem.

        Yeah, that Mike sure is a character.
        Ohhhh… I see what you mean now 😉

Optimization WordPress Plugins & Solutions by W3 EDGE