Inserting to target table using selected records from another table

Imagine a system like a school register: the user selects records from a table of pupils, marks them as present or absent using an action, and one record for each pupil is inserted into an associated target table.
What’s the best way to implement this in NocoBase?

The ‘add new’ action works for adding one record at a time, but this is cumbersome for the user.
I also tried using one ‘update record’ action for each outcome for each row to add records using a sub-form, but using the action a second time deletes data from the old record as it adds a new one. ‘Bulk update’ overwrites the same record rather than adding a new record each time.

This seems to be where NocoBase’s record picker would be used, but after setting up the target table as a linking table between the pupils’ table and another table, the table of pupils is read-only.

Has anyone had luck with a similar system of inserting multple records to an associated target table?

You can handle this nicely using Workflows instead of update or bulk-update actions.

Here’s the pattern that works well:

  • Keep your Pupils table separate from an Attendance table (with fields like pupil_id, date, status, etc.).
  • Add custom action buttons in the Pupils list (e.g. Mark Present / Mark Absent).
  • Configure those actions to trigger a workflow.
  • In the workflow, use a Create Record node to insert a new row in the Attendance table for each selected pupil, setting fields like the current date and attendance status.

This way each action inserts a new record instead of overwriting old ones, and you can even support multi-select (bulk mark) via workflows.
It’s cleaner, prevents data loss, and matches NocoBase’s intended use better than trying to do this with update or sub-form actions. DM me if you need implementation help!