Bearbeiten eines Datensatzes

Um einen Datensatz zu bearbeiten, verwenden Sie eine HTTP PATCH-Methode mit dem API-Endpunkt records, der Datenbankname, Layout und DatensatzID angibt.

HTTP-Methode

PATCH

URL

/fmi/data/version/databases/datenbankname/layouts/layoutname/records/datensatzid

version – die angeforderte FileMaker Data API-Version, kann v1, v2 oder vLatest sein

datenbankname – der Name der bereitgestellten Datenbank

layoutname – der Name des Layouts, das als Kontext für die Bearbeitung des Datensatzes dienen soll

datensatzid – die DatensatzID des Datensatzes, der bearbeitet werden soll

HTTP-Header

Content-Type: application/json

Authorization: session-token des Inhabers, wobei session-token den eindeutigen Wert des X-FM-Data-Access-Token für die Datenbanksitzung darstellt

Parameter

Datensatzdaten in JSON-Format mit zu aktualisierenden Feld-Wert-Paaren. Die Daten können mithilfe von portalData Bezugsdatensätze oder Ausschnitte angeben, die sich in dem Layout befinden. Ein Ausschnittname kann entweder der im Inspektor in FileMaker Pro angegebene Objektname oder der Name der Bezugstabelle sein.

Nur die Felder, die Sie angeben, werden aktualisiert. Andere Felder im Datensatz werden nicht geändert. Wenn „{}“ als fieldData-Wert angegeben wird, wird der Zieldatensatz nicht aktualisiert.

Beispiel:

Kopieren

  "fieldData": {
    "Vorname": "Joe",
    "deleteRelated": "Bestellungen.3",
    "Datumsfeld": "2029/1/20"
  },
  "portalData": {
    "JobsTable": [
      {
        "recordId": "70"
        "modId": "4"
        "JobsTable::Name": "Auftragnehmer" 
      }
    ]
  },
  "options": {
    "entrymode": "script",
    "prohibitmode": "script"
  },
  "dateformats": 2
}

Weitere optionale Abfragetext-Parameter:

  • modId – Geben Sie eine Änderungs-ID an, um sicherzustellen, dass Sie die aktuelle Version eines Datensatzes bearbeiten. Wenn der Wert der Änderungs-ID nicht dem aktuellen Wert der Änderungs-ID in der Datenbank entspricht, wird der Datensatz nicht geändert.

  • options – Beim Schreiben von Daten steuern diese Optionen Folgendes:

    • entrymode – Ignoriert, ob die Option Benutzer darf Überprüfung bei Dateneingabe umgehen für die Datenüberprüfung für ein Feld ausgewählt ist, und verwendet stattdessen diese Option. Der Wert „script“ ignoriert die Datenüberprüfungsanforderungen eines Feldes (so genannt, weil Scripts diese Anforderungen ignorieren). Der Wert „user“ (Standard) folgt den Überprüfungsanforderungen eines Feldes.

    • prohibitmode – Ignoriert, ob die Option Keine Veränderung des Werts bei der Dateneingabe für die automatische Dateneingabe ausgewählt ist, und verwendet stattdessen diese Option. Der Wert „script“ ignoriert die Anforderungen eines Feldes bezüglich der automatischen Dateneingabe (so genannt, weil Scripts diese Anforderungen ignorieren). Der Wert „user“ (Standard) folgt den Anforderungen eines Feldes bezüglich der automatische Dateneingabe.

  • dateformats – Gibt das Format von Datums- und Zeitstempelfeldern an. Der Wert ist 0 für US-Formate, 1 für die Formate des Dateisystems oder 2 für ISO 8601-Formate. Wenn nicht angegeben, ist der Standardwert 0.

  • script.prerequest, script.presort, script – Führt FileMaker-Scripts als Teil der Anforderung aus. Siehe Ausführen eines Scripts mit einer anderen Anforderung.

Antwort

Ein leerer Antwortteil und ein Meldungsarray mit einem Fehlercode 0.

Beispiel:

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

Siehe Fehlerantworten.

Hinweise 

  • Wenn Sie Datensätze mit der FileMaker Data API bearbeiten, ist die Feldüberprüfung standardmäßig aktiviert (es sei denn, sie wird durch die Option entrymode oben außer Kraft gesetzt). Wenn die Feldüberprüfung erzwungen wird und die Daten die Überprüfung nicht bestehen, erhalten Sie eine Fehlermeldung und der Datensatz wird nicht aktualisiert.

  • Um einen Bezugsdatensatz zu löschen, können Sie die Syntax deleteRelated verwenden.

    So löschen Sie beispielsweise einen einzelnen Datensatz mit der ID „3“ aus der Bezugstabelle „Bestellungen“:

    "deleteRelated" : "Bestellungen.3"

    So löschen Sie beispielweise all Datensätze mit den IDs „7“ und „9“ aus der Bezugstabelle „Bestellungen“:

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