Skip to main content

Scripting: Multiple Linked Records in One Record

  • April 11, 2020
  • 1 reply
  • 15 views

Forum|alt.badge.img+8

Hi,

I’m developing a script for a client and their water store, allowing them to checkout multiple products and log the transaction in AirTable. I still haven’t played around with this yet, but I thought I’d ask the communitty: how do you create multiple linked records for a single record?

I thought about saving the record IDs of the inventory items to an array, and then using a forloop to update the record: but I imagine that would erase the previous link. I’m thinking that I could do this by concatenating all of the record IDs into a single string, and then using that variable when updating the record.

I’ll report back here when I’ve made some progress, would love to hear your thoughts.

This topic has been closed for replies.

1 reply

Forum|alt.badge.img+8
  • Author
  • Known Participant
  • April 11, 2020

Resolved, this was a LOT easier than I was expecting.
The answer: create an object that contains only one property, “id”, and then push that object to an array.
When creating a record using createRecordAsync, pass that object in as a variable and you’re good to go.

For some context, this is a snippet of a larger script for a local water store in my neighborhood.

var item = {
					Num: item_record.getCellValue("Item #"),
					Product: item_record.getCellValueAsString("Product"),
					Type: item_record.getCellValueAsString("Type"),
					Price: item_record.getCellValue("Price"),
					Quantity_Requesting:  Number(temp),
					Subtotal: Number(temp) * Number(item_record.getCellValue("Price")),
					OnHand: item_record.getCellValue("Quantity On Hand"),
				};

				var recID = {id: item_record.getCellValueAsString("Record ID")}
				cart.push(item);
				inventoryRecID.push(recID);
                let Transtable = base.getTable("Transactions");
				var inventoryArray = inventoryRecID.join();
				let TransId = await Transtable.createRecordAsync({
					"Cash In": cashin,
					"Inventory": inventoryRecID,
					"Deposit": gallon_deposit,
					"Withdraw": gallon_withdraw,
					
				});