Post Process logic block customizations and table triggers

We have a logic block that updates a table. That table has triggers which fire a subsequent logic block on Insert/Update. If a customer customizes the first logic block to add a post process which makes updates to the table, will the table triggers fire again?

Hi Marty!

It depends on how the logic block is invoked. If the logic block runs as part of a NATE container (which is the typical use case), then table triggers will only run once. This is because all changes are staged in the container and committed at the same time, firing triggers once for each relevant table change. Alternatively, if the logic block runs directly against Live (without a NATE container), then each update will actually commit when it occurs, necessitating one trigger firing per update.

Unfortunately my knowledge is a little lacking in when, practically, there is or isn’t a NATE container in play. See @cheyanne.schwiethale’s reply below for more detail on that.

3 Likes

Thanks Brendan!

That makes perfect sense about the NATE container. I believe that’s what we’re doing, but we’ll verify just in case.

@marty.long Brendan is correct! Filling in some color for the when you are in a NATE container vs not:

  • If your logic is initiated from the UI (think field/form/row action from the detail form) you will be in a NATE container
  • If your logic is initiated on save from the UI (i.e. Triggers, Action Blocks) you will be in a NATE container
  • If your logic is initiated as a background task (i.e. scheduled job, queued background task, etc), it depends on your Logic Block Definition configuration. If the “Use NATE Container” checkbox is selected on the LB Definition, then it will use a container. If it is not selected, you will not be in a container.
  • If your logic is initiated as part of a Workflow transition (i.e. Workflow Conditional Logic Block or Workflow Post-run Logic Block, it depends on the Workflow Definition configuration. If the “Use NATE Container” checkbox is selected on the Workflow Definition, then it will use a container. If it is not selected, you will not be in a container.
3 Likes

@brandon please see this comment and prior comments about triggers. For the configuration we were talking about earlier where you have a job scheduler kicking off a background task and none of the associated logic blocks had Use NATE Container = true, I would have expected your pre-insert trigger on the table being inserted to would be running at the same time the insert action is processed by the logic block.

1 Like