Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
JSON.UpdateRecord
Update an existing record in a table in one line using JSON.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
JSON | 14.4 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
MBS( "JSON.UpdateRecord"; FileName; TableName; PrimaryKeys; Values ) More
Parameters
Parameter | Description | Example |
---|---|---|
FileName | The file name of where the table is inside. Can be empty to look for the table in all files. Using a table in another database file may require you adding the other file as an external data source and adding the external table to your relationship graph to grant access. |
Get(FileName) |
TableName | The name of the table to insert record into. Can be ID of table, so we lookup name by ID. Can be result of GetFieldName() function as we remove field name automatically. |
"Assets" |
PrimaryKeys | The JSON with keys and values which provides an unique ID for each record, so we can identify the field. Can be RecordID for the record ID. Field name can be the result of GetFieldName() function as we remove table name automatically. If field name is a number with field ID, so we lookup name by ID. |
"ID" |
Values | The JSON object with the record. |
Result
Returns OK or error.
Description
Update an existing record in a table in one line using JSON.You pass to this function table name (and optional filename).
To identify the record you pass the name of the ID field and the value for the record. The ID field must be unique.
Then you pass a JSON with pairs of field names and values for each field you like to change in the record.
Please note that JSON.UpdateRecord and JSON.UpdateRecords are nearly identical. Just JSON.UpdateRecord provides the check to make sure only one record matches while JSON.UpdateRecords allows several records to be updated. So with JSON.UpdateRecords you can easily erase a lot of data if you pass wrong ID!
You can specify fields and table via IDs and the plugin will lookup them for you at runtime. Table IDs and table names must be unique across all open files for this to work correctly.
You can use GetFieldName() function to query field names and the plugin removes the table prefix with :: in the field name before passing it to SQL engine.
You can use FM.ExecuteSQL.LastSQL function to see later what SQL was created and run.
The SQL functions in FileMaker do not trigger OnWindowsTransaction script trigger.
If the record is locked, you get an error like this: [MBS] ERROR: (301): Record is locked by another user.
Your script may then wait and try again later.
Does not take part in transactions in FileMaker. Changes are made directly to the database, so you can't revert them later with Revert Transaction script step.
We auto convert text values to date, time or timestamp if the plugin sees the fields having such a type. Otherwise the type of JSON value defines the data type. If JSON contains an array or object, we make text from it.
Examples
Update a record with JSON:
MBS("JSON.UpdateRecord"; ""; "Contacts"; "{\"PrimaryKey\": " & Contacts::PrimaryKey & "}"; "{\"FirstName\": \"John\", \"TheNumber\": 125}")
Update a record and build JSON on the fly:
MBS("JSON.UpdateRecord"; ""; "Contacts";
JSONSetElement ( "{}" ;
GetFieldName ( Contacts::PrimaryKey ) ; Contacts::PrimaryKey ; JSONString );
JSONSetElement (
JSONSetElement ( "{}" ;
GetFieldName ( Contacts::FirstName ); "John"; JSONString);
GetFieldName ( Contacts::TheNumber ); 134; JSONNumber)
)
See also
- FM.ExecuteSQL
- FM.ExecuteSQL.LastSQL
- FM.UpdateRecord
- JSON.DeleteRecord
- JSON.DeleteRecords
- JSON.InsertOrUpdateRecord
- JSON.InsertRecord
- JSON.UpdateRecords
Release notes
- Version 14.4
- Added JSON.UpdateRecord and JSON.UpdateRecords functions.
Example Databases
Blog Entries
- New in MBS FileMaker Plugin 14.4
- Neues MBS Plugin 14.4 für Claris FileMaker
- MBS Plugin 14.4 for Claris FileMaker
- Insert or update with JSON
- MBS FileMaker Plugin, version 14.4pr4
- MBS FileMaker Plugin, version 14.4pr3
This function checks for a license.
Created 20th August 2024, last changed 21st August 2024