Actions
The actions
method is used if you need to trigger new processing - which could be processing another schema or pushing generated views to a third-party application - using web hooks or such as Algolia.
ActionsContext object
The ActionsContext
object is passed into the actions method and gives you access to the reprocess
and destination
functions which are described below.
Methods
Method | Description |
---|---|
reprocess | Reprocess a schema based on its alias. |
destination | Specifies the destination where the generated view is pushed to. |
reprocess
reprocess(schemaAlias)
Note that reprocess
only triggers whenever the source entity is changed. This means that a deploy of the schema will not trigger the reprocess.
Read more about how reprocessing is working, when to use it and when not to use it in the key concepts.
Parameters
Parameter | Type | Description |
---|---|---|
schemaAlias | string | The alias of a schema. |
Required function calls
After the reprocess
function it's required to call one of the following functions to define what source entities you want to reprocess.
byOriginId
Use the byOriginId
function to reprocess a specific entity based on its originId.
Parameters
Parameter | Type | Description |
---|---|---|
originId | string | The original id from the source system. |
context
.reprocess('mySchemaAlias')
.byOriginId(sourceEntity.properties.link.id)
bySchema
Use the bySchema
function to reprocess all source entities a specific schema has a trigger on.
Caution: Often it's better to reprocess a specific source entity instead a schema and all of its matching source entities, but sometimes it's necessary to reprocess an entire schema.
context
.reprocess('mySchemaAlias')
.bySchema()
filter
Using the filter
function lets you do a dynamic search for source entities you want to reprocess.
Parameters
Parameter | Type | Description |
---|---|---|
filter | string | Your filtering criteria. |
See list of filter examples here
context
.reprocess('mySchemaAlias')
.filter("type eq 'account' and properties.internalId eq '1234'")
The filter
function is limited to a maximum number of items to return, based on the tenant plan. It can however be increased per tenant basis. Please reach out to Enterspeed if needed.
The default limits are:
- Free & Premium plans: 100 items
- Enterprise plan: 500 items
parent
Use the parent
function to reprocess the parent entity based on its originParentId.
context
.reprocess('mySchemaAlias')
.parent()
Optional function calls
To filter the source entities you want to reprocess even further you can call some of the following optional functions.
limit
The limit
function limits the number of source entities.
Parameters
Parameter | Type | Description |
---|---|---|
limit | number | The maximum number of source entities. |
context
.reprocess('mySchemaAlias')
.filter("type eq 'account'")
.limit(5)
orderBy
The orderBy
function sorts the source entities. This is typically used in combination with limit
.
Parameters
Parameter | Type | Description |
---|---|---|
orderBy | { propertyName: string, direction: "asc" | "desc" } | Allows you to specify your desired sorting order. |
context
.reprocess('mySchemaAlias')
.filter("type eq 'account'")
.orderBy({ propertyName: "properties.createdDate", direction: "desc"})
sourceGroup
Defines the source group of an source entity to process. If the source entity you want to reprocess is located in another source group than the current source entity, you must specific the source group.
Note: sourceGroup
can't be used on parent
as parent is implicit in the same source group as the child.
Parameters
Parameter | Type | Description |
---|---|---|
sourceGroupAlias | string | The alias of the source group for the source entity you want to reprocess. |
context
.reprocess("mySchemaAlias")
.byOriginId(sourceEntity.properties.link.id)
.sourceGroup('anotherSourceGroup')
destination
destination(destinationAlias)
The destination
method is used to push generated views for a schema to a webhook, to Algolia or another third-party application.
Parameters
Parameter | Type | Description |
---|---|---|
destinationAlias | string | The alias of the destination you want the generated view is pushed to. |
Examples
actions: function(sourceEntity, context) {
context.reprocess('productCategory')
.byOriginId(sourceEntity.properties.productCategoryPage.id)
.sourceGroup('commerce');
context.reprocess('account')
.filter("type eq 'account' and properties.internalId eq '1234'");
context.destination('webhook');
}
actions: (sourceEntity, context) => context.reprocess('productCategory').parent()