LA SCHEDULAZIONE DI UN COMANDO

Come già accennato, la funzionalità di schedulazione permette di salvare ed eseguire dei comandi personalizzati (query) in un’apposita tabella.

 

Da qui è possibile schedulare alcuni comandi particolari che potranno essere eseguiti in automatico in un determinato momento senza l’ausilio di alcun utente; ad esempio, tutte le sere inviare ad un responsabile la lista degli appuntamenti previsti per il giorno dopo, oppure la lista degli ordini, la lista dei nuovi clienti inseriti, ecc.

In più, l'applicativo è in grado di inviare una mail od un SMS ad un utente specifico coi risultati del comando (necessita attivare preventivamente l'apposito modulo "SMS Gateway" sul CRM ed avere un abbonamento con un fornitore per l'invio dei messaggi).

 

Nota: per il corretto funzionamento della schedulazione in oggetto è necessario avere installato l'ultima versione di Siseco License Manager & Scheduling Tools

(versione 1.1.36 core 1.1.83 o superiore. Consigliata versione 1.2.12).

 

 

Per la schedulazione del comando, i campi da compilare saranno:

 

Il programma indica anche quando il comando è stato eseguito l’ultima volta, quando verrà eseguita la prossima volta e se è stata inviata una mail ed a chi.

 

 

Segue poi la prima sezione:

 

Si indica il luogo “fisico” dove verranno salvati i dati estratti col comando ed il formato. Non è obbligatorio indicare questi dati. La sezione seguente permette di inviare via mail il risultato del comando.

 

Selezionando “Abilita invio email” ed indicando un indirizzo, al termine dell’esecuzione del comando verrà spedita una e-mail in formato HTML col risultato del comando.

E’ possibile definire il mittente e tutti i campi dell’email (A, CC, CCn, Oggetto, Corpo, Allegato. E’ presente un pulsante per vedere l’anteprima Html del corpo dell’email.

 

Vi sono diverse modalità di invio:

 

SELECT AgEmail as Email, AgEmailCC as EmailCC, AnnoOrdine, NumeroOrdine, DataOrdine, DataAppto, OraAppto, Cliente, Indirizzo, Città, Prov, Cap, Tel1, Agenti.Cognome AS Agente, Ordini.Note From Ordini Inner Join Agenti On Agenti.IDAgente = Ordini.IDAgente Where not DataAppto is null

 

Qualora si voglia inviare tante email con all’interno del corpo una query di dettaglio, è possibile utilizzare la sintassi [[SUBTABLERESULT]]. Ad esempio se si desidera inviare tutti gli appuntamenti agli agenti attivi con Tipo='Invio Email' è possibile impostare come segue:

 

        ComandoSQL: estra l’elenco degli agenti a cui inviare:

SELECT IDAgente, AgEmail as Email, AgEmailCC as EmailCC, ISNULL(Nome,'')+' '+ISNULL(Cognome,'') AS Agente From Agenti Where Disabilitato=0 AND AgTipoInvio='E' AND Tipo='Agente'

 

         Corpo dell’email

Buongiorno <b>[[Agente]]</b>, ecco i tuoi appuntamenti:<p>[[SUBTABLERESULT]]</p><p>Un saluto</p><p><b><font size="1">powered</font><font size="1"> by </font><a target="_blank" href="http://www.siseco.com"><font size="1"></font></a></b></p>

 

        Comando SQL Sub Query: estrae gli appuntamenti del singolo Agente

SELECT AnnoOrdine as Anno, NumeroOrdine as [Num.App.to], DataAppto as [Data], OraAppto as [Ora], Cliente, Indirizzo, Città, Prov, Cap, Tel1, Note From Ordini Where IDAgente = [[IDAgente]] AND not DataAppto is null ORDER BY DataAppto, OraAppto

 

 

Dalla terza sezione è anche possibile inviare un SMS (necessita attivazione di apposito modulo come sopra indicato).

- Invia unico SMS con i dati sotto indicati

- Invia un SMS per ogni record con merge dei campi

 

ALCUNI APPROFONDIMENTI

E’ importante definire il momento in cui avverrà il Primo Avvio della schedulazione.

Una volta determinato il primo avvio, occorre determinare la frequenza di esecuzione del comando, impostando il campo “Minuti tra due esecuzioni”, come indicato nei parametri precedenti.

Esempio: se si volesse eseguire una volta al giorno alle ore 12 dal 1° marzo 2011 si dovrebbe mettere…

 

La data/ora di prossima esecuzione verrà calcolata sempre imponendo un multiplo intero del valore di “Minuti tra due esecuzioni” e sommandolo alla data/ora del “Primo Avvio”.

 

Quando il Job viene realmente eseguito il sistema memorizza la data/ora di ultima esecuzione.

Questo momento potrebbe differire di alcuni secondi/minuti in eccesso rispetto alla data/ora di prossima esecuzione che si era calcolata in quanto il motore di schedulazione viene eseguito realmente a cicli periodici.

La periodicità è modificabile nelle “Opzioni del License Manager”, nel campo “Interval (s)”, il cui default è 600 secondi. Pertanto se si desidera eseguire un Job con una frequenza superiore ad una volta ogni 10 minuti (es. ogni 5 minuti) occorre ridurre il tempo di “Interval (s)” nelle “Opzioni del License Manager”, affinché quest’ultimo sia inferiore (es. 100 secondi).

 

Attenzione: la modifica di questa opzione richiede il riavvio del Servizio di Windows relativo al License Manager.