Webhook

Funzione

I lavori Webhook vengono utilizzati per ricevere dati dall'esterno dell'SKOOR Engine, utilizzando la sua API REST. Il lavoro attenderà i valori di input (valori numerici e stringhe) e memorizzerà la cronologia dei valori in entrata.

Allarme

Codice di errore, valori, valori stringa

Per questo tipo di lavoro, il collettore deve essere impostato su uno che possa essere utilizzato per autenticare le chiamate REST. Se non è ancora stato fatto, creare un utente di tipo Collettore in /root/Users/Users.

Dettagli Webhook

Parametri webhook

Parametro

Descrizione

Timeout dopo

Se impostato, il codice di errore del lavoro verrà impostato su 5 (errore di timeout) se non vengono inviati dati al lavoro durante il tempo specificato. Il timeout deve essere reimpostato dal codice di errore inviato con la successiva consegna dei dati

Valori

Aggiungere un valore per ogni valore numerico che verrà inviato all'API REST SKOOR. Per ogni valore, un pulsante Definizione unità consente di specificare il nome, l'unità, il divisore, la precisione e la descrizione del valore

Valori stringa

Aggiungi un valore stringa per ogni valore stringa che verrà inviato all'API REST SKOOR. Per ogni valore stringa, un pulsante Definizione unità consente di specificare il nome, l'unità e la descrizione del valore stringa.

Valori webhook e limiti di allarme

Valore / Limite di allarme

Descrizione

Valore 1-x

Valore numerico definito dall'utente

Valore stringa 1-x

Valore stringa definito dall'utente

Codice di errore

Codice di errore generico del processo (vedere la sezione Codici di errore dei processi)

Inserimento di dati in un processo Webhook

È possibile utilizzare qualsiasi client REST per inviare valori e valori stringa al processo Webhook. In questo esempio viene utilizzato lo strumento da riga di comando curl. Di seguito è riportato un semplice script bash shell che alimenterà il processo con 2 valori numerici e 1 valore stringa ogni volta che viene eseguito. 

È necessario inviare un codice di errore insieme ai valori per reimpostare il codice di errore 5 (errore di timeout) se nella configurazione del processo è impostato Timeout after

#!/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}"

Lo script definisce innanzitutto alcune variabili:

  • HOST: l'indirizzo IP o il nome host del SKOOR Server in cui è configurato il processo Webhook

  • USER: il nome dell'utente del collettore configurato sul SKOOR Server

  • PASSWORD: la password dell'utente del collettore

  • JOBID: l'ID del lavoro Webhook che dovrebbe ricevere i valori

Quindi viene eseguito il login al SKOOR Webservice, ricevendo un ID di sessione. L'ID di sessione è una stringa simile a questa: d6c38ad55e80b4a3bed39d55699b824e.

Il comando curl invia i valori utilizzando la notazione returnValueX e stringValueX all'interno di una richiesta POST al SKOOR Webservice, insieme a un ID di sessione valido.

Il corpo della richiesta POST ha il seguente aspetto:

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

oppure

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

I dati da inserire possono provenire da qualsiasi fonte, purché possano essere trasmessi al client REST.

Inviare sempre la richiesta POST utilizzando l'intestazione appropriata Content-Type: application/json.

Come passo finale, lo script esegue il logout dalla sessione. Assicurarsi di implementare un logout, altrimenti l'esecuzione regolare di questo script lascerà molte sessioni aperte sul SKOOR Server.

Lo script può risiedere ed essere eseguito da qualsiasi host in grado di raggiungere il server SKOOR Engine tramite la sua porta HTTPS TCP 443.

Per ulteriori informazioni sull'API REST, consultare la guida al SKOOR Webservice disponibile su ogni installazione di SKOOR Engine all'indirizzo https://<SKOOR server>/skoor-webservice.

Prima di eseguire lo script, è necessario definire i 2 valori e 1 valore stringa sul job Webhook utilizzando i pulsanti Unit corrispondenti:

     

Una volta eseguito lo script, il processo Webhook dovrebbe aver ricevuto i valori:

Il valore 1 pone il lavoro nello stato Minor poiché sul lavoro sono stati definiti i seguenti limiti di allarme: