Option Set Classes
BasicESIRenderer
This is the abstract class implementing the interface ESIRenderer and is extended by the option set and related renderer classes provided by ESI services. See Classes for more information on BasicESIRenderer.
OptionSetRenderer
It belongs to the package com.ptc.windchill.esi.ov and is extendable by customizers. The class is instantiated when publishing (i) an option set in the object-centric mode say, by setting its lifecycle state or via the Send To Distribution Target option (ii) a Change Notice holding an option set as a resulting object (iii) a promotion request holding an option set as a promotable or (iv) a business object (say, a part) having an assigned option set (either directly or via its context) and a certain distribution target attribute is set. This class is also instantiated when local choice rule are added in a Change Notice and it has associated valid OptionSet associated with it. Thus Option Set gets published when local Choice Rules are changed via change process apart from above mentioned scenarios.
Refer to the Windchill release specific Java Documentation for more details on available attributes and methods in the class.
* 
1. The renderer has methods for processing certain associations (viz., option set option links, option set member links and option set choice rule links) besides the option set itself.
2. With the Windchill ESI preference Enforce Distribution Target set to Yes, the renderer aborts the transaction if the option set is being published as a standalone object and has no distribution targets associated to it. By standalone object is meant an option set that is either published in the object centric mode, or in association with a change notice or a promotion request. This will correspond to the case where the attribute context is null.
3. With the distribution target attribute "Publish the Associated Option Set when Publishing an Object" to Yes, ESI services will process the assigned option set (if any), upon publishing a business object (such as a configurable part). However, in order for ESI services to process an option set assigned to a non-configurable part, the distribution target attribute ”Publish the Associated Option Set when Publishing a Non- configurable Object" should be set to Yes, besides the previously said attribute.
4. With the distribution target attribute ”Publish only Incremental Changes for a Modified Option Set" set to Yes, publishing a modified option set results in only the incremental changes made to the option set (since it was last successfully published) being sentwith the ESI response. However, with the attribute set to No, the modified option set and all its related objects (choices, options, choice rules and the relevant associations) are sent as added objects in the ESI response.
5. Upon publishing an option set, its related choices, options, choice rules and the relevant associations are published as well. The option set renderer makes use of OptionRenderer and ChoiceRuleRenderer for this purpose.
6. A couple of other renderers viz., AssignedOptionSetLinkRenderer and ExpressionRenderer are used by Windchill ESI services for processing assigned option sets (and their associations) and expression rendering respectively.
OptionRenderer
It belongs to the package com.ptc.windchill.esi.ov and is extendable by customizers. The class is instantiated by the buildGroups() API of class OptionSetRenderer for processing (i) the options that the choices associated to the option set belong in and (ii) all the choices in those options. The class is also instantiated when expressions are rendered for part structure when an expression rendering specific attribute is set. Thus this class will render Options and Choices for Option in ESI response in above mentioned scenarios.
Refer to the Windchill release specific Java Documentation for more details on available attributes and methods in the class.
* 
1. The renderer processes all the choices that belong in an option, although only some of those choices may really be associated to the option set being published.
2. There will be an <Class_structure_relationship> element in the ESI response for each choice that is associated to the option set being published.
3. With the distribution target attribute "Publish only Incremental Changes for a Modified Option Set to Yes, the options and choices are sent as added objects only when they are being published for the first time; they are processed as changed objects if they have changed since their last publication, and as unchanged objects otherwise. However, with the said attribute set to No, the options and choices are always sent as added objects.
4. Although the renderer has been designed to cater to a standalone option and its choices, publishing such an option is currently not supported.
ChoiceRuleRenderer
It belongs to the package com.ptc.windchill.esi.ov and is extendable by customizers. The class is instantiated by the buildGroups() API of class OptionSetRenderer for processing the rules that are associated to the choices being published and for the relevant associations.
Refer to the Windchill release specific Java Documentation for more details on available attributes and methods in the class..
* 
1. The renderer processes only the following types of choice rules - Include, Enable and Exclude. Both global and local rules are processed.
2. The renderer has methods for processing certain associations (viz., rule member links and rule member action links) besides the rules themselves.
3. With the distribution target attribute "Publish only Incremental Changes for a Modified Option Set" set to Yes, choice rules are sent as added objects only when they are being published for the first time; they are processed as changed objects if they have changed since their last publication, and as unchanged objects otherwise. However, with the said attribute set to No, the choice rules are always sent as added objects.
4. Similarly with "Publish only Incremental Changes for a Modified Option Set" distribution target attribute set to Yes, the option set choice rule links, rule member links and rule member action links are sent as added, deleted, changed or unchanged associations, depending on previously published history and also the output from the object comparison framework. However, with the said attribute set to No, the said links are always sent as added associations.
AssignedOptionSetLinkRenderer
It belongs to the package com.ptc.windchill.esi.ov and is extendable by customizers. The class is instantiated by each of the following renderers for processing the association between a given business object (or its context) and an option set – ESIBOMRenderer, ESIBOMHeaderRenderer. This however is done provided a certain distribution target attribute is set.
Refer to the Windchill release specific Java Documentation for more details on available attributes and methods in the class.
* 
1. In order for an assigned option set to be processed when publishing a configurable part, the distribution target attribute "Publish the Associated Option Set when Publishing an Object" must have a value Yes. However, when publishing a non-configurable part, the distribution target attribute "Publish the Associated Option Set when Publishing a Non- configurable Object" must have a value Yes, in addition to the above mentioned setting.
2. When publishing a business object together with its assigned option set for the first time, an association named OptionSetAssignmentHistory (that links the business object with the option set) is created in the database; however, if a previously published iteration of the business object exists at the time of publishing the object, the difference information (in terms of added/deleted option set assignment history) is computed and processed appropriately.
3. If the renderer determines that the assigned option set is not already processed, it creates an OptionSetRenderer instance and invokes the getOptionSet() API on it for processing the option set, its related objects and associations.
ExpressionRenderer
It belongs to the package com.ptc.windchill.esi.ov and is extendable by customizers. The class is instantiated by each of the following renderers for rendering expressions – ESIBOMRenderer, ESIBOMComponentRenderer, and ESIReferenceDesignatorRenderer. This however is done provided a "Publish Assigned Expression when Publishing an Object" distribution target attribute is set. When this "Publish Assigned Expression when Publishing an Object" is set to ‘Yes’ and "Publish the Associated Option Set when Publishing an Object" and or "Publish the Associated Option Set when Publishing a Non-configurable Object" is set to ‘No’ then this renderer will render Option and Choices if they are not published. This renderer renders basic, advance dependent and independent expressions defined on expressional object such as WTPart, WTPartUsageLink and ReferenceDesignators etc. rendered in ESIResponse.
Refer to the Windchill release specific Java documentation for more details on available attributes and methods in the class.
* 
This render will always render expressions only as added i.e. expression that exists currently on object in ESI response. Distribution target attribute "Publish only Incremental Changes for a Modified Option Set" has no effect on the processing of this renderer.
Expression renderer uses delegate mechanism to render the expression representation in expressions rendered in ESIResponse.
ExpressionRendererDelegateIfc
It belongs to the package com.ptc.windhill.esi.ov and is not meant to be extended by customizers. Interface has API’s to validate expression and provide the representation for expression.
Refer to the Windchill release specific Java Documentation for more details on available attributes and methods in the class.
DefaultExpressionRendererDelegate
It belongs to the package com.ptc.windhill.esi.ov and is not meant to be extended by customizers. Default implementation of ExpressionRendererDelegateIfc. Implementation uses ExpressionHelper API to render expressions.The class is intended to be extended by customizers to modify rendering of the expression as required and to add or modify validation for expressions during rendering process.
Class validates expression for occurrence of Alias or Custom Java Functions used in expressions on expressionable and notifies renderer
Returns the representation for expression
When set optional wt.property "com.ptc.windchill.esi.AllowPublishingWithoutAlias" it allows publication to move ahead by ignoring Alias otherwise aborts publication
When set optional wt.property "com.ptc.windchill.esi.AllowPublishingWithoutJavaFunction" it allows publicationto move ahead by ignoring Java Functions otherwise aborts publication
Refer to the Windchill release specific Java Documentation for more details on available attributes and methods in the class.
OptionsVariantsHelper
It belongs to the package com.ptc.windhill.esi.ov and is not meant to be extended by customizers. The class provides certain helper methods for fetching the data associated with an option set, for computing the difference information between two given option sets and for caching the fetched information for subsequent retrievals.
Refer to the Windchill release specific Java Documentation for more details on available attributes and methods in the class.
Was this helpful?