9 Replies Latest reply on Jul 2, 2008 4:07 PM by Brian Slick

    I-DEAS Transition Problem - Version Control

    Brian Slick
      The next issue we are seeing in Enterprise has to do with version control. I'm a firm believer in the value of pictures, so I'll try to incorporate them here to describe the scenario. This issue is pretty much a show-stopper, so any assistance in getting around it will be greatly appreciated.


      I'll start with a new part in SolidWorks. I'll just use text for the geometry to help keep track of what is going on. (Please pardon the crappy screen shots)

      The initial part

      I'll check this into Enterprise, and will not keep it checked out. Verify what is in Enterprise:

      The initial part in Enterprise

      Version 1 of 1, preview looks good. Now I will create an assembly, and insert my part into it. I'm going to use an internal part to visually represent the versions.

      The initial assembly

      For reasons I don't entirely understand, the initial save of the assembly that I had to do in order to work on the internal part actually performed a check in. So, the first version I'm going to be interested in after checking in will actually be version 2. Not a big deal, just a curiosity. Here's what it looks like in Enterprise:

      The initial assembly preview in Enterprise

      Version 2 of 2, preview looks good. And the BOM...

      The initial assembly BOM in Enterprise

      ...correctly shows that version 2 of the assembly contains version 1 of the part. So far so good. Let's assume that this part and assembly go through a document release process/workflow, and wind up in an issued state.

      Now an Engineering Request (ER #1) comes through, requesting some enhancements to the part. No problem, Engineer Bob checks it out and makes some changes, then checks it back in.

      Part version 2

      Bob gets some feedback, and makes another change, and again checks it in.

      Part version 3

      Bob then goes on vacation, while he waits for further feedback, but it is important to note that he is not yet done with his work.

      While Bob is out of the office, an emergency issue is discovered requiring immediate attention. Engineer Tom needs to add a new part to the assembly. Tom takes a look at the assembly as it sits in Enterprise.

      Assembly BOM in Enterprise after part change

      Assembly version 2 still contains part version 1, though we note that a newer version of the part is available. Take a quick peek at the preview...

      Assembly preview in Enterprise after part change

      ...which is correct. So Tom checks out the assembly via right click, Edit.

      Check out form

      The form is a little curious, since it refers to the local version of the part as 3/3. I suppose I understand that, but I note that there is no mention of version 1 of the part. Proceeding...

      Rebuild warning

      Before even showing anything, SolidWorks wants to rebuild the assembly. Ok, that's a little suspicious, but sure go ahead.

      Assembly in SolidWorks after part change

      And now this is really wrong. Version 2 of the assembly that I just checked out is now showing version 3 of the part. This is absolutely the wrong answer. Enterprise has, for some reason, automatically provided the latest version of the part.

      I'm aware that Enterprise has a setting regarding this behavior (or at least I believe it is related), so let's take a look there:


      The option is turned off.

      Tom isn't as familiar with the assembly as Bob is, so he doesn't even realize he's looking at 1) information that is different than what is in the vault, and 2) potentially incomplete part geometry. He goes on about his business none the wiser.

      This scenario would violate the rules that we have in I-DEAS (albeit manually enforced) for document release. Once we get our Enterprise workflows nailed down, we will want this enforcement to be automatic (if possible). So either way, Tom will have to correct this situation before he can go forward. The unfortunate thing is that he did nothing wrong to wind up in this position.

      Under no circumstances do I want the software automatically grabbing the latest version of any sub-components.

      Within the scope of my testing, I do not believe I have yet seen it where repeating this scenario correctly pulls out the older version of the part. It always grabs the latest version. I'm left with a couple of possibilities:

      1. The "Always work with latest version of files" toggle is broken, and is actually turned on even though it appears to be turned off.

      2. I don't understand what the toggle is used for, and it isn't even related to this scenario.

      3. Enterprise is working as designed, regardless of toggles.

      4. I suppose there could be a SolidWorks error here, but I don't think so. In my head, SW only knows about filenames and paths. It goes to look for a file, and can only grab what Enterprise makes available for it. Enterprise is providing the wrong file.

      This is a major, major issue. If I'm doing something wrong, I need to know what the "right" way to do it is. If this is Enterprise working as designed, or a bug, I need a workaround or something. I need for assemblies (or drawings, for that matter) to bring out the appropriate older version as it was when checked in, not automatically skip to the newest version of everything. I only want newer versions upon request, never automatically.
        • I-DEAS Transition Problem - Version Control
          Jeff Sweeney
          Is your "version of references" set to "Referenced Version" or "Latest Version"? Seems like you always want "Referenced Version"?
          • I-DEAS Transition Problem - Version Control
            Brian Slick

            Sounds like a promising option. Where is it, and how do I set a default for all users? Your screen shot looks like a check out dialog, but I'm not seeing those buttons. I did some flipping around the various tabs on the data card, and did some poking around in the administrative tool, but found neither those buttons nor the means to enable them. Probably right under my nose, but I'm just not seeing it.

            Edit: Ok, I found it under the Get dialog. Not sure that I understand why it is there and not on the Check Out dialog.

            Let's see how it works. I will select the assembly in Enterprise, and Get Latest Version

            Get latest version

            Ok, showing 1/3 for the part. So far so good. I will Check Out the assembly.

            Check out assembly

            Still showing 1/3 of the part. Good, good. Open the assembly in SW. Presented with the rebuild dialog again (uh oh), and...

            Assembly in SolidWorks

            ....bad, bad!

            Did I do something wrong, or am I into bug territory?
            • I-DEAS Transition Problem - Version Control
              Jeff Sweeney
              LOL! You give us three pages in your initial post, then when you get an error all we get is


              ...bad bad!

              ? What happened? What did you see? Tell us more!

              You are correct in your statement that for the most part SW doesn't know what PDMWE is doing. It is all fat dumb and happy opening the files PDMWE serves up.

              Check to make sure PDMWE did indeed put version one of the part in your local cache. If it did, then for some reason SW must have opened a file you were not expecting it to? If the part is still at version three in your local cache did you have the file open already in another window? Did you ensure you had a check mark in the "Get File"?
              • I-DEAS Transition Problem - Version Control
                Brian Slick
                Are the links to the pictures not working? I couldn't figure out how to do inline images, so linking was my next best alternative.

                Besides, I got the same incorrect answer as before.

                Although at this point I'm well into "hoops I shouldn't have to jump through" territory, I will clear the deck as much as possible. I'm exiting SolidWorks. I'm clearing the local Enterprise cache. I'm logging out of Enterprise, exiting Enterprise, then logging back in.

                I select the assembly. Card says 2/2, preview is correct. I right click, Get Latest Version. Local version of the part is -/3, version column says 1/3, version of references is set to Referenced version, and the part is pre-checked. I perform the Get command. I select the part in Enterprise, preview is correct, card says 1/3 with a little warning triangle. So far so good.

                I right click the assembly, Check Out. The Get toggle is on for all items, and the form again confirms that the local version of the part is 1/3. I complete the operation.

                I select the part. It is now showing version 3/3. No point in going any further, this is already wrong. I undo the check out of the assembly.

                I'm going to play a hunch, and start over. I confirm that the local assembly is 2/2, and the local part is 1/3. I again check out the assembly. This time, I'm going to turn off the Get toggle for the part (again, it was on by default) and complete the operation. This time when I select the part, it is indeed 1/3.

                I will now open the assembly in SW, and I do indeed see the correct answer, with the older version of the part.

                So it looks like what I'm chasing down is the behavior of the Get toggles on the Check Out form. Even though the form really doesn't accurately convey what is going to happen, when the Get toggle is turned on (and it seems to be on by default), the latest version of the item will be grabbed.

                Bottom line is that I want the assembly to bring out the same versions of the contents that were used when the assembly was checked in. The toggles do not seem to be defaulting in a manner that will give me this behavior. So I need to a way to adjust the default toggles. Anything that requires manual intervention to produce the correct results carries with it the potential to get screwed up in a hurry.

                Any suggestions?
                • I-DEAS Transition Problem - Version Control
                  Heather Nelson
                  When using PDMWE you must always (can't stress this enough) look through the dialog box to make sure it is doing exactly what you want it to before you click ok. All the commands are performing as it should function. If you think about it, the reason it's getting the latest of your part when you do a checkout of the assembly is because in almost all cases if you've modified parts contained in the assembly, the assembly is going to want to be looking at the latest file. Then if you check in the file, the next time you look at the assembly in PDMWE the contains tab will show y/y vs x/y until you again modify the files below it. On the checkout box you can always do a Ctrl-A, select all and then uncheck one of the get boxes. Of course you could also check out 3/3 realize you actually wanted 1/3 so you get version 1 (you'll get a warning about the file already being checked out) do a save and check it back in. Then your 4/4 in the vault is the same as 1/3.
                  • I-DEAS Transition Problem - Version Control
                    Brian Slick
                    If the dialog box requires such discrete attention to detail in order to produce the correct result, then that is a UI failure. In this case, the Check Out dialog gave me every reason to assume it was correctly retrieving the older version of the part, and did not give me any reason to assume otherwise. It really needs to provide two columns like the Get dialog box does: here is the version you currently have locally, and here is the version you are about to retrieve.

                    I would say that most of the individual elements exist to deliver exactly what we need, they just need to bring them all together on the Check Out form. The "version of references" buttons that Jeff posted are exactly the right solution, but they are in the wrong place (or perhaps, not located in the right place). I could use the Get dialog to achieve the correct answer, but then the default settings for the checkboxes on the Check Out form will override and defeat that correct answer leaving me with the wrong one. That's a UI failure. The "version of references" buttons need to be on the Check Out form, and toggling between them should automatically flip the appropriate checkboxes on individual items.

                    I have even worked out a scenario where regardless of the checkboxes I use in the Check Out form, I get the wrong answer. Let's say that I have used Get to retrieve version 2 of the part; so it is not older version used in the assembly, and it is also not the newest version. Now I check out the assembly. If I turn on the checkbox to get the part, I will wind up with the newest version 3. If I turn off the checkbox, I will stay at the version 2 that I started with. The correct answer is version 1 of the part, and I did not get there.

                    After reading numerous posts on this board, I realize that some companies want the latest version of everything all of the time. I really don't understand the mindset, but if it is what they want and it hasn't caused problems, good for them. This behavior is absolutely the wrong answer at our company. I couldn't even make I-DEAS work this way if I wanted it to. I-DEAS will always retrieve the same versions of parts that were used at the time the assembly was checked in. I could even deliberately check out the latest version of a part, then check out an assembly that uses an older version of that part. I will have both versions side by side, I can compare them, etc. I can make changes to the assembly, and when I check it back in, it will still be using the older version of the part. You only get newer versions of items into assemblies when you ask for them to be updated. In the event that I would want the latest version of absolutely everything, I-DEAS provides a command that is essentially a macro that iterates though an entire assembly and performs the same sequence of events I would have to do manually: check out the assembly, update to the newer part, check in the assembly. Over and over again, all the way through the assembly hierarchy, and the end result is a new version of every assembly and subassembly that contained an out of date part. At that point, checking out the assembly will result in the latest version of everything. This is among the more dangerous commands in the data manager because you have no discrete control over which items are going to be updated and thus get new versions; you are getting everything. This includes the low-priority project work that my coworker is doing and won't be done for months, and I have now absorbed his unfinished work into my high-priority project accidentally. That's a huge problem, yet this is the behavior we are seeing with Enterprise.

                    If there are two legitimate schools of thought regarding how the software should work, then there should be preferences provided to toggle between behaviors. And by outward appearance, there are, but they either aren't working or I don't understand their purpose. The "Always work with latest version of files" toggle should be precisely that toggle. I don't have it on, yet I am still defaulting to the latest version of files. So, make it so that when this toggle is off, I wind up with the as-checked-in versions. But give me the "version of references" buttons on the Check Out form, too, so that I can change my mind case-by-case if necessary. Indeed, the default for those buttons should depend on the preference toggle.

                    I cannot stress enough how much of a problem this default behavior is for us. In my mind, it is the single largest problem we have found so far. And again, I do not claim to be an expert on Enterprise. If I'm stating something wrong, I want to be corrected. If Enterprise today can work the way I want it to, I REALLY want to know about it.
                    • I-DEAS Transition Problem - Version Control
                      Heather Nelson
                      I think saying it's a UI failure is a bit much. The whole point of a dialog box is to let you know exactly what is going to happen. If you don't want to pay attention to it you get what you get. Blindly clicking can get you in a whole heap of trouble. For instance, there was an issue in PDMWE (that has since been fixed I believe) that would drag all the drawings that had a block in it together. A checker went to release a drawing and didn't notice that there were 10 other drawings in his dialog box. PDMWE gladly started moving all the drawings and associated files through the workflow to release. It created a headache for me to have to go back and find out what was legit and what was an accident and get them back in their correct state. If he would have just paid attention to what he was doing this would have been adverted.

                      For the problem you're having all you have to do is uncheck the get column when checking out files. For being tied to the always work with latest version toggle, if you have that unchecked I would think logically the get column shouldn't have anything checked but alas it doesn't work like that. I've discovered over the 1.5 yrs of using Solidworks and PDMWE, that just because you think logically one way odds are it's going to react a different way. You can always put in an enhancement request. I wish there was a toggle to set if you want get reference always set or get latest always set. We've had numerous problems when checking has a drawing and says what they see is not what is on the drafters machine and it *always* turns out that they didn't get the latest version of the files.

                      All that being said, you'll go blue in the face saying all the stuff of how a PDM system you currently use works so differently/better/etc than PDMWE. I am by far not a fan of it and I think it was possibly the wrong decision for our company but I have to live with what we have. I've used a few different systems and this is by far the most crude/basic PDM I've seen. We just got sorta working BOM functionality in '08. There's so many things I can complain about. An end user can't set their own column displays. I find the datacards worthless. Why can't you just have the columns set up and fill that information in there. No icons in the main window showing you if your files are out of date, checked out, checked out by another, etc. I could go on and on. Oh and one other thing... make sure your workflows are exactly what you want before you roll it out to production. Once you get any files in the database at a particular state you can't remove that state from the workflow.
                        • I-DEAS Transition Problem - Version Control
                          Jason Capriotti
                          Is the get "latest" an all or nothing option? What we really need is the ability set "Get latest Released" files. When someone checks out an assembly, it should always get the latest "Released" versions of files with an indicator of files that are inwork. The reason is the checked out part file may be inwork on a project for weeks or months. The assembly could go through an ECO several times and needs to only use the "Released" versions as that is what's in production.

                          Not sure how to handle this in PDMWE.
                            • I-DEAS Transition Problem - Version Control
                              Brian Slick

                              Jason Capriotti wrote:


                              Is the get "latest" an all or nothing option? What we really need is the ability set "Get latest Released" files. When someone checks out an assembly, it should always get the latest "Released" versions of files with an indicator of files that are inwork. The reason is the checked out part file may be inwork on a project for weeks or months. The assembly could go through an ECO several times and needs to only use the "Released" versions as that is what's in production.

                              Not sure how to handle this in PDMWE.

                              You know, I didn't carry my thought far enough. This is actually the behavior we would like to have. We don't have this ability in I-DEAS, either. When you ask for a part to be updated, it jumps to the newest version, regardless of state.

                              THIS would be a huge value-add.