Community Tip - Your Friends List is a way to easily have access to the community members that you interact with the most! X
I agree, Al outlined the trade offs fairly well.
One thing I would add is (if you can use the same lifecycle scheme) that the attribute is generally easier to support.
Meaning, if (when) users create the wrong type they don't have to start over, they can just change the attribute.
Depending on the situation, this approach can save the business a lot of time and effort. Enough that using a combined set of IBAs for the needs of the different types would not be a big deal.
Mike Johnson
If the document type attributes, number and version scheme are consistentbut you want to apply a selection of differentlifecycle and team templates within a given context there is another option you could consider.
You can configure the object initialization rule for documents to allow the document creator to select the lifecycle and team template from a pull-down when creating the document. (If you trust them to pick the right one)
See attched screenshot of resulting document create wizard, sample OIR xml below
Regards Darren
<attrvalue id="lifeCycle.id"<br"/> algorithm="com.ptc.core.foundation.lifecycle.server.impl.LifeCycleTemplateAttributeAlgorithm"
ignore="false"
force="false"
final="false">
<arg>Lifecyle A</arg>
</attrvalue>
<attrconstraint id="lifeCycle.id"<br"/> algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints"
ignore="false"
force="false"
final="false">
<value algorithm="com.ptc.core.rule.server.impl.GetServerPreGeneratedValue"/">
<value algorithm="com.ptc.core.foundation.lifecycle.server.impl.DiscreteLifecycleTemplateSetAlogrithm">
<arg>Lifecyle A</arg>
<arg>Lifecyle B</arg>
<arg>Lifecyle AC</arg>
</value>
</attrconstraint>
<attrconstraint id="lifeCycle"<br"/> algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints"
ignore="false"
force="false"
final="false">
<value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/">
</attrconstraint>
<attrvalue id="teamTemplate.id"<br"/> algorithm="com.ptc.core.foundation.team.server.impl.TeamTemplateAttributeAlgorithm"
ignore="false"
force="false"
final="false">
<arg>Team A</arg>
</attrvalue>
<attrconstraint id="teamTemplate.id"<br"/> algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints"
ignore="false"
force="false"
final="false">
<value algorithm="com.ptc.core.rule.server.impl.GetServerPreGeneratedValue"/">
<value algorithm="com.ptc.core.foundation.team.server.impl.DiscreteTeamTemplateSetAlogrithm">
<arg>Team A</arg>
<arg>Team B</arg>
<arg>Team AC</arg>
</value>
</attrconstraint>
<attrconstraint id="teamTemplate"<br"/> algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints"
ignore="false"
force="false"
final="false">
<value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/">
</attrconstraint>