08-08-2018 02:06 PM
I'm trying to implement a couple different Release status workflows at my site. First, using numeric revisions, I'm trying to define a limited-review/prototyping workflow to quickly create and release Teamcenter data.
Then, alpha revisions (starting with "-", A, B...etc.) will be applied using a longer/more rigorous "official" production release process.
The issue is, since our numeric/prototype releases will only go through a limited review, I want to ensure that a user doesn't inadvertently put an alpha revision through the prototype release process (thereby releasing an alpha/Production part that hasn't been completely vetted).
I thought this would be fairly simple to police using the "EPM-check-object-properties rule" handler, but I'm finding that it's not as simple as I'd hoped. I'd intended on defining the handler as follows:
EPM-check-object-properties
-include_type | ItemRevision
-property | item_revision_id
-value | 00,01,02......(etc; note, this didn't work. The handler only checks the last revision in the list against item_revision_id)
I also tried inputting values in in succession, individually (instead of using a comma-separated list). The end result was the same; only the last value in the list is checked against item_revision_id, and all other revision levels return EPM_nogo.
Are there any other methods/OOTB handlers that could solve this problem? I thought setting up a BMIDE list of values may work, but there's no documentation I can find providing direction on how to integrate that into a workflow validate task, like I'm trying to do. I know it can be done with custom handlers/coding, but that's outside my area of expertise.
08-08-2018 03:45 PM - edited 08-08-2018 03:48 PM
Hello, where did you put the EPM-check-object-properties handler?
Check in Teamcenter preference EPM_ARG_target_user_group_list_separator:
Enter a list separated by commas or the character specified by the EPM_ARG_target_user_group_list_separator preference. The order of these values must match the order of properties listed in the -property argument.
Try in -property repeat the value of item_revision_id as many times as you have values in -value. Just in case, add the -attachment argument:
EPM-check-object-properties
-include_type | ItemRevision
-property | item_revision_id,item_revision_id,item_revision_id
-value | 00,01,02
-attachment | target
08-08-2018 04:07 PM
Thanks @ArthurRM, that was worth a try...but didn't work. I double checked the EPM_ARG_target_user_group_list_separator preference and verified it was a "," (the default) and tried your idea of repeating the property item_revision_id to match the number of revision values I'm entering, and am still getting a failure of the validate task every time.
I think I may need to use a Condition task with a custom query, but have never done so...reading the documentation on that now.
08-08-2018 05:11 PM
I think you can use Build Complex Logic into Teamcenter Workflow using Rule Handler Quorum
http://siomsystems.com/workflow-rule-handler-quorum/ but then you will have a lot of handlers EPM-check-object-properties
08-10-2018 03:19 AM
I havent tried using the handlers, as you and others have tried and can't get it to work.
But you can use a query quite easily. For Alpha revisions use => A, and for numeric use >=00 on item_revision_id:
Rich
08-13-2018 12:12 PM
@ProspectPLM/Rich,
Thanks for the suggestion; unfortunately, this route doesn't appear to work either in to search for and validate revision alpha/numeric state. Maybe I'm missing something in the implementation; I took some screen shots of my trials and attached them, if I'm missing something please advise.
I actually spent quite awhile on this last Friday and put in a lengthy call to GTAC; their position is that a Condition/Query cannot do this, and a custom handler was needed:
IR 9231295: How to search for item revisions based on numeric or alpha A Solution Proposal to the Incident Report Provided Good news is we have a pretty clear consensus amongst GTAC on this issue. Bad news is this cannot be done in COTS. Suggestion across the board is to write a custom handler to handle the logic.
Unfortunately, I'm not versed in any way on writing custom handlers...if you have any other options I'd be glad to hear them! Thanks again.
08-13-2018 03:02 PM
08-14-2018 03:11 AM - edited 08-14-2018 06:56 AM
I'm in work now and have been able to test and document.
I have created a workflow and stripped all the handlers. It has 2 simple conditions. I have 2 item revisions, 1 has a rev id of '00' the other is 'A'.
When I put 00 through:
And when I put A through:
here are the 2 queries. Note that my query for rev A initially did give me a False result, this was because the revision is an OOTB item, whereas my query was initially pointing to my custom revision class.
Hopefully you can now get this working without creating custom handler lol!!
Rich
Ps I have now re-written the numeric rev id query to also point to the OOTB item revision. I have attached the workflow and queries for you.
08-14-2018 08:56 AM
Ah, that makes sense...I'd been trying to get both conditions into the same query, maybe that's what was keeping it from working right. I never thought to separate the queries/conditions. Thanks Rich!
My IT dept. is doing some SQL maintenance on my Teamcenter install, but I'll test as soon as they're finished and let you know. Looks like you've got it solved, I really appreciate the help!