LOGICHE - AGGIORNAMENTO OGGETTI SENZA EVENTI

IKON SERVER permette di comandare lo stato di oggetti al variare di stato di altri oggetti attraverso gli EVENTI ATTIVI (vv. manuale di installazione), tuttavia questo meccanismo determina l'esecuzione in cascata di eventuali eventi attivi a sua volta associati agli oggetti che vengono comandati. Se tra questi ultimi è presente anche l'oggetto che inizialmente è cambiato di stato, si genera un loop.

Lo script presentato in questo tutorial permette di evitare questa situazione, aggiornando solo lo stato nel DB con il valore ricevuto in ingresso, senza determinare l'esecuzione di eventuali eventi associati.

 

CREAZIONE DELLO SCRIPT

Il primo passo consiste nel creare uno SCRIPT, procedendo come segue:

  • Accedere alla sezione di AMMINISTRAZIONE di IKON SERVER

  • Selezionare la voce "FUNZIONI AVANZATE", quindi "SCRIPTING" ed infine "SCRIPTS"

  • Premere il pulsante "NUOVO" ed assegnare un nome univoco al nuovo script (ad esempio "updatval")

  • Accedere alla scheda del nuovo SCRIPT mediante l'apposito pulsante di MODIFICA (verde)

A questo punto, cancellare il contenuto dello SCRIPT ed inserire il codice seguente:

//Scanning child relations
foreach($me->childRelations as $childRelation)
{
    $child = $childRelation->child;
    $child->updateToDb("value",input());
    debug("Oggetto " . $child->name . " aggiornato allo stato " . input(),true);
}
output('');


Salvare mediante l'apposito pulsante SALVA.

 

CREAZIONE DELLO SCRIPT RUNNER

Per ogni oggetto che, con il cambio di stato, deve aggiornare uno o più altro oggetti, è necessario configurare un nuovo SCRIPT RUNNER nel seguente modo:

  • Selezionare la voce "RUNNERS" nella sezione "SCRIPTING" del menu di amministrazione

  • Creare un nuovo oggetto mediante il pulsante "AGGIUNGI" della TOOLBAR

  • Accedere alla scheda del nuovo oggetto tramite il pulsante "MODIFICA" della TOOLBAR

A questo punto inserire nella sezione "DATI GENERALI" un nome identificativo per il nuovo oggetto, e selezionare lo SCRIPT creato in precedenza nell'omonimo menu a tendina; lasciare inalterate le altre opzioni della sezione "ASPETTO".

Nella sezione "INGRESSI" trascinare l'oggetto il cui cambio di stato determina l'aggiornamento degli oggetti, avendo cura di specificare "$VAL" come valore; e nella sezione "USCITE" viceversa trascinare uno o più oggetti che si desidera aggiornare con lo stato dell'ingresso, anche in questo caso specificando "$VAL" come valore. In questo caso, gli identificativi non sono utilizzati.

A questo punto, è possibile simulare il funzionamento dello script nella parte DEBUG: cambiare il valore dell'oggetto di ingresso e verificare che, nella sezione "debug", sia riportato l'aggiornamento di stato di tutte le uscite.

Questo sito utilizza diversi tipi di cookie, tra cui quelli di profilazione (propri e di altri siti) per inviarti pubblicità in linea con le tue preferenze manifestate nell'ambito della navigazione in rete. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie clicca qui. Se accedi a un qualunque elemento sottostante questo banner acconsenti all'uso dei cookie.
OK