Crochet Web

Fonction

Les jobs Webhook sont utilisés pour recevoir des données de l'extérieur de SKOOR Engine, en utilisant son API REST. Le job attendra les valeurs d'entrée (valeurs numériques et chaînes de caractères) et stockera l'historique des valeurs entrantes.

Alarme

Code d'erreur, Valeurs, Valeurs de chaîne

Pour ce type de travail, le collecteur doit être défini sur un collecteur pouvant être utilisé pour authentifier les appels REST. Si ce n'est pas encore fait, créez un utilisateur de type Collecteur dans /root/Users/Users.

Détails du webhook

Paramètres du Webhook

Paramètre

Description du paramètre

Délai d'attente après

Si ce paramètre est défini, le code d'erreur du travail sera défini sur 5 (Timeout Error) si aucune donnée n'est envoyée au travail pendant le délai spécifié. Le délai doit être réinitialisé par le code d'erreur envoyé avec la prochaine livraison de données

Valeurs

Ajoutez une valeur pour chaque valeur numérique qui sera envoyée à l'API REST de SKOOR. Pour chaque valeur, un bouton de définition de l'unité permet de spécifier le nom de la valeur, l'unité, le diviseur, la précision et la description.

Valeurs de chaîne

Ajoutez une valeur de chaîne pour chaque valeur de chaîne qui sera envoyée à l'API REST de SKOOR. Pour chaque valeur de chaîne, un bouton de définition d'unité permet de spécifier le nom, l'unité et la description de la valeur de chaîne.

Valeurs du Webhook et limites d'alarme

Valeur / Limite d'alarme

Description de la valeur

Valeur 1-x

Valeur numérique définie par l'utilisateur

Valeur de chaîne 1-x

Valeur de chaîne définie par l'utilisateur

Code d'erreur

Code d'erreur générique de la tâche (voir la section Codes d'erreur de la tâche)

Envoi de données à un job Webhook

N'importe quel client REST peut être utilisé pour envoyer des valeurs et des valeurs de chaîne au job Webhook. Dans cet exemple, l'outil de ligne de commande curl est utilisé. Le texte suivant présente un simple script shell bash qui alimentera le job avec 2 valeurs numériques et 1 valeur de chaîne à chaque fois qu'il est exécuté.

Un code d'erreur doit être envoyé avec les valeurs pour réinitialiser le code d'erreur 5 (Timeout error) si l'option Timeout after est définie dans la configuration du travail.

#!/bin/bash
  
HOST="10.1.0.89"
USER="webhook"
PASSWORD="webhook"
JOBID=830

SESSIONID=$(curl -s -k "https://${HOST}/skoor-webservice/session/login?username=${USER}&password=${PASSWORD}" | python -m json.tool | grep sessionId | cut -d"\"" -f4)

curl -s -k -X POST -H "Content-Type: application/json" -d '{"returnValue1":24.42,"returnValue2":99,"stringValue1":"Skoor Test 3","errorCode":0}' "https://${HOST}/skoor-webservice/webcollector/jobs/$JOBID/values?sessionId=${SESSIONID}"

curl -s -k "https://${HOST}/skoor-webservice/session/logout?sessionId=${SESSIONID}"

Le script définit d'abord quelques variables :

  • HOST: L'adresse IP ou le nom d'hôte du SKOOR Server où le job Webhook est configuré.

  • USER: Le nom de l'utilisateur du collecteur configuré sur le serveur SKOOR.

  • PASSWORD: Le mot de passe de l'utilisateur du collecteur

  • JOBID: L'ID de la tâche Webhook qui doit recevoir les valeurs.

Ensuite, une connexion est effectuée au SKOOR Webservice, recevant un ID de session. L'ID de session est une chaîne de caractères qui ressemble à ceci : d6c38ad55e80b4a3bed39d55699b824e.

La commande curl envoie les valeurs en utilisant les notations returnValueX et stringValueX dans une requête POST au SKOOR Webservice, avec un identifiant de session valide.

Le corps de la requête POST ressemble à ceci :

{
    "returnValue1": 24.42,
    "returnValue2": 99,
    "stringValue1": "Skoor Test 3",
    "errorCode": 0
}

ou

{
    "returnValue": [24.42, 99],
    "stringValue1": "Skoor Test 3",
    "errorCode": 0
}

Les données à alimenter peuvent provenir de n'importe quelle source, tant qu'elles peuvent être transmises au client REST.

Envoyez toujours la requête POST en utilisant l'en-tête approprié Content-Type : application/json.

La dernière étape du script consiste à se déconnecter de la session. Assurez-vous d'implémenter une déconnexion sinon l'exécution régulière de ce script laissera de nombreuses sessions ouvertes sur le serveur SKOOR Server.

Le script peut résider et être exécuté à partir de n'importe quel hôte qui peut atteindre le serveur SKOOR Engine via son port HTTPS TCP 443.

Pour plus d'informations sur l'API REST, veuillez trouver le guide du webservice disponible sur chaque installation de SKOOR Engine sur https://<SKOOR server>/skoor-webservice.

Avant d'exécuter le script, les 2 valeurs et 1 valeur de chaîne doivent être définies sur le job Webhook en utilisant les boutons Unit correspondants :


Une fois le script exécuté, la tâche Webhook doit avoir reçu les valeurs :

La valeur 1 met le job dans l'état Minor puisque les limites d'alarme suivantes ont été définies sur le job :