Hi John, my answers below:
1) There's no built-in variable called "State" apart from Searching in PDM. You would have to create a variable called "State" or "Status" and assign it to a data card. As PDM Standard uses a workflow, similar to a lifecycle in Workgroup, you can create a Set variable action on a workflow transition. See the screenshot below as an example. The value of the set variable action is set to "Destination state" so every time a file goes through this workflow transition, the value of the variable will change to the destination state eg Released.
2) Do you mean prevention of Checkout rather than Checkin?? If so, open your workflow, click on your released state, and under permissions, prevent the user or group from checking out the file. This way, they can't check out released files and make changes on them, they can move them to an earlier state in the workflow where they have more permissions.
I hope this helps.
Your response has prompted a few more questions, I am afraid:
1. I can create a variable called 'STATUS' in the admin tool, but I don't know what block name or attribute name to enter. If I am right, I need to enter the block name of the block in the metadata where the STATUS variable will be stored. How would I know that?
2. If I look at my Part card, there is an edit box labelled 'Current State', with the variable <Current State> associated. If this is the variable showing the workflow status of the object, can I simply use this variable, rather than creating my own?
3. My drawing format uses the variable '$prp:"status" to show the Release status of the drawing. What would I put in there instead?
Regarding the Checkin question, I think I do mean Check In, not Out.
Currently, the way it works is as follows: I, 'User', create a part, check it in and submit it for approval. 'Approver' logs in and checks the part, then approves it. The part is now Released. Its Revision is 'A'.
If 'User' then sets the same part to 'Change In Progress' and checks it out, he can modify the part and submit it for Approval. 'Approver' can again Approve the change, whereupon the part is released at Revision B.
My problem is that 'User' can check out Revision B, modify it and check it in, without changing its status to 'Change In Progress', i.e. whilst it is still Released. Now, when 'User2' checks out the part, he gets a part which is at 'Released', but is not the same as the one that 'Approver' approved.
Therefore, I want to prevent 'User' from checking in the part, after he has modified it, unless he has demoted it to 'Change In Progress'.
This is precisely the way we did things in Pro/Intralink at my last company. It worked well.
Of course, there may be a better way that I am not aware of.
The net result I want to achieve is that any part, drawing or assembly that is 'Released' cannot be changed in the vault without its status also being changed. That seems to me to be one of the key benefits of a PDM system, but I can't see how to achieve it in Solidworks PDM Standard.
I would welcome some more assistance.
Hi John, in terms of block name, if it's a Solidworks file type (slddrw,sldasm,sldprt), and you want to map variables to the custom properties, then the block name should be CustomProperty, and the attribute name is the name of the property in your file. So if you have a custom property called Description, then the block name is CustomProperty, and the attribute name would be Description.
If you already have a variable called current state, then yes use that one. And in your drawing sheet format, change $PRP: Status to $PRP: Current State
As for check in /check out, it sounds like your users have Check out permissions when the file is in "Released". What (I think!!) you need to do, is give them Read file permissions only in the "Released" state. I presume you have workflow transition going from "Released" to "Change in Progress", so you can allow the user to move a file from "Released" to "Change in Progress", whereupon the user could check out the file, modify it, check it back in and then submit again for approval.
Could you post some screenshots of your workflow, and associated state and transition permissions?
Prasad, this is extremely helpful!
I think I understand the variables thing now. Thank you.
I see what you mean regarding the Check In.
I have changed the permissions to disallow Check Out of Released Objects by Users.
I will do some testing to check that this has achieved what I want, but it certainly looks promising.
I have attached a series of screenshots, showing the Users' State Permissions and Transition Permissions. The Transitions Permissions are all set as shown, except that Users are not permitted to make any of the three Transitions that result in a Released State. Only Approvers are permitted to make these transitions. Approvers are only permitted to make any transition that results in Released, Work In Progress, or Change In Progress.
I think it is all starting to make sense.
I am beginning to think that the system can do exactly what we want it to.
No problem John, happy to help! . I think you'll find PDM to be a really good system overall.
Best of luck,