Modificare un record

Per modificare un record, utilizzare un metodo PATCH HTTP con endpoint API records specificando il nome del database, il formato e l'ID del record.

Metodo HTTP

PATCH

URL

/fmi/data/versione/databases/nome-database/layouts/nome-formato/records/id-record

versione – la versione di FileMaker Data API richiesta può utilizzare la v1, v2 o vLatest

nome-database – nome del database ospitato

nome-formato – nome del formato da utilizzare come contesto per modificare il record

id-record – ID del record da modificare

Intestazione HTTP

Content-Type: application/json

Authorization: token-sessione di connessione, dove token-sessione è il valore X-FM-Data-Access-Token univoco per la sessione del database

Parametri

I dati del record in formato JSON contenenti coppie campo-valore da aggiornare. I dati possono specificare record correlati o portali che si trovano nel formato utilizzando la specifica portalData. Il nome di un portale può essere il nome oggetto visualizzato nella finestra Impostazioni di FileMaker Pro o il nome della tabella correlata.

Vengono aggiornati solo i campi specificati; gli altri campi nel record non vengono modificati. Se come valore fieldData viene specificato "{}", il record di destinazione non viene aggiornato.

Ad esempio:

Copia

  "fieldData": {
    "First Name": "Mario",
    "deleteRelated": "Ordini.3",
    "Date Field": "2029/1/20"
  },
  "portalData": {
    "JobsTable": [
      {
        "recordId": "70"
        "modId": "4"
        "JobsTable::Name": "Fornitore esterno" 
      }
    ]
  },
  "options": {
    "entrymode": "script",
    "prohibitmode": "script"
  },
  "dateformats": 2
}

Altri parametri opzionali del corpo della richiesta:

  • modId - specifica un ID di modifica per assicurarsi di modificare la versione corrente di un record. Se il valore dell'ID di modifica non corrisponde al valore dell'ID di modifica corrente nel database, il record non viene modificato.

  • options - quando si scrivono i dati, queste opzioni controllano:

    • entrymode - ignora se l'opzione di un campo per la convalida dei dati Consenti all’utente di ignorare durante l’immissione dei dati è selezionata e utilizza invece questa opzione. Il valore "script" ignora i requisiti di convalida dei dati di un campo (così chiamato perché gli script ignorano questi requisiti). Il valore "user" (predefinito) rispetta i requisiti di convalida di un campo.

    • prohibitmode - ignora se l'opzione di un campo per l'immissione automatica dei dati Impedisci modifica valore durante immissione dati è selezionata e utilizza invece questa opzione. Il valore "script" ignora i requisiti di immissione automatica dei dati di un campo (così chiamato perché gli script ignorano questi requisiti). Il valore "user" (impostazione predefinita) rispetta i requisiti di immissione automatica dei dati di un campo.

  • dateformats - specifica il formato dei campi Data e Indicatore data e ora. Il valore è 0 per i formati statunitensi, 1 per i formati delle impostazioni locali del file o 2 per i formati ISO 8601. Se non specificato, il valore predefinito è 0.

  • script.prerequest, script.presort, script - esegue gli script FileMaker come parte della richiesta. Vedere Esecuzione di uno script con un'altra richiesta.

Risposta

Il corpo della risposta e una matrice di messaggi con un codice di errore 0.

Ad esempio:

Copia
{
  "response": {
    "modId": "3"
  },
  "messages": [
    {
      "code": "0",
      "message": "OK"
    }
  ]
}

Vedere Risposte di errore.

Note 

  • Quando si modificano i record utilizzando FileMaker Data API, la verifica dei campi viene applicata per impostazione predefinita (a meno che non sia sostituita dall'opzione entrymode di cui sopra). Se la verifica dei campi viene applicata e i dati non la superano, viene visualizzato un messaggio di errore e il record non viene aggiornato.

  • Per eliminare un record correlato è possibile utilizzare la sintassi deleteRelated.

    Ad esempio, per eliminare un singolo record con ID "3" dalla tabella correlata "Ordini":

    "deleteRelated" : "Ordini.3"

    Ad esempio, per eliminare tutti i record con ID "7" e "9" dalla tabella correlata "Ordini":

    "deleteRelated" : ["Ordini.7", "Ordini.9"]