Community Tip - Need help navigating or using the PTC Community? Contact the community team. X

Translate the entire conversation x

Manage Periodic Document review in Windchill

mwaite
13-Aquamarine

Manage Periodic Document review in Windchill

We want team members to review certain documents on a schedule.  Has anyone worked out a slick way of managing the periodic review process in Windchill?  For example, we might have a procedure that should be reviewed annually. 

 

Right now, we put a (future) review date on the document.  Then we use a saved search to find all the docs where the review date is 5 days in the past to 30 days in the future.  Then an admin initiates a Design Review workflow to send it to the right people.  After review, the admin updates the date to next year.  Our saved search could be converted to a report and then we could use a data monitor that runs on the first day of the month or something, but still not elegant.

 

Has anyone figured out a better way to trigger periodic review of specific documents?

ACCEPTED SOLUTION

Accepted Solutions
joe_morton
17-Peridot
(To:mwaite)

We use a workflow to do this. We have a lifecycle template where the Released lifecycle state kicks off a workflow. All that workflow does is have  a timer that waits the set time, then assigns a task to the responsible role to review the document.

You'll want to make sure to recalculate the role prior to assigning the review task, just in case the individuals in the role have changed since the workflow was first initiated. 

Of course, a drawback is that we have tons of workflows running all the time due to this. So far, we haven't seen any performance issues, but I can't speak to how well this solution scales for a larger company with more documents.

View solution in original post

7 REPLIES 7
joe_morton
17-Peridot
(To:mwaite)

We use a workflow to do this. We have a lifecycle template where the Released lifecycle state kicks off a workflow. All that workflow does is have  a timer that waits the set time, then assigns a task to the responsible role to review the document.

You'll want to make sure to recalculate the role prior to assigning the review task, just in case the individuals in the role have changed since the workflow was first initiated. 

Of course, a drawback is that we have tons of workflows running all the time due to this. So far, we haven't seen any performance issues, but I can't speak to how well this solution scales for a larger company with more documents.

mwaite
13-Aquamarine
(To:joe_morton)

@joe_morton  I like your suggestion.  I was thinking about using a workflow with a timer and just loop the workflow back to the reviewer using a timer.

Is the timer the same for every document in your solution?  

I'm sure my users will want to change the period between the reviews.

 

When you said you recalculate the role prior to assigning the review task ... Is that done with a workflow robot, or do you route it someone to perform a set-up participants task before the review task on every loop?

 

When the document rolls to the next revision and a new workflow is created ... does someone have to find the workflow of the previous revision and terminate it? 

avillanueva
22-Sapphire III
(To:mwaite)

Similar requirement that I will be working on this year. Periodic review of Problem Reports. The current workflow dies with "Accepted". These need to stay active until they are resolved or cancelled.

@joe_morton 

 

I considered your approach in the past, in fact, I was going to go that route until using a scheduling queue idea occurred to me.

The thing I like about the scheduling queue idea over the workflow is three fold.

1. As you’ve already mentioned, a lot of workflows running that aren’t doing anything but waiting.

2. If someone terminates the workflow I’m screwed. 🤷‍♂️ If someone deletes the queue entry I’m screwed too but I figure that’s far less likely. If that happens I just run the original code to create the queue entry and we’re back on track.
2. Workflow is using a timer. I needed to use a specific date that might be a variable number of days from a currently unknown date.  The new date gets calculated once the unknown date is known and the variable number of days is either set by the user or we use a default.

I could still use a timer to keep checking if now is the date or I could edit the timer on-the-fly (I’ve done that before too) but from a coding perspective using the schedule queue was easier and less wear and tear on the BGMS.

3. scheduling queue, once you know/understand it, can apply it to whatever. Good to have in one’s tool box.

 

Finally, it was fun figuring it out the first time.

@mwaite , hi

 

I did something like this but different for something that needed to be done once every month or once every year or whatever the time interval is.

In short, I wrote a class that runs and does whatever is required.  The class is scheduled in a scheduling queue and, here's the cool part, the last thing the code does is reschedule itself to run at the next prescribed interval, a week, a month, a year, whatever.

 

In your case the scheduled class could start the workflow automatically.

The class could also find the documents based on your search criteria.

 

If you are running a workflow on each of these documents as the workflow PBO, the scheduled class could certainly find each of these documents based on the search criteria and start a workflow on each with the document being the PBO.

 

I'd need more details to write a self-scheduling class for you application but I'm sure it's very doable.

 

David Graham 

mwaite
13-Aquamarine
(To:d_graham)

@d_graham  Thanks David.  It sounds like you created a slick system that could be adapted to my use case. 

The only requirements I got from my users go like this:

 

"We've been tasked to review some of the documents in Windchill on a schedule.  How do we set it up?

 

I tried to email you using the link in your reply above but yahoo says the mailbox doesn't exist. 

@mwaite 

 

If I were doing this I’d consider having the workflow itself schedule a queue entry to run another workflow using the latest iteration of the current workflow’s template at the prescribed time.

 

Maybe you want to use a default number of days run start workflow after the current workflow end.

Many you want to users to change that default from X number of days to Y number of days.

 

As always, lots of ways to get what’s needed done.

Announcements



Top Tags