Modifier un enregistrement

Pour modifier un enregistrement, utilisez une méthode HTTP PATCH avec le point de terminaison API records en indiquant le nom de la base de données, le modèle et l'identifiant de l'enregistrement.

Méthode HTTP

PATCH

URL

/fmi/data/version/databases/nom-base/layouts/nom-modèle/records/id-enregistrement

version : la version FileMaker Data API demandée peut utiliser v1, v2 ou vLatest

nom-base : nom de la base de données hébergée.

nom-modèle : nom du modèle servant de contexte à la modification de l'enregistrement

id-enregistrement : identifiant de l'enregistrement à modifier

En-tête HTTP

Content-Type: application/json

Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données

Paramètres

Données d'enregistrement au format JSON contenant des paires rubrique/valeur à mettre à jour. À l'aide de la spécification portalData, ces données peuvent spécifier des tables externes ou des enregistrements liés se trouvant dans le modèle. Un nom de table externe peut être le nom de l'objet tel qu'indiqué dans l'Inspecteur de FileMaker Pro ou le nom de la table liée.

Seules les rubriques que vous indiquez sont mises à jour. Les autres rubriques de l'enregistrement restent inchangées. Si « {} » est fourni comme valeur fieldData, l'enregistrement cible n'est pas mis à jour.

Par exemple :

Copier

  "fieldData": {
    "Prénom": "Jean",
    "deleteRelated": "Commandes.3",
    "Date Field": "2029/1/20"
  },
  "portalData": {
    "TableEmplois": [
      {
        "recordId": "70"
        "modId": "4"
        "TableEmplois::Nom": "Sous-traitant" 
      }
    ]
  },
  "options": {
    "entrymode": "script",
    "prohibitmode": "script"
  },
  "dateformats": 2
}

Autres paramètres de corps de la requête facultatifs :

  • modId - Spécifie un identifiant de modification pour vous assurer que vous modifiez la version actuelle d'un enregistrement. Si la valeur de l'identifiant de modification ne correspond pas à la valeur actuelle de l'identifiant de modification figurant dans la base de données, l'enregistrement n'est pas modifié.

  • options - Lors de l'écriture de données, ces options contrôlent :

    • entrymode - Ignore si l'option Autoriser les modifications utilisateur d'une rubrique pour la validation des données est sélectionnée, et utilise cette option à la place. La valeur « script » ignore les exigences de validation des données d'une rubrique (ainsi nommée car les scripts ignorent ces exigences). La valeur « user » (par défaut) suit les exigences de validation d'une rubrique.

    • prohibitmode - Ignore si l'option Entrées auto. non modifiables lors de la saisie d'une rubrique pour la saisie automatique des données est sélectionnée, et utilise cette option à la place. La valeur « script » ignore les exigences de saisie automatique de données d'une rubrique (ainsi nommée car les scripts ignorent ces exigences). La valeur « user » (par défaut) suit les exigences de saisie automatique des données d'une rubrique.

  • dateformats - Spécifie le format des rubriques de date et d'horodatage. La valeur est 0 pour les formats américains, 1 pour les formats des paramètres régionaux du fichier ou 2 pour les formats ISO 8601. Si elle n'est pas définie, la valeur par défaut est 0.

  • script.prerequest, script.presort, script - Exécute des scripts FileMaker dans le cadre de la requête. Consultez la section Exécuter un script avec une autre requête.

Réponse

Le corps de réponse et un tableau de messages indiquant un code d'erreur de 0.

Par exemple :

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

Consultez la section Codes d'erreur.

Remarques 

  • Lorsque vous modifiez des enregistrements à l'aide de FileMaker Data API, la validation des rubriques est appliquée par défaut (sauf si l'option entrymode est remplacée par l'option ci-dessus). Si la validation de la rubrique est appliquée et que les données ne sont pas validées, vous recevrez un message d'erreur et l'enregistrement ne sera pas mis à jour.

  • Pour supprimer un enregistrement lié, vous pouvez utiliser la syntaxe deleteRelated.

    Par exemple, pour supprimer un seul enregistrement avec l’identifiant « 3 » de la table liée « Commandes » :

    "deleteRelated" : "Commandes.3"

    Par exemple, pour supprimer tous les enregistrements avec les identifiants « 7 » et « 9 » de la table liée « Commandes » :

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