Workflows in SolidWorks Enterprise PDM are great at capturing business and process goals. Below we have a simple workflow that captures business intent of ensuring that a catalog number is assigned to a part once it has been approved. In this way, nothing is released until it has a valid catalog number for purchasing. However, this workflow has a shortcoming of every release of a product passing through the ‘Assign Catalog Number’ state. In other words, a file will needlessly have to be transitioned out of this state for every revision of the file. While there are many ways of overcoming this type of problem, I want to show a neat little trick that is both transparent to the end user and simple to implement.
Ideally, what we’d like to have happen is the first time a part is approved, it moves to the ‘Assign Catalog Number’ state where a user would update the data card with the new value. The second time through the workflow, the system should be aware of the catalog number value and move straight to ‘Released’.
To accomplish this, we’re going to add another transition of the same name coming from the ‘Under Review’ state. You can see below we have two transitions of ‘Approved’: one (1) leading to ‘Assign Catalog Number’ and the other (2) landing on ‘Released’.
These two transitions, however, are not identical. The ‘Approved’ (1) transition will have a different condition from ‘Approved’ (2). See below the unique conditions under properties (icon circled on the left):
The two conditions are only slightly different. The one marked 1 does not have a value under argument where the one marked 2 has the value of “!=”. “!=” tells the system ‘is not’. In simple terms this can be read as follows:
1) Allow this transition if the variable of CatalogNumber is empty.
2) Allow this transition if the variable of CatalogNumber is not empty.
By using the conditions set up in this manner, no matter how badly we want it to happen, if there is a value entered for CatalogNumber, the file can never go through ‘Approved’ (1). So why is this important and why do we have two identically named transitions? The reason is a fundamental function of SolidWorks Enterprise PDM. If we have a state with two identically named transitions leaving it, the end user only sees one action:
By employing this methodology, the end user has no idea that there might be a different destination from their ‘Change State’ action. In this case, the approver reviewed the drawing and passes the drawing off to the next person. The system now intelligently knows whether or not it gets passed off to someone to assign a catalog number or whether it goes straight to ‘Released’ and is ready for production.
More than two transitions of the same name can come from the same state. The trick is to ensure that only one path is the valid transition. In this case, we had either CatalogNumber is empty or it has a value. If we forgot to set the conditions, the system would ‘arbitrarily’ choose one. So when using identically named transitions you have, you need to help the system know which one to go down.
For more information on Conditions, please see the section on ‘Conditions in Workflows’ in the Administration Guide PDF included in the SolidWorks Enterprise PDM install. For SolidWorks Enterprise PDM 2012 SP3, this can be found on page 435. The PDF default location is:
English version: C:\SWDist\pdmwenterprise\Support\Guides\GB\Administration Guide.pdf
Lastly, in SolidWorks Enterprise PDM there are often many ways to solve the same problem. Another approach could have been to add an automatic transition to the ‘Number Assigned’ transition in the original workflow with a condition that checks for a value entered into ‘Catalog Number’. This would force the file to ‘Released’ every time it landed at ‘Assign Catalog Number’ that already had a value for ‘CatalogNumber’. The reason I chose the method described here was two-fold. First, I wanted to show the functionality of similar transition names and how SolidWorks Enterprise PDM handles the two transitions. Second, the automatic transition method would add an extra line item in history indicating that technically a number was added each time. The method above will only have a single instance in history that indicates a CatalogNumber was added and when the number was assigned and who assigned it.
Want to see what “A Day in the Life of a PDM User” looks like?
>> Register to attend a live seminar.