Skip to content

qie.findPreviousMessage

Signature: qie.findPreviousMessage(parameters, startTime*, endTime*)

Returns: List<Message> previousMessages - a list of previous messages found, with each entry having the following fields: getSource(), getMessage(), getMessageCache(), getReceivedDateTime()

Query the channel message history for previously received messages.

Parameters

Type Name Description Default
ParameterMap parameters message cache values to search for
String startTime* (optional) the earliest received date/time to match on null
String endTime* (optional) the latest received date/time to match on null

Example

/* Example: find previous messages using a message cache value */

// 1. Set the message cache so this message can be looked up later
var cacheKey = 'testMessageCache';
messageCache.setValue(cacheKey, qie.getMD5Hash(message.getNode('/')));

// 2. Create a parameter map with the cache value to search for
var parameters = qie.newParameterMap();
parameters.put(cacheKey, qie.getMD5Hash(message.getNode('/')));

// 3. Define a time window (optional)
var now = qie.formatDate('yyyyMMddHHmmss.SSS', new java.util.Date());
var fiveMinutesAgo = qie.formatDate('yyyyMMddHHmmss.SSS', new java.util.Date(new java.util.Date().getTime() - 300000)); // 5 minutes

// 4. Find previous messages in the channel
var previousMessages = qie.findPreviousMessage(parameters, fiveMinutesAgo, now);

// 5. Check how many messages were found and update the current message
var count = previousMessages.size();
if (count > 0) {
    message.setNode('/', 'Found ' + count + ' previous message(s).');
} else {
    message.setNode('/', 'No previous messages found.');
}

// Optional: iterate over previous messages and inspect
previousMessages.forEach(function(prevMsg) {
    qie.debug('Source: ' + prevMsg.getSource());
    qie.debug('Received: ' + prevMsg.getReceivedDateTime());
});