…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:
- Write permissions granted by the Access Rule Tree.
- 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,
- Cut it out. You’re scaring your coworkers.
- It doesn’t do what you think it does.
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.
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.
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?
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.