K IN G Manuale Tecnico Documentazione ad uso esclusivo dell’installatore della procedura SQLSCHEDULER PER MS SQL SERVER EXPRESS KING GESTIONALE - KING STUDIO - TURBODOC Aggiornato al 04/07/2011 DATALOG – Soluzioni Integrate - 2 - Manuale Tecnico Sommario 1 Microsoft SQL Express ......................................................................................................... 3 1.1 1.1.1 1.1.2 1.2 1.3 1.3.1 SQLScheduler ........................................................................................................ 4 Installazione SQLScheduler ................................................................................... 4 Configurazione applicazione ................................................................................... 6 Abilitazione dell’opzione Agent XP ....................................................................... 11 KING e Microsoft SQL Express ............................................................................ 12 Interazione con Trigger e Stored Procedure (King TurboNew)............................. 12 DATALOG – Software a Dimensione Uomo MICROSOFT SQL SERVER Express: SQLScheduler - 3 - 1 Microsoft SQL Express Microsoft SQL Server Express è la versione gratuita del database che sostituisce MSDE (Microsoft SQL Server 2000 Desktop Engine, il quale era basato su Microsoft SQL Server 2000). Trattandosi di una versione ridotta, presenta alcune limitazioni, tra cui segnaliamo principalmente la mancanza del servizio SQL AGENT (utilizzato da King per avviare le stored procedure legate al moduli Vendite New, Magazzino e Produzione) e quindi la mancanza degli strumento di gestione Piani di Manutenzione (quindi impossibilità di prevedere un automatismo di backup e manutenzione database integrato) La principale limitazione risulta quindi essere la mancanza all’interno dello strumento MS SQL Server Management Studio Express delle funzionalità di Job Scheduler necessarie a realizzare automatismi di manutenzione e backup sui database utilizzati dalle procedure Datalog King e Datalog TurboDoc. Ai fini del'utilizzo del sistema king, la principale limitazione consiste tuttavia nella mancanza delle funzionalità di SQL Agent, necessarie ad eseguire trigger e stored procedure. Per superare tale limitazione, sono disponibili diverse utilities: tra queste, segnaliamo il software chiamato SQLScheduler. Per queste ed altre ragioni, attualmente in un ambito professionale, data l'elevata scalabilità degli strumenti di gestione e l'alto livello di sicurezza presenti, consigliamo l'utilizzo del DBMS Microsoft SQL Server Enterprise (su hardware dedicato e consono alla realtà aziendale), in quanto rappresenta una piattaforma dati completa che fornisce scalabilità, prestazioni, disponibilità elevata e funzionalità di Business Intelligence avanzate a livello aziendale per eseguire applicazioni cruciali per l'organizzazione in modo protetto. Nel seguito tuttavia forniamo un’alternativa per colmare in parte le limitazioni del Sistema Microsoft SQL Server Express Edition. DATALOG – Software a Dimensione Uomo - 4 - Manuale Tecnico 1.1 SQLScheduler SqlScheduler è un software gratuito che consente di pianificare, tramite interfaccia grafica l’esecuzione di specifiche attività (backup, rigenerazione indici, controlli di integrità etc.) denominati Jobs. Permette inoltre, tramite e-mail, di avvisare il supporto tecnico circa il successo/fallimento durante l’esecuzione del Job stesso. SqlScheduler funziona su macchine Windows e può interfacciarsi con tutte le versioni di SQL Server 2000, SQL Server 2005 e SQL Server 2008; supporta un numero illimitato di istanze e Jobs. Per il suo funzionamento necessita della presenza dei componenti Net Framework 2.0. 1.1.1 Installazione SQLScheduler Datalog – per agevolare il lavoro dei propri concessionari – fornisce il Kit necessario all’installazione del software SQLScheduler. Il kit di installazione contiene i seguenti files: SQLScheduler.exe – file eseguibile principale SQLSCheduler.WindowsService.exe – Servizio Windows responsabile dell’esecuzione e della pianificazione dei Jobs SQLScheduler.Scheduler.dll – Librerie addizionali SQLScheduler.exe.config – file di configurazione dell’ eseguibile principale SQLScheduler.WindowsSerivice.exe.config – file di configurazione del Servizio Windows Jobs.config – file di configurazione nel quale vengono memorizzati i dettagli di ogni Job Installservice.bat – file batch utilizzato per installare il servizio SQLScheduler Uninstallservice.bat – file batch utilizzato per disinstallare il servizio SQLScheduler QuerySchedulatore – Set di istruzioni SQL di esempio da utilizzare nei vari Job Per procedere alla sua installazione è necessario: estrarre il contenuto dell’archivio in una directory eseguire il file InstallService.bat (n.b: per la sua corretta esecuzione/installazione è necessario che l’utente in questione possieda privilegi amministrativi sulla macchina) tramite editor (es. Notepad) aprire il file SQLScheduler.WindowsService.exe.config nel quale è necessario configurare: Host name: indicando il nome (oppure l’indirizzo IP) del server SMTP utilizzato nella connessione (questo Server verrà utilizzato per l’invio delle e-mail di notifica) User Name: indicando il nome dell’utente di accesso al Server stesso Password: indicando la relativa password dell’utente DATALOG – Software a Dimensione Uomo MICROSOFT SQL SERVER Express: SQLScheduler - 5 - Al termine dell’operazione è necessario salvare il file quindi riavviare il servizio SqlScheduler per rendere effettive le modifiche. Riportiamo di seguito un esempio di configurazione: <smtp deliveryMethod="Network" from="[email protected]"> <network host="dominio.com" userName="nome" password="password" /> </smtp> avviare il file SQLScheduler.exe DATALOG – Software a Dimensione Uomo - 6 - Manuale Tecnico 1.1.2 Configurazione applicazione Una volta eseguito SqlScheduler cliccando con il tasto destro del mouse sul nodo Servers, selezionare la voce New Server. Inserire nel campo Server Name il nome (oppure l’indirizzo IP) dell’istanza SQL Server verso la quale si desidera stabilire il collegamento. Una volta indicato il Server Name premere il pulsante Save per effettuare il salvataggio. Per inserire un nuovo Job cliccare con il tasto destro del mouse sull’istanza appena collegata sul nodo Server e selezionare la voce New Job Apparirà una maschera composta da diverse schede di configurazione: ricordiamo che è necessario effettuare il salvataggio di ogni scheda attraverso il pulsante Save prima di procedere con la compilazione della successiva. La scheda General richiede l’inserimento di un nome identificativo e di una descrizione relativa al Job che si sta creando. DATALOG – Software a Dimensione Uomo MICROSOFT SQL SERVER Express: SQLScheduler - 7 - E’ possibile scegliere tra due differenti metodi di autenticazione: Windows Autentication attraverso il quale il job verrà eseguito tramite l’account utente indicato nel servizio di Windows SQL Server Autentication attraverso il quale saranno utilizzate le credenziali dell’utente SQL Server. La scheda Details consente, attraverso l’utilizzo del linguaggio Transact-SQL, di inserire i comandi e le istruzioni (backup, rigenerazione indici, controlli di integrità, etc.) che si desiderano eseguire nel Job, le quali potranno essere verificate sintatticamente tramite l’ausilio del pulsante Check Syntax. Inoltre nel campo Script Timeout è possibile definire un tempo massimo di esecuzione il quale è impostato come default a 15 secondi (0 = illimitato). DATALOG – Software a Dimensione Uomo - 8 - Manuale Tecnico La scheda Schedule consente di indicare gli intervalli di pianificazione desiderati, impostando ad esempio la periodicità e la durata di esecuzione del Job. DATALOG – Software a Dimensione Uomo MICROSOFT SQL SERVER Express: SQLScheduler - 9 - Infine la scheda Notifications consente di indicare l’indirizzo e-mail da utilizzare per la ricezione delle notifiche sullo stato delle operazioni eseguite. E’ inoltre possibile includere nel messaggio il dettaglio delle operazioni effettuate attraverso l’attivazione del flag Attach Resultsets to Notification Emails DATALOG – Software a Dimensione Uomo - 10 - Manuale Tecnico Il risultato che otterremo è il seguente: Una volta terminate le impostazioni, il nostro Job risulterà correttamente configurato; potrà essere in qualsiasi momento eseguito (a prescindere dalla pianificazione, cliccando con il tasto destro ed utilizzando la voce Execute) oppure modificato (selezionando l’opzione Edit Job) DATALOG – Software a Dimensione Uomo MICROSOFT SQL SERVER Express: SQLScheduler - 11 - A titolo di esempio riportiamo nel dettaglio sottostante una query SQL da pianificare ad intervalli regolari tramite Job per effettuare una copia di Backup degli archivi (System e User) collegati al motore di database : DECLARE @SQL varchar(max) SET @SQL = '' SELECT @SQL = @SQL + 'BACKUP DATABASE [' + Name +'] TO DISK = N''C:\BACKUP\BACKUP_'+ name + '.bak'' WITH NOFORMAT, INIT, NAME = N'''+ name +'-Completo Database Backup'', SKIP, NOREWIND, NOUNLOAD, STATS = 10' FROM sys.sysdatabases EXEC(@SQL) 1.2 Abilitazione dell’opzione Agent XP L'opzione Agent XPs consente di attivare Trigger e Stored Procedure necessarie al funzionamento delle form TurboNew presenti in King. Per attivare tale opzione in ambiente MS SQL EXPRESS è necessario eseguire la seguente istruzione sull’istanza SQL interessata tramite l’ausilio dello strumento Query Analizer: sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Agent XPs', 1; GO RECONFIGURE GO Nella quale il valore: 0 = indica che le Stored Procedure estese non sono disponibili (corrisponde al valore predefinito) 1 = indica che le Stored Procedure estese sono disponibili. DATALOG – Software a Dimensione Uomo - 12 - Manuale Tecnico 1.3 KING e Microsoft SQL Express King si interfaccia a database SQL gestiti anche su motori Microsoft SQL Server Express Edition: tuttavia in questa ipotesi, alcune funzionalità potrebbero non essere direttamente disponibili, per la mancanza del servizio SQL Agent. Tale mancanza può essere (come abbiamo visto sopra) sopperita in parte dall’installazione di procedure aggiuntive come SQLScheduler. 1.3.1 Interazione con Trigger e Stored Procedure (King TurboNew) Per utilizzare le funzionalità del modulo TurboNew di KING, in presenza di database gestito con “Ms-SQL Server Express” , è quindi necessario aver installato e configurato correttamente una procedura come SQLScheduler: solo dopo aver fatto ciò, sarà possibile abilitare l’utilizzo del modulo all’interno di King (dalla funzione definita Modalità Avanzata sulle Vendite, legata al modulo TURBO_NEW) ricordando che l’aggiornamento dei Saldi di Magazzino verrà reso disponibile esclusivamente al termine del corrispondente Job. Per poterla attivare è necessario abilitare il flag denominato Attiva Documenti di Vendita in Modalità Avanzata, parametro richiamabile nel menu Archivi Parametri della Procedura cartella Vendite - Principali: Alla conferma dei Parametri, se attivato, vengono automaticamente installati Trigger e Stored Procedure, per fare questo viene utilizzata l’utility KngSQLInstall.exe la quale deve essere presente nella directory di installazione del programma. In alternativa è possibile ottenere lo stesso risultato sempre tramite l’ausilio dello strumento Query Analizer eseguendo la seguente istruzione sull’archivio della società interessata: DATALOG – Software a Dimensione Uomo MICROSOFT SQL SERVER Express: SQLScheduler - 13 - update societa set setrgsaldimag=1, NuoviForm=1 GO UPDATE AggSql SET SeUsata = 1, DataAgg = '2003/01/01' WHERE NomeProc IN ('tr_kng_MovMagDettInsert','tr_kng_MovMagDettDelete','tr_kng_MovMagDettUpdate',' tr_kng_MovMagTestUpdate' ,'tr_kng_MovMagTestDelete','tr_kng_OrdCliDettInsert','tr_kng_OrdCliDettDelete',' tr_kng_OrdCliDettUpdate' ,'tr_kng_OrdCliTestDelete','tr_kng_OrdCliTestUpdate','tr_kng_OrdForCompInsert',' tr_kng_OrdForCompUpdate' ,'tr_kng_OrdForCompDelete','tr_kng_OrdForDettInsert','tr_kng_OrdForDettDelete',' tr_kng_OrdForDettUpdate' ,'tr_kng_OrdForTestDelete','tr_kng_OrdForTestUpdate','tr_kng_OrdForTestInsert',' tr_kng_OrdProCompInsert' ,'tr_kng_OrdProCompUpdate','tr_kng_OrdProCompDelete','tr_kng_OrdProDettInsert',' tr_kng_OrdProDettDelete' ,'tr_kng_OrdProDettUpdate','tr_kng_OrdProTestDelete','tr_kng_OrdProTestInsert',' tr_kng_OrdProTestUpdate' ,'tr_kng_TrgOPFlagUpdate','sp_kng_UpdateCliSaldiMag','sp_kng_UpdateForSaldiMag', 'sp_kng_UpdateMovSaldiMag' ,'sp_kng_UpdateProSaldiMag','sp_kng_EndTblSaldiMag','sp_kng_ExecJobSaldiMag','sp _kng_AggiornaRigheNull') GO Use [msdb] EXEC sp_addrolemember 'db_datareader','guest' GO USE [master] GRANT EXEC ON xp_sqlagent_enum_jobs TO guest GO Entrambe le impostazioni diventano effettive immediatamente e non richiedono l'interruzione e il riavvio del Server SQL. A titolo di esempio riportiamo nel dettaglio sottostante una query SQL da pianificare ad intervalli regolari tramite Job in grado di riallineare le Giacenze di Magazzino a seguito di operazioni svolte all’interno della procedura. use [nomedatabase] DECLARE @NUMESER AS INT, @FUNC CHAR (1) SET @NUMESER = 1 SET @FUNC = 'T' EXEC SP_KNG_RIPRISTINOSALDIMAG @NUMESER, @FUNC DATALOG – Software a Dimensione Uomo - 14 - Manuale Tecnico Proprietà letteraria riservata by DATALOG SRL E’ vietata la riproduzione totale e/o parziale del presente manuale. Datalog potrà apportare, senza effettuare nessuna comunicazione ed in qualsiasi momento, modifiche alle caratteristiche descritte, aggiunta o eliminazione di parti della procedura , per ragioni di natura tecnica o commerciale. Le componenti dei programmi descritti si riferiscono al prodotto completo di tutti i moduli integrabili presenti e futuri, non sempre quindi installati con la procedura di base. Le informazioni contenute nel presente possono essere modificate senza preventivo avviso o comunicazione. La comunicazione di tali informazioni e/o la loro utilizzazione da parte degli utenti non comporta l’assunzione, nemmeno in forma implicita, di alcuna obbligazione da parte della DATALOG S.r.l. verso tali utenti. In particolare la DATALOG S.r.l. non si assume nessuna responsabilità per qualsiasi errore che possa apparire in questo documento. Qualsiasi altro utilizzo sarà considerato come una violazione della licenza d’uso. Non viene assunta nessuna responsabilità per l’uso e l’affidabilità del software ovvero il suo utilizzo per uno specifico scopo. Tutti i marchi citati sono registrati dai legittimi proprietari. DATALOG – Software a Dimensione Uomo