Mise à jour partielle d'un enregistrement - 7.3

Langage de requête MDM et accès aux données REST

EnrichVersion
7.3
EnrichProdName
Talend Data Fabric
Talend MDM Platform
task
Gouvernance de données > Consolidation de données
Gouvernance de données > Récupération de données
EnrichPlatform
Talend MDM Server
Talend MDM Web UI
Vous pouvez mettre à jour partiellement un enregistrement de données dans le conteneur de données spécifié. L'enregistrement sera fourni dans le contenu de requête au format XML.
Requête
PATCH /services/rest/data/{containerName}

Le corps est une représentation XML de l'enregistrement à mettre à jour. L'élément Id dans le corps de la requête détermine quel enregistrement sera mis à jour.

Paramètres
  • containerName : valeur String qui spécifie le nom du conteneur de données dans lequel vous souhaitez mettre à jour partiellement un enregistrement de données.
  • container : valeur String qui représente le type du conteneur de données. La valeur est MASTER (default) ou STAGING.
  • updateReport : valeur booléenne qui contrôle la création d'une entrée de journal (rapport de mise à jour). Par défaut, la valeur est true.
  • pivot : valeur String qui représente le chemin XPath vers un élément multi-occurrences dans lequel des données doivent être ajoutées, remplacées ou supprimées dans l'élément de votre choix.
  • overwrite : valeur booléenne qui contrôle l'écrasement de la liste de valeurs existante pour un élément multi-occurrences au profit d'une nouvelle liste, ou l'ajout des nouvelles valeurs à la liste existante sans dédoublonnage. Par défaut, la valeur est true, ce qui signifie que la liste de valeurs existante sera remplacée par la nouvelle. Cette valeur n'est pas valide lorsque le paramètre delete est défini à true.
  • delete : valeur booléenne qui contrôle la suppression des valeurs correspondant aux valeurs d'entrée pour un élément multi-occurrences. Par défaut, la valeur est false.
  • key : valeur String qui représente le chemin XPath relatif au pivot et qui permet d'identifier un sous-élément de type complexe d'un élément multi-occurrences défini par le paramètre pivot. Si ce paramètre n'est pas spécifié, tous les sous-éléments de l'élément multi-occurrences ayant un XPath qui correspond à celui du sous-élément du flux XML d'entrée seront remplacés. Si plus d'un sous-élément correspond à la clé, le premier sera mis à jour. Si aucun sous-élément ne correspond à la clé, elle sera ajoutée à la fin.
  • position : valeur Integer qui représente l'emplacement des nouvelles valeurs ajoutées. Si ce paramètre n'est pas spécifié, les nouvelles valeurs seront ajoutées à la fin.
En-têtes
  • Content-Type : application/xml ou text/xml
    Remarque : Si la déclaration XML est incluse dans le contenu de la requête XML et que l'attribut d'encodage est utilisé, vous devez définir sa valeur à UTF-8.
  • Authorization : schéma d'authentification basique
Réponse Aucun contenu.
Statut
  • 200 OK : opération exécutée avec succès, l'enregistrement de données identifié par l'élément Id est mis à jour partiellement en fonction de l'entrée fournie.
  • 400 BAD REQUEST : la requête contient un paramètre invalide, par exemple un nom de stockage inexistant, un document XML invalide, un type de stockage invalide ou un identifiant d'enregistrement inexistant.
  • 401 UNAUTHORIZED : échec de l'authentification, identifiant ou mot de passe invalide.
  • 403 FORBIDDEN : autorisation requise manquante, par exemple autorisation d'écriture manquante.
  • 404 NOT FOUND : la ressource n'existe pas, par exemple URL de service invalide.
  • 500 INTERNAL SERVER ERROR : autres erreurs.
Limitation Cette API REST ne supporte pas la mise à jour partielle des enregistrements pour l'entité Role dans le conteneur de données système PROVISIONING.

Exemple de requête

Supposons qu'il existe un enregistrement comme celui ci-dessous dans une entité Famille :

<Family>
    <Id>1</Id>
    <Name>Lee</Name>
    <Kids>
        <Kid>
            <Name>David</Name>
            <Age>10</Age>
            <Habits>
                <Habit>Basketball</Habit>
                <Habit>Tennis</Habit>
            </Habits>
        </Kid>
        <Kid>
            <Name>James</Name>
            <Age>8</Age>
        </Kid>
        <Kid>
            <Name>Kate</Name>
            <Age>6</Age>
        </Kid>
    </Kids>
</Family>

La valeur delete définie comme true, la valeur pivot définie comme Family/Kids/Kid, et la valeur clé définie comme /Name vont permettre à l'exemple de requête suivant de supprimer l'élément Kid aux occurences multiples identifié par James :

<Person>
    <Id>1</Id>
    <Kids>
        <Kid>
            <Name>James</Name>
        </Kid>
    </Kids>
</Person>

La valeur overwrite définie comme false, la valeur delete définie comme false, la valeur pivot définie comme Family/Kids/Kid[1]/Habits/Habit (Kid[1] indique le premier enfant), la valeur key non spécifiée ou définie comme . et la valeur position définie comme 2 vont permettre à l'exemple de requête suivant d'ajouter deux valeurs à l'élément Habit aux occurences multiples après </Habit>Basketball</Habit> pour le premier enfant :

<Person>
    <Id>1</Id>
    <Kids>
        <Kid>
            <Habits>
                <Habit>Football</Habit>
                <Habit>Table tennis</Habit>
            </Habits>
        </Kid>
    </Kids>
</Person>