cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

We are happy to announce the new Windchill Customization board! Learn more.

Assign a different lifecycle to end items

ptc-4109262
4-Participant

Assign a different lifecycle to end items

We are looking to change our process so that when you set a WTPart as an End Item it takes on a different lifecycle. 

At the moment all of our parts and cad data use a simple lifecycle of InWork, Released, Obsolete. However we use End Items for our Catalogue/top level parts which can be in other states such as Legacy parts or marked for Future Release.

OOTB when creating a WTPart there appears to be no option to set a different workflow when the part is marked as an End Item, is it possible, presumably it will be something set in the OIR?. 

We could of course change the Lifecycle once created but that's an extra step that most users shouldn't be required to know about or do. 

Thanks in advance for any help. 

Paul

1 ACCEPTED SOLUTION

Accepted Solutions

Just as info. The OIR would look like this:

 

<AttributeValues objType="wt.part.WTPart">

	<!-- set the lifecycle -->
	<AttrValue id="lifeCycle.id" algorithm="com.ptc.core.foundation.lifecycle.server.impl.LifeCycleTemplateAttributeAlgorithm">
		<Value algorithm="wt.rule.algorithm.BooleanBranch">
			<Value algorithm="wt.rule.algorithm.StringEqualsTest">
				<Attr id="endItem"/>
				<Arg>true</Arg> 
			</Value>
		<Arg>
			<!-- Translation of the word "Basic" must be the same as the translation done in commonLifeCycles.xml -->
			<?loc-begin key="BASIC_LIFECYCLE_NAME" maxlen="30" match="commonLifeCycles.xml:BASIC_LIFECYCLE_NAME"?>Release Routing<?loc-end?>
		</Arg>
		<Arg>
			<!-- Translation of the word "Basic" must be the same as the translation done in commonLifeCycles.xml -->
			<?loc-begin key="BASIC_LIFECYCLE_NAME" maxlen="30" match="commonLifeCycles.xml:BASIC_LIFECYCLE_NAME"?>Basic<?loc-end?>
		</Arg>
		</Value>
	</AttrValue>

</AttributeValues>

As mentioned before, the lifecycle template won't chance after creation. If the attribute is being changed nothing will happen...

View solution in original post

5 REPLIES 5

Long ago (previous Windchill releases), End Items were a sub type of WTPart.  That is no longer true - End Item is a Boolean attribute.  So, no obvious way to assign a different lifecycle template based on type. 

One could assign different by Product context, by putting all End Items into a separate product context, but that very much defeats the purpose of the End Items table on the Product Context's Details tab, so not wise.

There may be some tricky way of doing so in the OIR, but tough because selecting the attribute is done in the New Part wizard, after the OIR has already been invoked and has assigned the lifecycle template.

Not an easy one that I can see.

Thanks for the reply. 

Our WC version is 10.1 so might be the 'Long ago' version you mention?. 

But we could live with creating our End Item (catalogue) parts in a different context so that may well be the best option.

Our processes have changed a lot over the last 6 years of Windchill so don't want anything too hard to set up as the next change is always just around the corner... keeps the process guys happy for the time being. 

Thanks. 

 

"Long ago" I'm pretty sure is prior to Windchill 9.0. Definitely applies for 10.x.

Completely agree that End Items should be treated differently by the system.  One difficulty in PTC programming the system to do so is that at any time, any WTPart can be edited to become an End Item.

 

It might work very well to just create all of them in one Product Context and set up an OIR in that context for WTParts that specifies a different lifecycle template.  The Details tab for this Product has a Table: End Items."  This doesn't exactly align with the OTB vision for it, but it would become the system-wide drill-down table for all end items.  One could create essentially the same using a query builder report available on Home, Reports so people would not have to go to that Product context to access them.

 

These are the puzzles that I truly love - spend a lot of time an hour or two at a time doing side consulting on this type of thing.  Have to document thought process and reasons very well for all configurations in order to not get mixed up in the future.

Just as info. The OIR would look like this:

 

<AttributeValues objType="wt.part.WTPart">

	<!-- set the lifecycle -->
	<AttrValue id="lifeCycle.id" algorithm="com.ptc.core.foundation.lifecycle.server.impl.LifeCycleTemplateAttributeAlgorithm">
		<Value algorithm="wt.rule.algorithm.BooleanBranch">
			<Value algorithm="wt.rule.algorithm.StringEqualsTest">
				<Attr id="endItem"/>
				<Arg>true</Arg> 
			</Value>
		<Arg>
			<!-- Translation of the word "Basic" must be the same as the translation done in commonLifeCycles.xml -->
			<?loc-begin key="BASIC_LIFECYCLE_NAME" maxlen="30" match="commonLifeCycles.xml:BASIC_LIFECYCLE_NAME"?>Release Routing<?loc-end?>
		</Arg>
		<Arg>
			<!-- Translation of the word "Basic" must be the same as the translation done in commonLifeCycles.xml -->
			<?loc-begin key="BASIC_LIFECYCLE_NAME" maxlen="30" match="commonLifeCycles.xml:BASIC_LIFECYCLE_NAME"?>Basic<?loc-end?>
		</Arg>
		</Value>
	</AttrValue>

</AttributeValues>

As mentioned before, the lifecycle template won't chance after creation. If the attribute is being changed nothing will happen...

Thank you very much for the help, the information you have given is incredibly useful. 

We'll get this change underway using the new lifecycle and OIR. 

Thanks 

Paul

Top Tags