WebHooks Généralités

Introduction

Les webhooks Métier permettent de manipuler une entité (client, contact, ...) à partir de l'extérieur via un appel de type http.
Les webhooks Métier implémentent une structure commune de leur contrat JSON.

Entête

Structure

Le JSON lors de l'appel au webHook devra contenir les éléments suivants :

{ "header": { "caller": how called the webhook ie.: infinity "callerVersion": version of the caller ie. 1.2.3.4 "languageCode": FR, EN, DE, PT, ES, IT, FR-CA, EN-CA "userCode": user how called the webhook "callDateTime": initial call date/time, usefull when retries or whatever network issue "markForExport": value for srvExport of the table, can be 0, 1, 2 (optional, default is 1) "webhookVersion": version of the webhook for top-down compatibility, can be 1 or 2 (optional, default is 2). Today is used for webhook intervention, equipment and contract. }, "action": { "verb": "value", // GET, PUT, DELETE, LIST, DEFINITION "parameters": { // depends on the verb } }, "data": { // depends on the webhook (used for verb = PUT to insert/update the data) } }

verb PUT

Généralités

Permet d'écrire un enregistrement (Ajout/Mise à jour).

"action": { "verb": "PUT" "parameters": { // for webhook file "entity": "value", "extension": "value" } }

Le bloc data contient les données à créer/mettre à jour. Ce bloc est différent pour chaque webhook. Consultez la fiche expert de chaque webhook pour le détail.

"data": { "xxxxx": { "codexxxxx": "value", // optional "field1": "value", "field2": "value", .... } }

L'initialisation du code d'un enregistrement se fera par ordre de priorité de la manière suivante lors de la création :

  1. Code fourni dans le json (et s'il n'existe pas encore, sinon on sera en modification)

  2. Utilisation du numbering si existant sur le code de l'entité.

  3. Code = ID de l'enregistrement (codexxxxx = xxxxx_ID)

PUT par lot

La possibilité est donné de faire des PUT par LOT en passant un tableau de data.
La variable Webhook.PUT.MaxElementAtOnce défini le nombre maximum d'éléments qui peuvent être passés à la fois (par défaut : 10). Ceci permet de tenir compte du timeout réseau.

Transcodage

Le champ mémoire “internalcodexxxxx” peut être alimenté lors du passage des données.

Ce champ représente le code original de weavy avant éventuel transcodage.

Il permet donc d’effectuer du transcodage dynamique directement par le webhook.

Syntaxe :

Tableau des possibilités :

"codexxxxx" = "A"

"internalcodexxxxx" = "B"

Résultat

"codexxxxx" = "A"

"internalcodexxxxx" = "B"

Résultat

"codexxxxx" = "A" existe en base

"codexxxxx" = "B" n’existe pas en base

Mise à jour de l'enregistrement dont "codexxxxx" = "A"

"codexxxxx" = "A" existe en base

"codexxxxx" = "B" existe en base

Mise à jour de l’enregistrement dont "codexxxxx" = "A"

"codexxxxx" = "A" n'existe pas en base

"codexxxxx" = "B" n’existe pas en base

Création de l’enregistrement avec "codexxxxx" = "A"

"codexxxxx" = ""

"codexxxxx" = "B" n’existe pas en base

Création de l’enregistrement avec "codexxxxx" = xxxxx_ID

"codexxxxx" = "A" n'existe pas en base

"codexxxxx" = "B" existe en base

Recodification de l’enregistrement "codexxxxx" = "B" en "codexxxxx" = "A" + mise à jour

"codexxxxx" = ""

"codexxxxx" = "B" existe en base

Mise à jour de l’enregistrement dont "codexxxxx" = "B"

verb DELETE

Permet de supprimer un enregistrement.

verb GET

Permet de lire un enregistrement.

verb LIST

Permet de lister plusieurs enregistrements.

verb DEFINITION

Permet d’obtenir les propriétés de l'objet métier ainsi que les listes de valeurs possibles associées.

Réponse

Structure

verb PUT

La réponse aura 1 section.

S'il s'agit d'un PUT par lot, le détail du résultat sera un tableau dimensionné selon la section "data" passée en entrée.

verb DELETE

La réponse aura 1 section.

verb GET

La réponse aura 2 sections.

verb LIST

La réponse aura 2 sections.

verb DEFINITION

La réponse aura 2 sections.