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 ESI response generator 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 ERP Connector 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 example., 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 destination in the release. Each such transaction is linked to each of the targets that belong in the corresponding destination, and ESITransactionTargetLink objects manage this relationship.
ReleaseActivity
Each transaction includes zero or more release activities, which are represented by persistable Release Activity objects as shown in the figure Transaction Object Inheritance, above.
Release Activity is a subclass of Windchill ObjectToObjectLink, as shown in the figure Transaction Object Inheritance.
Release Activity 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.
Release Activity objects have an action attribute. The values are defined by enumerated type class, ReleaseActivityAction. See the figure Enumerated Types in Windchill ESI Transaction, above.
Release Activity objects may have one associated Release Activity Message. 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 Release Activity object has the following additional attributes:
creator, which is the user who created the Release Activity. Often the value is the session principal that was associated with the function that created the Release Activity. 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 Release Activity.
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 Release Activity. If the value was not provided, releaseStamp is set to the time when the Release Activity 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 Release Activity was created for it. This attribute is used to determine if a given object was previously published.
Release Activity 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). ERP Connector 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 Release Activity 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 Release Activity.
* 
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.
Release Activity is a public class. The class may be extended by customizers. Javadoc is provided.
ReleaseActivityMessage
Release Activity Message objects are persistable objects that carry information that may be helpful to the ERP Connector user. Each Release Activity may have one Release Activity Message associated to it.
Release Activity Message is a public class. The class is not intended to be extended by customizers.
ESITransactionRelease
ESITransaction objects may be related to Release Activity 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 ERP Connector, 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.
ESITransactionManagementDelegate
This is a public interface that resides in com.ptc.windchill.esi.txn package. It provides common services that is intended to be extended by the customizers for customizing the transaction management in ESI.
Refer to the Windchill release specific Java Documentation for more details on available attributes and methods in the class.
ESITransactionManagementDelegateImpl
This is the default implementation of ESITransactionManagementDelegate that resides in com.ptc.windchill.esi.txn package. It provides common services that is intended to be extended by the customizers for customizing the transaction management in ESI.
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 configured by default and will send a warning notification via email to the creator of ESITransaction. Refer to the Java documentation of the class for more information on supported APIs and customizable APIs.
TransactionWarningNoOpDelegate
This class is meant to ignore the notification for warnings that are generated during publication of a transaction. This is a No-operation delegate available for configuration.
TransactionWarningDelegateFactory
This class serves as a common factory for instantiating warning delegates. Returns the delegate for sending warnings based on the configuration. This delegate can be configured for a destinationID of set of ESITarget. See section Distribution Targets for more information about DestinationID information.
Was this helpful?