Update many records step

A use case overview of the update many records step to discover its functionality within a platform.

Updated over a week ago

After reading this article you’ll know:

  • How to prepare to use the update many records step

  • When you should use this step and what it is based on

  • Update and filter on collection variable to update many records

As the block store gets expanded, we get more and more functionality that simplifies the workflow within applications. In this article, we’ll have a look at how to apply the update many records step that is based on a collection variable and can be used to update the statuses of a certain number of tasks, invoices, orders, etc. Without further speculations, let’s dive in.

Getting started

The first thing we need to create is a new model. For this use case, we will create the basic Task model and the most important properties within it will be ‘Name’ (text property) and the list property ‘Status’ with three statuses (Is done, In progress, and Created).

Preparing for using the update many records step

Next, to be able to view our tasks in the front end, let’s also create a new page in the page builder with a data table on it that will show our current goals and their statuses:

Preparing for using the update many records step: tasks overview

As you can see they have In progress and Created statuses right now, and as a result we want all of these to become Is done after processing them with just one action step - Update many records.

Applying action step

After preparations have been made, go to the block store and find the Update many records step in the Functions segment. Click on View details to open the block’s detail page and then press Install block.

Update many records block in the block store

After you’ve installed the block to your application, come back to the page builder and our page with tasks. From the components menu, pick up the action button and drag it onto the bottom of the data table (or whenever you feel like). It will serve as a trigger for the action to start and eventually update our tasks.

Come up with a name for the button and in its options click on the editing button beside the action.

Setting up update many records step: creating action button in the page builder

The newly generated action will open in the action builder. Before adding and setting the Update record step, we first need to make sure the right model with its filter is passed to this action flow.

Open the Start step and go to the Action variables tab. Then pick up the Collection as the variable kind, type in the name for it, and select Task model. To make sure every record with other statuses except for Is done is updated, you can set the filter to: Status is not equal to Is done. Press Save after you're done.

Note: Keep in mind that currently, the Update many records step does not support assigning has_many and has_and_belongs_to_many relations.

Setting up update many records action flow

Now drag our previously installed Update many records step from the functions list and place it between the Start and Finish. Click on Update many records step and in its options select task_collection (passed from the Start step) and add Status Is done to the value mapping. Lastly, type in something like updated_task to the result (As).

Setting up update many records step

We will need this last (updated_task) value to pass to the output variable. Click on the Finish step and select it. Press Save.

Setting up the action button flow

Wrapping up

Almost done! Let's have a look if our configuration works and if it is able to update all of our tasks from the table.

Go to the page builder and find our page with tasks. Compile it and press Set to done (or whatever you called it) button, refresh the page and if everything is done right - all your tasks will have a new status Is done.

Example of update many records step in action

Note: If the action button refuses to work and the statuses don’t update after you have done everything according to this guide, try to check the model permissions or if your action has public or private access (in action settings).

Did this answer your question?