You’re using You will use an Event Hook logic when you need to:
run Run a piece of code at the moment, when certain event/action happens in the system, e.g.:
for quote For a Quote, you can place hook before the quote Quote is converted to deal, and you can stop this transition depending on some calculation.
you You can send email notification to certain people.
Logic API
Logic Nature: eventHook
Logic Type: Calculation/Pricing
Execution Types:
Standard - to perform some calculation and return the decision (if any).
Information provided to the logic:
depends Depends on the type of the hook event (see the list of all hook events at HookEventType) for which it is triggered. For event
QUOTE_TO_DEAL_PRE
binding Binding variable
quote
- with the content of the quote Quote (incl. items), but it has only simple built-in fields , and does not contain any information about inputs and outputs (not for header nor for items). So if you need the complete quote Quote content, you need to read it from the database.
Expected logic execution outcome:
depends Depends on the type of the hook event (see the list of all hook events at HookEventType) for which it is triggered. For event
QUOTE_TO_DEAL_PRE - The system will use only the result and message from the first logic element. The result must be of type boolean.
if If the result type is NOT Boolean, the result and message is ignored , and the action can continue with execution.
TRUE - the The action can continue with execution.
FALSE - the The action is NOT allowed to continue , and the message will be used and displayed to the user.
exception - the The action is NOT allowed to continue , and the exception message will be used and displayed to the user.
Logging/Testing
The hook events are logged to the Hook Events (HEVT) table.
Configuration
Configured as Advanced Configuration Options on page .
The configuration option is called eventHooksConfig. There can be more various event types, that’s why the configuration is a list. But you can have only one logic for one event type.
The event is trigger either PRE or POST the action.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
[ { "event": "QUOTE_TO_DEAL_PRE", "label": "Convert quote to deal pre-execute", "logicName": "EventHook_QuoteToDealPre" } ] |
Code Sample
EventHook_QuoteToDeal_PRE - very Very simple demo sample of the pre-convertToDeal hook.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
def completeQuote = api.getCalculableLineItemCollection(quote.typedId) //❶ if (libs.QuoteSharedLib.utils.isIndicativePricingQuote(quoteWithItems)) { api.setAlertMessage("Indicative Pricing Quotes cannot be converted into a Deal") return false } return true |
❶ The variable "quote" has only simplified Quote data, if you want the complete info, you need to read it from the database.