# Guida all'Interfaccia di Schedulazione - Data-Coupler ## 📋 Overview L'interfaccia di schedulazione di Data-Coupler permette di configurare esecuzioni automatiche dei profili di trasferimento dati con diverse modalità, inclusa la nuova funzionalità di **intervalli personalizzati**. --- ## 🎯 Accesso alla Pagina di Schedulazione 1. Avvia l'applicazione Data-Coupler 2. Nella barra di navigazione, clicca su **"Schedulazione Profili"** (icona orologio) 3. Vedrai la lista delle schedulazioni esistenti o un messaggio per crearne una nuova --- ## ➕ Creare una Nuova Schedulazione ### Passo 1: Aprire il Modal di Creazione Clicca sul pulsante verde **"+ Nuova Schedulazione"** in alto a destra. ### Passo 2: Configurare i Campi Base #### **Nome Schedulazione** (obbligatorio) - Inserisci un nome descrittivo - Esempio: `"Sync Clienti Salesforce"`, `"Import Ordini Ogni 5 Minuti"` #### **Descrizione** (opzionale) - Aggiungi note o dettagli aggiuntivi - Esempio: `"Sincronizzazione automatica clienti da Salesforce a database locale"` #### **Profilo** (obbligatorio) - Seleziona dal dropdown il profilo di trasferimento da eseguire - Verranno mostrati solo i profili attivi ### Passo 3: Scegliere il Tipo di Schedulazione Seleziona una delle seguenti opzioni: --- ## ⏱️ Tipi di Schedulazione Disponibili ### 1. **Una Volta** (`once`) Esecuzione singola in una data e ora specifica. **Configurazione:** - **Data e Ora di Esecuzione**: Seleziona data e ora usando il picker - Formato: `GG/MM/AAAA HH:mm` **Esempio:** ``` Tipo: Una volta Data e Ora: 15/10/2025 14:30 ``` --- ### 2. **⭐ Intervallo Personalizzato** (`interval`) - NUOVO! Esecuzione ripetuta ogni N unità di tempo. **Configurazione:** - **Intervallo**: Inserisci un numero (minimo 1) - **Unità di Tempo**: Seleziona dal dropdown - **Secondi** - Per test rapidi o requisiti real-time - **Minuti** - Per sincronizzazioni frequenti - **Ore** - Per aggiornamenti regolari - **Giorni** - Per backup giornalieri - **Settimane** - Per report settimanali - **Mesi** - Per consolidamenti mensili **Anteprima in Tempo Reale:** Una volta configurati intervallo e unità, vedrai un'anteprima che mostra: ``` Esecuzione ogni 5 minuti ``` **Esempi Pratici:** **Test/Sviluppo:** ``` Intervallo: 30 Unità: Secondi Anteprima: Esecuzione ogni 30 secondi ``` **Sincronizzazione Frequente:** ``` Intervallo: 5 Unità: Minuti Anteprima: Esecuzione ogni 5 minuti ``` **Aggiornamento Orario:** ``` Intervallo: 2 Unità: Ore Anteprima: Esecuzione ogni 2 ore ``` **Backup Giornaliero:** ``` Intervallo: 1 Unità: Giorni Anteprima: Esecuzione ogni 1 giorno ``` **Report Settimanale:** ``` Intervallo: 1 Unità: Settimane Anteprima: Esecuzione ogni 1 settimana ``` **Consolidamento Mensile:** ``` Intervallo: 1 Unità: Mesi Anteprima: Esecuzione ogni 1 mese ``` --- ### 3. **Giornaliera** (`daily`) Esecuzione ogni giorno alla stessa ora. **Configurazione:** - **Ora di Esecuzione**: Formato 24 ore (es: `14:30`) **Esempio:** ``` Tipo: Giornaliera Ora: 09:00 Risultato: Esegue ogni giorno alle 09:00 ``` --- ### 4. **Settimanale** (`weekly`) Esecuzione in un giorno specifico della settimana. **Configurazione:** - **Ora di Esecuzione**: Formato 24 ore - **Giorno della Settimana**: Seleziona dal dropdown **Esempio:** ``` Tipo: Settimanale Ora: 10:00 Giorno: Lunedì Risultato: Esegue ogni Lunedì alle 10:00 ``` --- ### 5. **Mensile** (`monthly`) Esecuzione in un giorno specifico del mese. **Configurazione:** - **Ora di Esecuzione**: Formato 24 ore - **Giorno del Mese**: Numero da 1 a 31 **Esempio:** ``` Tipo: Mensile Ora: 08:00 Giorno: 1 Risultato: Esegue il primo giorno di ogni mese alle 08:00 ``` --- ## 🎛️ Opzioni Avanzate ### Schedulazione Attiva - **Checkbox "Schedulazione attiva"** - Se spuntato: la schedulazione sarà abilitata e verrà eseguita - Se non spuntato: la schedulazione sarà salvata ma non eseguita ### Override Database (Opzionale) Se il profilo selezionato lo supporta, puoi sovrascrivere: - **Database Sorgente**: Per eseguire su un database diverso - **Database Destinazione**: Per scrivere su un database diverso --- ## 💾 Salvare la Schedulazione 1. Verifica che tutti i campi obbligatori siano compilati 2. Clicca sul pulsante **"💾 Salva"** 3. Vedrai un messaggio di conferma 4. La schedulazione apparirà nella lista principale --- ## 📊 Visualizzazione delle Schedulazioni ### Card Schedulazione Ogni schedulazione è mostrata in una card con: **Header:** - Icona del tipo (🔁 per intervalli, 📅 per altre) - Nome schedulazione - Menu dropdown ⋮ per azioni **Corpo:** - **Profilo**: Nome del profilo associato - **Descrizione**: Se presente - **Tipo**: Descrizione leggibile del tipo di schedulazione - Esempio per intervalli: `"INTERVALLO: Ogni 5 minuti"` - **Prossima Esecuzione**: Data e ora della prossima esecuzione prevista - **Ultima Esecuzione**: Data e ora dell'ultima esecuzione (se presente) - **Status**: Badge colorato con risultato ultima esecuzione - 🟢 Verde: Success - 🔴 Rosso: Failed - 🔵 Blu: Running **Bordo Card:** - 🟢 Verde: Schedulazione attiva - ⚫ Grigio: Schedulazione disabilitata --- ## ⚙️ Azioni su Schedulazioni Esistenti ### Menu Dropdown (⋮) **✏️ Modifica** - Apre il modal di modifica - Tutti i campi sono precompilati con i valori attuali - Salva per applicare le modifiche **▶️ Esegui Ora** - Esegue immediatamente la schedulazione - Non modifica la prossima esecuzione programmata - Utile per test o esecuzioni fuori programma **🗑️ Elimina** - Richiede conferma - Elimina permanentemente la schedulazione - Non elimina il profilo associato --- ## 🔍 Monitoraggio Esecuzioni ### Pulsante "📜 Storico Esecuzioni" In alto a destra, clicca per vedere: - Tutte le esecuzioni passate - Status (success/failed) - Numero di record trasferiti - Durata esecuzione - Messaggi di errore (se presenti) --- ## 💡 Best Practices per Intervalli ### Ambienti Diversi **Sviluppo/Test:** - Usa intervalli brevi (30-60 secondi) per test rapidi - Ricorda di disabilitare o eliminare dopo i test **Staging:** - Intervalli moderati (1-5 minuti) - Simula il carico di produzione **Produzione:** - Intervalli consigliati: minimo 5-10 minuti - Valuta il carico sul sistema e sulle API - Monitora le performance ### Considerazioni Performance **Intervalli Brevi (<1 minuto):** - ⚠️ Usa solo se necessario - Aumenta il carico su database e API - Monitora CPU e memoria - Considera limitazioni API rate limits **Intervalli Ottimali (5-15 minuti):** - ✅ Bilanciamento tra freschezza dati e performance - ✅ Riduce carico sistema - ✅ Permette completamento esecuzioni precedenti **Intervalli Lunghi (>1 ora):** - ✅ Ideale per grandi dataset - ✅ Minimo impatto sistema - ✅ Adatto per backup e consolidamenti --- ## 🎯 Esempi di Configurazione ### Caso d'Uso 1: Sincronizzazione Real-Time Salesforce ``` Nome: Sync Leads Salesforce Real-Time Profilo: Salesforce to SQL - Leads Tipo: Intervallo Personalizzato Intervallo: 2 Unità: Minuti Schedulazione Attiva: ✅ ``` **Risultato**: Sincronizza leads ogni 2 minuti durante l'orario lavorativo. --- ### Caso d'Uso 2: Backup Database Notturno ``` Nome: Backup Database Notte Profilo: Full Database Backup Tipo: Giornaliera Ora: 02:00 Schedulazione Attiva: ✅ ``` **Risultato**: Backup completo ogni notte alle 02:00. --- ### Caso d'Uso 3: Report Settimanale ``` Nome: Report Vendite Settimanale Profilo: Sales Report Tipo: Settimanale Ora: 09:00 Giorno: Lunedì Schedulazione Attiva: ✅ ``` **Risultato**: Genera report vendite ogni Lunedì mattina. --- ### Caso d'Uso 4: Test Incrementale ``` Nome: Test Sync Every 30s Profilo: Test Profile Tipo: Intervallo Personalizzato Intervallo: 30 Unità: Secondi Schedulazione Attiva: ✅ ``` **Risultato**: Test con sincronizzazione ogni 30 secondi (ricorda di disabilitare dopo test!). --- ### Caso d'Uso 5: Consolidamento Mensile ``` Nome: Consolidamento Fine Mese Profilo: Monthly Consolidation Tipo: Mensile Ora: 23:00 Giorno: 28 Schedulazione Attiva: ✅ ``` **Risultato**: Consolidamento dati il 28 di ogni mese alle 23:00. --- ## 🛠️ Troubleshooting ### Schedulazione Non Si Esegue **Verifica:** 1. ✅ Schedulazione è attiva (checkbox spuntato) 2. ✅ Profilo associato esiste ed è attivo 3. ✅ NextExecutionTime è impostato (visibile nella card) 4. ✅ Background service è in esecuzione (verifica log applicazione) ### Intervalli Troppo Frequenti **Sintomi:** - Alta CPU/Memoria - Log pieni di esecuzioni - Timeout o errori API **Soluzione:** 1. Modifica schedulazione 2. Aumenta intervallo (es: da 30s a 5min) 3. Monitora per 30-60 minuti ### Esecuzioni Saltate **Causa Possibile:** - Esecuzione precedente ancora in corso - Sistema sotto carico **Soluzione:** - Il sistema salta automaticamente se già in esecuzione - Aumenta intervallo se succede spesso - Verifica durata media esecuzioni nello storico --- ## 📞 Supporto Per problemi o domande: 1. Controlla i log applicazione 2. Consulta la documentazione tecnica (`ADVANCED_SCHEDULING_SYSTEM.md`) 3. Verifica lo storico esecuzioni per errori specifici --- ## 🔄 Aggiornamenti Futuri Funzionalità pianificate: - Dashboard monitoraggio real-time - Notifiche email su errori - Pause/Resume schedulazioni - Dependency chains tra schedulazioni - Export/import configurazioni --- **Versione**: 2.0 **Data**: Ottobre 2025 **Compatibile con**: Data-Coupler .NET 9.0 **Autore**: Alessio Dalsanto --- ## 🎉 Conclusione La nuova interfaccia di schedulazione con intervalli personalizzati offre massima flessibilità per qualsiasi scenario di sincronizzazione dati. Utilizza gli esempi e le best practices per configurare schedulazioni ottimali per il tuo ambiente! 🚀