Use Event Hooks to call VIP Flows

Search Knowledge Base by Keyword

< Back

Using Event Hooks provides a way to

  • Call an expression
  • Save and modify an object using an assigned statement
  • Save an object back to the DB
  • Call a VIP flow to do something fancy with it
  • Call a VIP flow to update an object API to perform an action/do something with it

EventHooks Example:

Let’s look at the Event Hooks Tab:

This example, which again refers to the SampleCommerce Database, will use an expression to do two things:

1) Gets a value from an OrderItem value that has been generated

2) Modifies the value based on the Total Amount value that is generated in the OrderItem.

First we create a Lambda Expression in the Expression Column.  A Lambda Expression is code that takes in Parameter/s and returns a Value.

  • The left side specifies which Object needs to be modified.
  • The right side specifies the calculation function.

A Lambda expression for calculating the Total for an OrderItem is:

   var_Order_.Total = lst_OrderItem_.Where(Function(x) x.OrderID =  var_Order_.ID).Sum(Function(a) a.UnitPrice * a.Quantity)

**Lambda Expressions use VB.Net syntax**

More information on Lambda Expressions

 

To see what the Expression ResultType should be, look back at the Order Table:

Above you can see in the Data_Type column that DECIMAL should be lowercase decimal so that needs to be changed in the EventHooks Table:

  Note:  Values for Type should be followed by a ‘?’ except for Type ‘String’.  The ‘?’ notation allows for a NULL value. If this is not done, and a NULL value is encountered an error will be triggered.

Alternatively, the same thing can be achieved using a flow.  A FlowPath (FlowPath Column) must be specified in the Type Column. Example (CaluculateTotal.vip)

The Parameters can be specified in EventHooks Parameter.

The Parameter Name (ParameterName Column) must exist in the flow

Specifies which parameter should be passed from the Data Generation flow.  It could be

  • A PreProcessVariable name
  • Any Parameters supported in vip (and can be looked at)

For more information see the Parameters section.

You can pass either Parameters or Fixed Values to the Flow.