Task Expiry Process
The Task Expiry Process is called by the Transaction Processor job when a task has expired. A task is considered to have expired when it has not been completed by its scheduled expiry date. Expired tasks are removed from users' Task List.
This service is configured via the Form Version Services tab.
Service Invoke Parameters
Parameter | Description | Nullable |
---|---|---|
svcDef | the service definition value object, see SvcDef | no |
txn | the transaction record value object, see Txn | no |
Error Handling
If an error occurs attempting to expire a task the error will be recorded in the Journey Manager database error log. A Task Expiry service can have a configurable number of automatic retry attempts. The default configuration is to have 5 attempts.
Service Template
This section shows service template Groovy script.
import com.avoka.core.groovy.GroovyLogger as logger
import com.avoka.tm.svc.*
import com.avoka.tm.vo.*
class FluentTaskExpiry {
/*
* Perform Task expiry process
*/
void invoke(SvcDef svcDef, Txn txn) {
// TODO: perform task expiry work
String msg = txn.formStatus + " task " + txn.trackingCode + " assigned to " + txn.emailAddress + " has expired"
new Emailer()
.setToAddress("task-manager@avoka.com")
.setSubject("Task " + txn.trackingCode + " - " + txn.formStatus + " has expired")
.setMessage(msg)
.setTxn(txn)
.sendEmail()
new EventLogger()
.setMessage(msg)
.setTxn(txn)
.logInfo()
}
}
Unit Test Template
This section shows unit test template Groovy script.
import com.avoka.core.groovy.GroovyLogger as logger
import com.avoka.tm.svc.*
import com.avoka.tm.test.*
import com.avoka.tm.vo.*
import org.junit.Test
class UnitTest extends AbstractJUnitTest {
/*
* Perform service unit test
*
* throws exception if unit test fails
*/
@Test
void testExpired() throws Exception {
String formXml = testParams['Test XML Data']
Txn txn = new MockVoBuilder().createTxnTaskWithXml(formXml)
Map params = [
"svcDef": svcDef,
"txn": txn
]
new ServiceInvoker(svcDef).invoke(params)
}
}