Workflow, e l’azione “Calcola Campi”

Dalla versione 7.8 di SuiteCRM è presente una nuova tipologia di azione: CALCOLA CAMPI. Questa azione permette di effettuare nuove operazioni sui valori dei campi del CRM.

Un opzione di questo tipo aumenta la potenza operativa del CRM ed evita molti interventi sul codice.

Ad esempio ora potremmo definire la scadenza di un preventivo sommando la data di creazione alla durata in giorni, oppure applicare degli sconti ai preventivi in base a determinate condizioni e tutto tramite la definizione di opportune regole di workflow.

Le possibili applicazioni ed i possibili scenari che rendono importante questa nuova funzionalità sono moltissimi.

 

L’attivazione dell’azione CALCOLA I CAMPI, apre una schermata con tre sezioni:

  • PARAMETRI
  • PARAMETRI DI RELAZIONE
  • FORMULE

Le prime due sezioni, Parametri e Parametri di relazione, servono per la definizione dei parametri da usare nelle formule. E’ quindi possibile usare nelle formule tutti i campi del modulo e dei moduli collegati a lui.

La sezione Formule invece serve alla definizione delle formule i cui risultati saranno inseriti nel campo indicato.

 

Per l’elenco di tutte le possibili Formule utilizzabili nella sezione Formule, rimandiamo alla apposita sezione della documentazione ufficiale: https://suitecrm.com/wiki/index.php/Userguide#Logical_Functions

 

Le formule utilizzate, così come i parametri, dovranno essere indicate tra parentesi graffe.

Come da esempio della documentazione ufficiale se volessimo effettuare una operazione composta da più formule

((((10 * 2) + 12) / 8) – 1)2

Dovremmo scriverla come:

{power({subtract({divide({add({multiply(10; 2)}; 12)}; 8)}; 1)}; 2)}

 

Ovviamente al posto dei valori numerici statici potrebbero esserci i parametri attivati nelle apposite sezioni ad esempio {P0}, {P1}, {P2} ed avere come risultato una formula tipo la seguente

{power({subtract({divide({add({multiply({P0}; 2)}; {P1})}; 8)}; {P2})}; 2)}

 

 

Vediamo un esempio con cui andiamo a calcolare automaticamente la data di scadenza di un contratto sommando il campo numerico durata, alla data di inizio contratto.

Nella sezione parametri selezioniamo i due valori che servono al calcolo, cieè il campo DURATA ed il campo DATA INIZIO.

come si vede dall’immagine a questi valori, viene assegnato un identificatore, rappresentato tra parentesi graffe. Tramite questi identificatori ({P0} e {P1}) potremo richiamare nella formula i valori dei campi a cui fanno riferimento.

Ora non ci rimane che individuare la formula che fa al caso nostro per effettuare l’operazione di somma di un valore numerico (mesi di durata del contratto) ad una data (data di inizio contratto). Facendo riferimento alla documentazione ufficiale (https://suitecrm.com/wiki/index.php/Userguide#Logical_Functions) troviamo la formula che fa al caso nostro:

{addMonths(format; timestamp; amount)}

dove:

  • format, è la stringa che rappresenta il formato della data risultante (nel database mysql di SuiteCRM, le date sono salvate in formato “Y-m-d”)
  • timestamp, è la data
  • amount, è il valore numerico da sommare

 

La nostra formula verrà quindi associata al campo DATA FINE e sarà impostata come

{addMonths(Y-m-d; {P1}; {P0})}