PDM Enterprise comes equipped with a lot of tools to help you with automating your day-to-day routines. One of the most expansive tools is the SolidWorks PDM Enterprise Dispatch Add-In which allows you to set up custom programming without necessarily have any programming experience! That's great!... until something doesn't work how you think it should. One of the problems that I'm referencing is the Dispatch trigger to run a Dispatch action when a file is either checked out, checked in or the checkout is undone. Here's what's happening ---
When a file is checked in to the PDM Enterprise vault, it is locked down and not available for modification. In order to make changes to a file you must first check it out of the vault (think of it as a virtual library). Once checked out, it copies the file(s) locally to your machine and you can make whatever changes you need to.
Once you have finished making your changes you will need to check your file back into the vault so that it is safe and so other users can check it out if they need to (return your books so others can read it!). When you check the file in, the changes are now saved to the server and a new version of the file is created, for instance going from version 4 to version 5.
Undo Check Out:
There will be instance when you've gone ahead and checked a file out, made changes to the file, then realized that those changes aren't actually necessary. Yes, we've all been there. So now we're stuck with this updated file that we don't want to keep. Our first thought would be to simply undo all of the changes that we made, then check it back in, but that's more work than we need to do. Instead, we can use the Undo Check Out command. When you undo the check out of a file, the changes are completely discarded and no new version is created, for instance version 4 will stay at version 4.
Now here is where the tricky, behind the scenes shenanigans start. If you check a file out, make absolutely no changes to it, then select "Check In", the programming in PDM Enterprise actually does an "Undo Check Out" because nothing has changed and there is no need to create a new version. Dispatch will reflect this programming so you may think that the "Check In" trigger should activate, but it's actually the "Undo Check Out" trigger that is activated!