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());
});