How to get button to run a bulk function across multiple entities which creates only one new entity and relates it

The scenario

  1. Start with a list (table) of entities type A.
  2. Checkbox to select multiple.
  3. Click a button in the bottom bar.
  4. Fill out fields and submit.
  5. System creates a single entity of type B with fields populated with the data provided and links all of the selected A entities to it.

More context.

I’m writing an asset management module.
I need to be able to bulk assign assets to people.
Each time there is an assignment from A to B, that transfer needs to be recorded in the format.

Transfer Entity

  • From → Person
  • To → Person
  • Date → Date
  • Assets → [Asset, Asset, ..]

Under the current button limitations, it will create a transfer entity for each asset, i.e.:

Transfer Entity #1

  • From → Person
  • To → Person
  • Date → Date
  • Assets → Asset #1

Transfer Entity #2

  • From → Person
  • To → Person
  • Date → Date
  • Assets → Asset #2

.. Transfer Entity (N)

etc.

This breaks twofold — not only does it duplicate records, it actually splits the assets.

I’ve tried creating a Transfer form, but that also hit a wall. It really needs to be a multi-stage form, because you can’t send multiple assets from Person A AND Person B to Person C within a single transfer.

Solutions within Fibery would be appreciated.

Edit: Also would appreciate a solution that doesn’t create a bajillion transfers and culls the duplicates with a merge in post.

I’d love to try and help but don’t fully understand the desired outcome.

Why is the desire to group as many transfers as possible to a single Transfer entity?
How do you envision this transfer?

From: Person A, Person B
To: Person C
Date: Date
Assets: Asset #1 (of A), Asset #2 (of B)

Something like this? But how would you know which asset was from whom, in my example I have the brackets, how do you envision this within a single Transfer entity where just Asset 1 and Asset 2 are linked?

Could a simple “Transfer log” Rich text field in the “Asset” database with automations to log transfers there solve the problem, without the “Transfer” database – or why not (to understand the issue better)?

I am not sure why the current design is problematic. If a single record represents a single asset being transferred from one person to another, every time multiple assets get transferred at the same time, this is recorded as multiple transfer records.
Any time you want to aggregate, you can do that, e.g. a view of all transfers on a given date, grouped by sender (or recipient). If necessary, you can also use auto-linking rules to allow related asset transfers to be visible to each other, e.g. same date transfers from the same sender.
And of course Fibery reporting will work brilliantly for analytics/visualisation