Classes
ESIRelease
This class is used primarily for book-keeping purposes. An instance of this class is created and persisted whenever a business object is released from Windchill, thereby representing the given release. Considering that a user may want to administer releases, this class extends wt.fc.Item. Besides, it implements the interface wt.inf.container.WTContained, so that it may be associated to an organization container.
An ESIRelease object is linked to all the transactions that are part of the release. ESIReleaseTransactionLink objects manage these relationships. The ESIRelease object is also linked to the released object via an ESIReleaseObjectLink instance.
Upon releasing a business object from Windchill, the ESIResponseGenerator creates an ESIRelease object and sets its status to “pending”. Other possible release status values are "succeeded" and "failed". The values are localized using standard Windchill enumerated types. The ReleaseStatusType class defines the range of legal values for ESIRelease status. See the figure Enumerated Types in Windchill ESI Transaction, for the definition of Windchill ESI release enumerated types.
The ESIRelease object has a number that is unique within the organization that the object being published belongs in. The system generates a unique number within the organization by finding the highest value of the number that exists in the database for the organization, and adding one to it. In order to prevent duplicate numbers, the system serializes the creation of ESIRelease objects.
This class does not allow for extensions by customizers.
Enumerated Types in Windchill ESI Transaction
ESIReleaseObjectLink
This class is an extension of wt.fc.ObjectToObjectLink and links a releasable object (such as a WTPart, a WTChangeOrder2 or an MPMProcessPlan) to the ESIRelease object that represents its release. The link is used solely for object navigation (for e.g., when fetching the ESIRelease object for a given releasable object) and thus does not carry any attributes.
ESIReleaseTransactionLink
This class is an extension of wt.fc.ObjectToObjectLink and as mentioned in an earlier section, links an ESIRelease object to each of the ESITransaction objects that constitute the release represented by the former. The link is used solely for object navigation (for e.g., when querying for the transactions in a release) and thus does not carry any attributes.
ESIReleaseUtility
This class resides in the package txn and provides utility methods for miscellaneous tasks that involve the ESIRelease object. The public methods of the class provide access to some of the services of the package. Refer to the Windchill release specific Java documentation for more details on available attributes and methods in the class.
ESITransaction
Any Windchill ESI publication attempt generates one or more Windchill ESI transactions, each of which is represented by a persistable ESITransaction object. The transaction has an initial status of "pending." Other transaction status values are "processing," "succeeded," or "failed." The values are localized using standard Windchill enumerated types. The ESITransactionStatusType class defines the range of legal values for ESITransaction status. See the figure Enumerated Types in Windchill ESI Transaction, for the definition of Windchill ESI transaction enumerated types.
The transaction has a number that is unique within the organization that the object being published belongs in, and a flag that indicates whether the user tried to delete the transaction (that is, permanently hide it from the user interface). The system generates a unique number within the organization by finding the highest value of the number that exists in the database for the organization, and adding one to it. In order to prevent duplicate numbers, the system serializes the creation of transactions.
ESITransaction is a "public" class. The class inherits from wt.fc.Item so that it can take advantage of standard Windchill access control functionality. Besides, it implements the interface wt.inf.container.WTContained so that it may be associated with an organization container. Customizers may extend this class.
Transaction Object Inheritance
ESITransactionObjectLink
ESITransaction objects may be related to wt.fc.WTObject objects. The relationship is persistent. ESITransactionObjectLink objects manage the relationship.
ESITransactionObjectLink is a "public" class. The class may be extended by customizers.
ESITransactionTargetLink
This class is an extension of wt.fc.ObjectToObjectLink and as the name indicates, links an ESITransaction object to an ESITarget object, where publication of data to the latter is represented by the former. Again, the link is used solely for object navigation (for e.g., when fetching the distribution target for a given transaction) and thus does not carry any attributes.
* 
Upon releasing a business object from Windchill, a transaction is created for every ERP instance (or destination) in the release. Each such transaction is linked to each of the targets that belong in the corresponding ERP instance, and ESITransactionTargetLink objects manage this relationship.
ReleaseActivity
Each transaction includes zero or more release activities, which are represented by persistable ReleaseActivity objects as shown in the figure Transaction Object Inheritance, above. ReleaseActivity is a subclass of Windchill ObjectToObjectLink, as shown in the figure Transaction Object Inheritance.
ReleaseActivity objects may have one of the following statuses: failed, succeeded, pending, warning or partially_succeeded. The status values are defined by the enumerated type class, ReleaseStatusType.
ReleaseActivity objects have an action attribute. The values are defined by enumerated type class, ReleaseActivityAction. See the figure Enumerated Types in Windchill ESI Transaction, above.
ReleaseActivity objects may have one associated ReleaseActivityMessage. See the figure Tracking Publishing History, above.
A release activity is associated with one releasable object (which is an instance of wt.fc.Persistable), and with one ESITarget object. A ReleaseActivity object has the following additional attributes:
creator, which is the user who created the ReleaseActivity. Often the value is the session principal that was associated with the function that created the ReleaseActivity. The attribute is a java.lang.String because the value may not be a WTPrincipal.
description, which is useful text that was supplied by the function that created the ReleaseActivity.
releaseClass, which is a Windchill ESI logical name, provided on all Windchill ESI RPC responses.
deleted, which is a flag that determines whether the user wished to delete the entry (that is, permanently hide it from the user interface).
releaseStamp, which is the timestamp provided by the function that created the ReleaseActivity. If the value was not provided, releaseStamp is set to the time when the ReleaseActivity object was created. When displaying transactions and their associated activities, the activities are sorted in order of ascending releaseStamp.
releasedObjectState, which is the lifecycle state of the released object, when the ReleaseActivity was created for it. This attribute is used to determine if a given object was previously published.
ReleaseActivity objects that have a status of "succeeded" are used for determining whether or not an object has been previously published. These may not be deleted from the database, since that information is required for determining the appropriate action to use (update or create) when releasing an object. Administrators with appropriate SQL privileges may be able to delete Windchill ESI transactions and failed publishing activities (with their associated messages). Windchill ESI does not provide a tool to do that.
* 
If the lifecycle state of an object is changed after its release, it will be considered valid for a republication as a changed object. Although the object will already have a ReleaseActivity having a status of “succeeded” when initiating its republication, it will not be considered to have been previously published, since its lifecycle state will not match the value of the releasedObjectState attribute on the previously created ReleaseActivity.
* 
With the Windchill ESI preference "Check Iteration" set to "No", if an already published object is iterated and released, the new iteration will be processed as an unchanged object, even if its lifecycle state is different from that on the previously published iteration. In such a case, the preference "Enforce Changes" should have a value "No" in order for the transaction to succeed. The above preferences are disregarded when publishing a Co-produce part. In other words, a new iteration of a Co-produce part is always sent as a changed object, regardless of the values of the preferences.
ReleaseActivity is a "public" class. The class may be extended by customizers. Javadoc is provided.
ReleaseActivityMessage
ReleaseActivityMessage objects are persistable objects that carry information that may be helpful to the Windchill ESI user. Each ReleaseActivity may have one ReleaseActivityMessage associated to it.
ReleaseActivityMessage is a "public" class. The class is not intended to be extended by customizers.
ESITransactionRelease
ESITransaction objects may be related to ReleaseActivity objects. The relationship is persistent. ESITransactionRelease objects manage the relationship.
ESITransactionRelease is a "public" class. The class may be extended by customizers.
ESIRelatedTransaction
ESIRelatedTransaction is an object-to-object link between two Windchill ESI transactions. It is provided in anticipation of a requirement to couple multiple publication requests. The object is modeled in Windchill ESI, but there are no services to create or maintain ESIRelatedTransaction objects.
ESIRelatedTransaction is a "public" class. The class may be extended by customizers.
ESITransactionUtility
Class ESITransactionUtility
The Windchill ESI transaction package is intended to be self-contained and "private", except for the classes, ESITransaction, ReleaseActivity, and ESITransactionUtility. ESITransactionUtility is a public interface to the package. The services of the package should be invoked via the public methods of the ESITransactionUtility class. The methods of the class are not thread-safe. Each thread is responsible for creating a new instance of the transaction utility.
Refer to the Windchill release specific Java documentation for more details on available attributes and methods in the class.
Transaction Warning Delegates
A delegate mechanisum allows/disallow sending notification as required when there are warnings generated during a processing of Enterprise System Integration Transaction. Out of the box there two delegates that are provided as follows. Which can be configured using service property com.ptc.windchill.esi.delegate.TransactionWarningDelegate.
TransactionWarningEmailDelegate- This delegate is by default configured and will send warning notification via email to creator of ESITransaction. Please refer java documentation of the class for more information on supported APIs and customizable APIs
TransactionWarningNoOpDelegate- This class is meant for ignoring notifiaction for warnings that are generated during publication of transaction. This is a No-operation delegate available for configuration.
TransactionWarningDelegateFactory – This class serves as a common factory for instantiating warning Delegates. Returns the dalegate for sending warnings based on the configuration. Delegate can be configured for a destinationID of set of ESITarget. See section Distribution Targets for more information about DestinationID information.
Was this helpful?