Customization Points
Extendable classes
Extendable
Windchill ESI classes, described in the
Distribution Targets section of this document, must be defined in
Windchill ESI properties if they are extended. The following classes are designed to permit custom extensions:
◦ ESITarget
Preference name: Distribution Target Class
Default value: com.ptc.windchill.esi.tgt.ESITarget
◦ ESITargetAssignmentLink
Preference name: Distribution Target Assignment Class
Default value: com.ptc.windchill.esi.tgt.ESITargetAssignmentLink
◦ ESITargetFinder
Preference name: Distribution Target Finder
Default value: com.ptc.windchill.esi.tgt.class.ESISimplePartTargetFinder
Configurable Options
Windchill ESI preferences control several configurable options pertaining to distribution targets. The options are:
◦ Define the name of the map file to use when displaying ESITarget objects.
Preference name: Target Map File
Default value: $CODEBASE$/tgt/ESITarget.map
◦ Define the delimiter to use when finding a single UFID within a string of concatenated UFIDs. This preference is used internally by Windchill ESI services; it does not affect the behavior of other Windchill components.
Preference name: Unique Federation ID Separator
Default value: |
◦ Define the Release Activity object’s release Class attribute value that identifies a BOM. This value is required because a single Windchill part can be published twice to the same distribution target, where the first publishing defines a part while the second publishing defines a BOM. Some Windchill ESI APIs are required to distinguish between the two types of publishing activity. This preference tells those APIs what to look for.
Preference name: BOM Class
Default value: com.ptc.windchill.esi.BOMHeader
◦ Define the name of the class to use for finding distribution target information. This preference is used by Windchill ESI services to determine the destination ID and plant name for custom distribution targets. The out-of-the-box value of the preference is the name of a Java interface having the methods getDestinationId(ESITarget) and getPlantName(ESITarget). In order for the preference to work for a custom target (such as a soft extension of ESIFileTarget), it should be set to the name of a concrete implementation of the interface that defines the said methods as appropriate. Each of these methods can be designed to return an output that is based on the type of target that is passed in.
Preference name: Distribution Target Information Finder
Default value: com.ptc.windchill.esi.tgt.ESITargetInfoFinder
|
ERP Connector now provides configurable capability instead of customizing ESITargetInfoFinder class and overriding adjustTarget. The existing customization code will continue to work, but it is recommended to use the new configuration method. For more information, see Configure ESI for Setting Destination ID and Target ID in ESI Response.
|
◦ Define the name of the class to use for validating distribution target assignments. This preference is used by Windchill ESI services to validate distribution target assignments(both automatic and explicit). To customize the validation, the preference may be set to the name of a custom class that defines the methods isTargetValidForAutoAssignment(Persistable, ESITarget) and isTargetValid(Persistable, ESITarget).
Preference name: Distribution Target Assignment Validator
Default value: com.ptc.windchill.esi.tgt.ESITargetAssignmentValidator
|
The out-of-the-box validation for parts depends on the value set for the Windchill ESI preference View To Distribution Target Mappings.
|
◦ Specify whether or not to display the User Input step in the Send To Distribution Target UI. When set to Yes, the User Input step will be available in the Send To Distribution Target UI. When set to No, the User Input step will not appear in the UI.
Preference name: Display the User Input Step in the Send To Distribution Target UI
Default value: No
|
This preference has relevance only for Distributed Process distribution targets.
|
◦ Specify whether or not a user would be allowed to select distribution targets from the Information step of the Send To Distribution Target UI. When set to Yes, a user would be able to select the distribution targets to send the data to. When set to No, no selection of distribution targets would be possible and the data would get sent to all the associated distribution targets.
Preference name: Allow Target Selection on Send To Distribution Target UI
Default value: Yes
There are certain attributes on a distribution target that could be configured as well. The attributes are:
◦ Define the format to be used for effectivity start and end dates when sending date effectivity information to a given destination.
Attribute name: EffectivityFormat
Default value: yyyy/MM/dd HH:mm:ss
|
In order for this attribute to be used, the preference named Effectivity Format should not be set.
|
◦ Path to the ESI response meta information file that provides the mapping information for the given destination.
Attribute name: responseMetaInfoPath
Default value: $CODEBASE$/com/ptc/windchill/esi/ESIResponseMetaInfo.xml
The value could be changed to point to an appropriately modified version of the response meta information file. See Modify the ESI Response Meta Information File for how this file may be modified to obtain customized versions of the response message.
◦ Path to the Info*Engine task that delivers the ESI response message to the required destination.
Attribute name: taskURI
Default value: com/ptc/windchill/esi/export/ExportTo<XXX>.xml, where the placeholder <XXX> is either File, FTP or SMTP, according as the destination is a file, FTP or Email type target respectively.
The value could be changed to point to any other Info*Engine task that the user may wish to use for delivering the ESI response message. While writing such a custom version of the task, it would help to keep in mind that the following parameters will be available to the task:
Parameter Name
|
Value
|
transaction
|
The ESITransaction object representing the underlying ESI transaction.
|
target
|
The ESITarget object for which to deliver the ESI response message.
|
objectId
|
UFID of the primary business object that was released.
|
type
|
String representing the type of the primary business object – for example., com.ptc.windchill.esi.Part.
|
username
|
Name of the Windchill user that released the object.
|
locale
|
Locale instance that is relevant for the given release.
|
This parameter is not used for ERP Connector targets.
|
|
Also, the IeCollection instance that represents the response message will be available to the task via its VDB, and may be fetched via a call to getVDB().
|
The default Info*Engine tasks (in ExportTo<XXX>.xml) invoke the PostResult RPC after invoking the webject that delivers the ESI response to the required destination. This is done provided
1. the ESI response could be delivered successfully and the ERP Connector preference Enable Post Result has a value Yes or
2. the delivery of the ESI response failed for some reason.
|
◦ Format in which to generate the ESI response message.
Attribute name: ESIResponseOutputFormat
Default value: ESI XML
Using the default value would result in the ESI response being generated in the XML format that conforms to the schema in ESIResponse.xsd (see the Windchill Enterprise Systems Integration Open Application Programming Interface Guide for more information on this file). The value may be changed to PLM if the ESI response is to be generated in the PLM Services format.
|
This attribute cannot be edited once set.
|
Lastly, as mentioned in section
ESITarget, besides the various soft type extensions of ESITarget that are provided by ERP Connector out of the box, a user may create customized soft type extensions and use them with ESI. See the
Windchill Customization Guide for how to use the
Type and Attribute Management UI to create soft type extensions of a given object.
|
• As mentioned earlier, when using custom distribution targets, the Windchill ESI preference Distribution Target Information Finder should be set to the name of a concrete implementation of the interface com.ptc.windchill.esi.tgt.ESITargetInfoFinder that provides definitions for the APIs getDestinationId() and getPlantName() as appropriate.
• ERP Connector now provides configurable capability instead of customizing ESITargetInfoFinder class and overriding adjustTarget. The existing customization code will continue to work, but it is recommended to use the new configuration method. For more information, see Configure ESI for Setting Destination ID and Target ID in ESI Response.
|