...
Les actions sont gérées de manière atomique ; si l’une des actions échoue ou si l’une des clés étrangères utilisées n’est pas valide, l’ensemble de la transaction est annulé.
...
Création d’un enregistrement
Méthode : POST
Document à envoyer :
...
Le code enregistrement n’est pas à renseigner pour ce cas.
Il faut positionner le paramètre « Content-Type » à la valeur « application/json ».
Le document contient l’enregistrement à insérer contenu entre accolades « { } ». Il est décrit par la liste exhaustive de ses champs à intégrer (champ:valeur) ; un champ non renseigné est initialisé avec la valeur « null ».
...
Lecture d’un enregistrement
Méthode : GET
Document à réceptionner :
...
Le document contient l’enregistrement dont l’ID est passé dans l’URL. Il est décrit par la liste exhaustive de ses champs (champ:valeur).
...
Mise à jour d’un enregistrement
Méthode : PUT
Document à envoyer :
...
Il faut positionner le paramètre « Content-Type » à la valeur « application/json ».
Le document contient les champs à mettre à jour pour l’enregistrement (champ:valeur) dont l’ID est passé dans l’URL ; les champs absents ne sont pas modifiés et l’ID de l’enregistrement n’est pas à préciser dans le document.
...
Suppression d’un enregistrement
Méthode : DELETE
Cette méthode supprime l’enregistrement dont l’ID est passé dans l’URL.
...
companyCode (optionnel) : code de la société pour le filtrage des données. Par défaut, le code société associé à l'utilisateur connecté est utilisé.
entityName (obligatoire) : nom de la table (sans « sw_data_ »).
srvExport (obligatoire) : permet de spécifier la valeur à mettre à jour pour le statut "export" (champ "srvExport").
rows (obligatoire) : liste des enregistrements à mettre à jour avec la valeur du champ "srvExport".
rowCode : code unique de l'enregistrement pour une société (dans le cas d'un projet "multi-société" il faut renseigner la propriété "companyCode" ci-dessus).
srvDateUTC : date de dernière modification de l'enregistrement sur le serveur à retourner à partir des données lues en amont.
...
Import de données en masse
Cette opération permet de créer, mettre à jour ou supprimer un ensemble d’enregistrements d’importer un lot de données de manière atomique.
URL : {{apiBaseUrl}}/v1/Data/[codeProjet]/RelationalDataSetImportDataSet/?statistics=true|false
Dans le cadre de l’ajout/mise à jour, l’existence du code de l’enregistrement détermine s’il faut créer un enregistrement ou modifier l’enregistrement existant.
Les suppressions sont traitées en premier, puis les ajout/mise à jour et enfin les relations entre les entités.
La gestion des relations permets de mettre à jour la clé étrangère d’une entité (target) pour la faire pointer vers une autre entité (target).
Dans le cadre de la suppression, l’absence d’un enregistrement est toléré et ne lèvera pas d’exception.
Les modifications sont gérées de manière atomique ; si l’une des mises à jour échoue, l’ensemble de la transaction est annulé.
Méthode : POST
Document à envoyer :
...
Chaque enregistrement doit contenir les mêmes champs.
Méthode : POST
Document à envoyer :
Bloc de code | ||
---|---|---|
| ||
{ "data": { "noResultData": false, "customer": [ { "customer_ID": "MF01", "name": "MF-01" }, { "customer_ID": "MF02", "name": "MF-02" }, { "customer_ID": "MF03", "name": "MF-03" } ] }, "deletes": { "customer": [ "MF02", "MF03" ], "customercontact": [ "CONTACT01", "CONTACT02", ] }, "Relations": [ { "SourceEntityName": "customer", "SourceRowCode": "MF01", "TargetEntityName": "customerContact", } |
Réponse :
Bloc de code |
---|
{
"addedRow": 0,
"updatedRow": 10000,
"statistics": {
"queryCount": 10010,
"queryDurationTotal": "00:00:16.2361677",
"executionDuration": "00:00:32.5875658"
}
} |
Import d’un data set relationnel
Cette opération permet de créer, mettre à jour ou supprimer un ensemble d’enregistrements de manière atomique.
URL : {{apiBaseUrl}}/v1/Data/[codeProjet]/RelationalDataSet
Dans le cadre de l’ajout/mise à jour, l’existence du code de l’enregistrement détermine s’il faut créer un enregistrement ou modifier l’enregistrement existant.
Les suppressions sont traitées en premier, puis les ajout/mise à jour et enfin les relations entre les entités.
La gestion des relations permets de mettre à jour la clé étrangère d’une entité (target) pour la faire pointer vers une autre entité (target).
Dans le cadre de la suppression, l’absence d’un enregistrement est toléré et ne lèvera pas d’exception.
Les modifications sont gérées de manière atomique ; si l’une des mises à jour échoue, l’ensemble de la transaction est annulé.
Méthode : POST
Document à envoyer :
Bloc de code | ||
---|---|---|
| ||
{ "data": { "TargetFieldNamenoResultData": "customer_ID",false, "customer": [ { "customer_ID": "MF01", "TargetRowCodename": "CONTACT01"MF-01" }, { "SourceEntityName": "customer", "SourceRowCode": "MF01", "TargetEntityName": "customerContact", "customer_ID": "MF02", "name": "MF-02" }, { "customer_ID": "MF03", "name": "MF-03" } ] }, "deletes": { "customer": [ "MF02", "MF03" ], "customercontact": [ "CONTACT01", "CONTACT02", ] }, "Relations": [ { "SourceEntityName": "customer", "SourceRowCode": "MF01", "TargetEntityName": "customerContact", "TargetFieldName": "customer_ID", "TargetRowCode": "CONTACT01" }, { "SourceEntityName": "customer", "SourceRowCode": "MF01", "TargetEntityName": "customerContact", "TargetFieldName": "customer_ID", "TargetRowCode": "CONTACT02" } ] } |
Paramétrage du corps de la requête (format JSON) :
noResultData : la valeur ‘true’ permet de ne pas recevoir de données en retour.
data : tableau des données par entités. Il est obligatoire de fournir le code de l’enregistrement.
deletes : tableau des codes à supprimer par entités.
relations : tableau des informations concernant l’enregistrement source et l’enregistrement cible.
SourceEntityName : nom de l’entité source
SourceRowCode : code de l’entité source
TargetEntityName : nom de l’entité cible
TargetRowCode : code l’entité cible.
TargetFieldName : nom de la colonne de l’entité cible. Cette colonne recevra le code de l’enregistrement source.
Suppression d’un data set
Cette opération permet de supprimer un ensemble d’enregistrements de manière atomique.
URL : {{apiBaseUrl}}/v1/Data/[codeProjet]/DeleteDataSet?[deleteMode]&[companyCode]
Méthode : DELETE
DeleteMode : le mode de suppression est obligatoire et permet de déterminer le comportement de l’API concernant les suppressions :
deleteMode=1 : les enregistrements sont supprimés de manière logique.
deleteMode=2 : les enregistrements absent sont supprimés de manière physique.
companyCode (optionnel) : code de la société pour le filtrage des données. Par défaut, le code société associé à l'utilisateur connecté est utilisé.
L’absence d’un enregistrement est toléré et ne lèvera pas d’exception.
Les suppressions sont gérées de manière atomique ; si l’une des suppression échoue, l’ensemble de la transaction est annulé.
Document à envoyer :
Bloc de code | ||
---|---|---|
| ||
{ "customer": [ "MF02", "TargetFieldName": "customer_IDMF03", ], "customercontact": [ "TargetRowCode": "CONTACT02CONTACT01", "CONTACT02", } ] ] } |
Paramétrage du corps de la requête (format JSON) :
noResultData : la valeur ‘true’ permet de ne pas recevoir de données en retour.
data : tableau des données par entités. Il est obligatoire de fournir le code de l’enregistrement.
deletes : tableau des codes à supprimer par entités.
relations : tableau des informations concernant l’enregistrement source et l’enregistrement cible.
SourceEntityName : nom de l’entité source
SourceRowCode : code de l’entité source
TargetEntityName : nom de l’entité cible
TargetRowCode : code l’entité cible.
TargetFieldName : nom de la colonne de l’entité cible. Cette colonne recevra le code de l’enregistrement source.
Dictionnaires, dont la clé est l’entité, et les valeurs sont les codes à supprimer.
Réponse :
Bloc de code |
---|
{
"deletedRow": 10000,
"statistics": {
"queryCount": 10010,
"queryDurationTotal": "00:00:16.2361677",
"executionDuration": "00:00:32.5875658"
}
} |
Création des comptes utilisateurs
...