Skip to content

Overview

Concepts and Principles

Development

Overview

IDEs

API Explorer

Releases

Release Notes

TORO Integrate

Coder Studio

Coder Cloud

Bug Reports

Search

The Tracker Resubmit Endpoint

The Tracker Resubmit endpoint is a specialized endpoint used in conjuction with the Tracker search index. Logging transactions in Tracker provides an audit trail for every transaction and their state. Should a transaction fail for any reason then the error can be discovered using the Tracker search index. The Tracker Resubmit endpoint enables a user to arbitrage errors and then retry failed transactions by either processing them through the original service or a custom service that may have been designed to handle failed transactions.

The Tracker Resubmit endpoint needs to registered against a Tracker Document Type and its associated state. You then specify which service should be invoked by the Tracker Resubmit endpoint should the endpoint be invoked. When started, a resubmit option is added to the Tracker UI (highlighted below):

In the UI above, the Tracker Resubmit endpoint is registered for Tracker documents of type JMS with the state Started. When the resubmit option is clicked, the service associated to this endpoint is executed.

Properties

Name Default Description
Service (required) The service to execute when the endpoint is triggered
Document Type 'Tracker Resubmit' The type of Tracker document to register this endpoint to
Document State 'Started' The state of the Tracker document in which this endpoint is invocable from

Service

When the endpoint is triggered, the following variables are exposed to the registered service:

Name Type Description
parameters java.util.Map A map containing all variables below
document Document The Tracker Document object that the re-submit is being performed on
externalId java.lang.String The Tracker Document External Id
documentType io.toro.integrate.tracker.DocumentType The Tracker Document Type object that the re-submit is being performed on
documentTypeId java.lang.String The Tracker Document Type ID
internalId java.lang.String The Tracker document internal ID
stateName java.lang.String The Tracker document state name that the re-submit is being performed on
senderId java.lang.String The Tracker document sender ID
receiverId java.lang.String The Tracker document receiver ID
userName java.lang.String The Tracker document user name
documentState io.toro.integrate.tracker.DocumentState The Tracker Document State object that the re-submit is being performed on
documentStateContent io.toro.integrate.tracker.DocumentStateContent The Tracker Document State Content object that the re-submit is being performed on. If the state has no content, this will be null
inputStream java.io.InputStream The Tracker Document State Content Input Stream. This stream will point to the actual content of the document state. If there is no content, this will be null
reader java.io.Reader The Tracker Document State Content Reader. This reader will point to the actual content of the document state. If there is no content, this will be null
bytes byte[] A byte array containing the Document State Content. If there is no content, this will be null
content java.lang.String A String containing the Document State Content. If there is no content, this will be null
file java.io.File A Tracker Document State Content File. This is a temporary file that will be deleted after your endpoints are invoked. It will point to a file containing the actual content of the document state. If there is no content, this will be null
Name Type Description
parameters java.util.Map A map containing all variables below
document Document The Tracker Document object that the re-submit is being performed on
externalId java.lang.String The Tracker Document External Id
documentType DocumentType The Tracker Document Type object that the re-submit is being performed on
documentTypeId java.lang.String The Tracker Document Type ID
internalId java.lang.String The Tracker document internal ID
stateName java.lang.String The Tracker document state name that the re-submit is being performed on
senderId java.lang.String The Tracker document sender ID
receiverId java.lang.String The Tracker document receiver ID
userName java.lang.String The Tracker document user name
documentState DocumentState The Tracker Document State object that the re-submit is being performed on
documentStateContent DocumentStateContent The Tracker Document State Content object that the re-submit is being performed on. If the state has no content, this will be null
inputStream java.io.InputStream The Tracker Document State Content Input Stream. This stream will point to the actual content of the document state. If there is no content, this will be null
reader java.io.Reader The Tracker Document State Content Reader. This reader will point to the actual content of the document state. If there is no content, this will be null
bytes byte[] A byte array containing the Document State Content. If there is no content, this will be null
content java.lang.String A String containing the Document State Content. If there is no content, this will be null
file java.io.File A Tracker Document State Content File. This is a temporary file that will be deleted after your endpoints are invoked. It will point to a file containing the actual content of the document state. If there is no content, this will be null

Example

Consider the following Tracker Resubmit endpoint configuration:

Tracker Resubmit Endpoint Config

This registers the Tracker Resubmit endpoint for Tracker documents of type JMS with the state Started. The service assigned to this endpoint is as follows:

Tracker Resubmit Gloop Service Example

(1) Logs a message to underlying log engine
(2) Looks for the tracker property keyed Resubmit Count.
(3-4) Checks and increments the property accordingly, to keep track how many times this was resubmitted
(5) Re-persist the property

Using this feature, developers can potentially re-execute customized logic based from the tracked content of the original tracker document.

More Examples

The distribution ships with an Integrate package called examples, which contains services demonstrating more use cases.