Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

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
languagejson
{
    "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
languagejson
{
    "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
languagejson
{
  "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

...