Skip to main content

Update and keep values in UpdateRecordsAsync

  • January 15, 2021
  • 3 replies
  • 36 views

Forum|alt.badge.img+14

Hi there -

I have it working to update individual records in updateRecordAsync but it’s replacing the cell values. How can I keep from updating the cell values but just update by adding?

This is for a Look-Up field so it requires a different format than string.

3 replies

Forum|alt.badge.img+19
  • Inspiring
  • 3263 replies
  • January 15, 2021

So, like sustain the current values and simply add additional lookup references? I think that’s what you are driving at.

It requires that you read the existing value (which I believe would be an array of record IDs), push() another value onto that array, and then write the updated array back to the lookup field.


Forum|alt.badge.img+14
  • Author
  • Inspiring
  • 93 replies
  • January 15, 2021

So, like sustain the current values and simply add additional lookup references? I think that’s what you are driving at.

It requires that you read the existing value (which I believe would be an array of record IDs), push() another value onto that array, and then write the updated array back to the lookup field.


Yeah. I am just not sure the most efficient way to do this. It is working for now as I am doing a .includes to look up if the values are previously there and if not, then it’s adding new ones.

Adding it as an array of {id: id} was the fix, otherwise.


JonathanBowen
Forum|alt.badge.img+18
  • Inspiring
  • 1110 replies
  • January 15, 2021

Yeah. I am just not sure the most efficient way to do this. It is working for now as I am doing a .includes to look up if the values are previously there and if not, then it’s adding new ones.

Adding it as an array of {id: id} was the fix, otherwise.


@Rose_Haft1 - this is a link field, yes? If so, the best way is to use the spread operator. From the docs:

When updating an existing linked record cell value, the specified array will overwrite the current cell value. If you want to add a new linked record without deleting the current linked records, you can spread the current cell value like so:

let newForeignRecordIdToLink = 'recXXXXXXXXXXXXXX';
myTable.updateRecordAsync(myRecord, {
    'myLinkedRecordField': [
        ...myRecord.getCellValue('myLinkedRecordField'),
        { id: newForeignRecordIdToLink }
    ]
})

From MDN:

I’ve got an example of this here (albeit on an attachment field, not a link field, but it is the same idea)