Version: 23.04
Form Saved Processor
The Form Saved Processor is called immediately after the user has saved a form to Journey Manager.
Service Invoke Parameters
Parameters are not nullable except where otherwise indicated.
Parameter | Description |
---|---|
svcDef | SvcDef A service definition value object. |
txn | Txn A transaction record value object. |
request | HttpServletRequest Nullable. A HTTP servlet request. |
user | User Nullable. An authenticated user. |
Error Handling
If an error occurs, the system catches the error and logs it to the Journey Manager database error log. The user should not be aware that any error has occurred.
info
Any changes made by the service to the database are persisted with the transaction. It is up to the service to undo any changes it has made.
Templates
Service
import com.avoka.core.groovy.GroovyLogger as logger
import com.avoka.tm.svc.*
import com.avoka.tm.vo.*
import javax.servlet.http.*
class FluentFormSavedProcessor {
/**
* Perform form save processor service
*/
void invoke(SvcDef svcDef, Txn txn, HttpServletRequest request, User user) {
// TODO: perform business logic
new TxnUpdater(txn)
.setProperty("IDV-Status", "Pending")
.update()
}
}
Unit Test
import com.avoka.core.groovy.GroovyLogger as logger
import com.avoka.tm.query.*
import com.avoka.tm.svc.*
import com.avoka.tm.test.*
import com.avoka.tm.util.*
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 testIDVStatusUpdate() throws Exception {
String xmlData = testParams['Test XML Data']
Txn txn = new MockVoBuilder().createTxnSavedWithXml(xmlData)
MockRequest request = new MockRequest()
Map params = [
"svcDef": svcDef,
"txn": txn,
"request": request,
"user": null
]
new ServiceInvoker(svcDef).invoke(params)
txn = new TxnQuery()
.setTxn(txn)
.withPropertyMap()
.firstValue()
logger.info txn
assert txn.formStatus == Txn.FORM_SAVED
assert txn.propertyMap["IDV-Status"] == 'Pending'
}
}