Esempio di Monitor flusso di lavoro
Il Monitor flusso di lavoro è un strumento per la visualizzazione delle informazioni dello stato del flusso di lavoro delle attività relative ai flussi di lavoro completati e a quelli attualmente in esecuzione. Il monitor legge le informazioni di rilevamento dal database di rilevamento e visualizza lo stato corrente del flusso di lavoro e delle attività, nonché l'esecuzione corrente del flusso di lavoro tramite l'utilizzo del controllo dell'utilità di progettazione del flusso di lavoro.
Affinché il Monitor flusso di lavoro funzioni correttamente, qualsiasi tipo di flusso di lavoro che dispone di informazioni di rilevamento nel database deve trovarsi nella cache di assembly globale (GAC, Global Assembly Cache) o nella stessa directory del file eseguibile del Monitor flusso di lavoro. Se uno dei tipi risulta mancante, si riceverà un errore durante il caricamento della definizione del flusso di lavoro. Inoltre, sarà necessario creare un nuovo database di rilevamento ed eseguire i flussi di lavoro affinché il Monitor flusso di lavoro sia in grado di rilevare i tipi di flusso di lavoro.
Vedere le sezioni riportate di seguito per le informazioni sull'aggiunta del servizio di rilevamento SQL al runtime del flusso di lavoro per fare in modo che gli eventi di rilevamento vengano registrati nel database di rilevamento SQL.
Configurazione di un host per il controllo
Per fare in modo che il monitor visualizzi i flussi di lavoro e le attività, è necessario che ad esso vengano resi disponibili l'utilità di progettazione e il codice di serializzazione. Tutti i tipi di flusso di lavoro e di attività devono essere registrati nella cache di assembly globale (GAC, Global Assembly Cache) utilizzando gacutil.exe o devono essere inseriti nella stessa directory di WorkflowMonitor.exe. Inoltre, è necessario fornire a SqlTrackingQuery l'accesso ai tipi, per poter leggere i flussi di lavoro, le informazioni sull'attività e la definizione del flusso di lavoro dalle tabelle SqlTrackingService.
Nella procedura descritta di seguito viene illustrato come configurare il database di rilevamento utilizzato dall'applicazione Monitor flusso di lavoro.
Per creare il database di rilevamento SQL
Se si utilizza Microsoft SQL Server 2005 Express, SQL Server 2000 o versioni più recenti oppure SQL Server 2000 Desktop Engine (MSDE), creare un nuovo database denominato Tracking utilizzando l'istruzione della query SQL:
CREATE DATABASE Tracking
NotaSe si utilizzano T:System.Workflow.Runtime.Tracking.SqlTrackingService e T:System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService in un'applicazione del flusso di lavoro, è consigliabile utilizzare un unico database per la persistenza e il rilevamento.
Nell'area di lavoro SQL Query Analyzer, selezionare il database creato al passaggio 1 nell'elenco di database disponibili.
Nel menu File, fare clic su Apri e aprire lo script SQL %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<lingua>\Tracking_Schema.sql.
Eseguire la query facendo clic su Esegui o premendo F5 per creare le tabelle del servizio di rilevamento SQL.
Nel menu File, fare clic su Apri e aprire lo script SQL %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<lingua>\Tracking_Logic.sql.
Eseguire la query facendo clic su Esegui o premendo F5 per creare le stored procedure del servizio di rilevamento SQL.
Configurazione dell'applicazione host
Per configurare un'applicazione host e utilizzare SqlTrackingService, aggiungere il servizio SqlTrackingService all'insieme di servizi WorkflowRuntime o a livello di codice o tramite un file di configurazione. Impostare la proprietà ConnectionString per il nome del server e il database. Impostare la proprietà IsTransactional del servizio SqlTrackingService su false, in modo che i dati disponibili al monitor siano quelli correnti (se la proprietà IsTransactional è impostata su true, le informazioni vengono eseguite in batch prima di essere scritte nel database).
Per aggiungere il servizio SqlTrackingService a livello di codice, utilizzare l'esempio di codice riportato di seguito:
C#:
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
SqlTrackingService sqlTrackingService = new SqlTrackingService("Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;");
sqlTrackingService.IsTransactional = false;
workflowRuntime.AddService(sqlTrackingService);
workflowRuntime.StartRuntime();
Visual Basic:
Dim workflowRuntime As New WorkflowRuntime()
Dim sqlTrackingService As New SqlTrackingService("Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;")
sqlTrackingService.IsTransactional = false
workflowRuntime.AddService(sqlTrackingService)
workflowRuntime.StartRuntime()
Per aggiungere il servizio SqlTrackingService tramite file di configurazione, il codice dell'applicazione host deve specificare il nome della sezione di configurazione nel costruttore WorkflowRuntime e il file di configurazione (ad esempio, app.config) deve contenere le informazioni di configurazione WorkflowRuntime. Ad esempio:
Applicazione host
C#:
WorkflowRuntime workflowRuntime = new WorkflowRuntime("WorkflowRuntimeConfigurationSection");
workflowRuntime.StartRuntime();
Visual Basic:
Dim workflowRuntime As New WorkflowRuntime("WorkflowRuntimeConfigurationSection")
workflowRuntime.StartRuntime()
File di configurazione
<configuration>
<configSections>
<section name="WorkflowRuntimeConfigurationSection" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<WorkflowRuntimeConfigurationSection Name="WorkflowRuntimeConfigurationSectionName" UnloadOnIdle="false">
<Services>
<add type="System.Workflow.Runtime.Tracking.SqlTrackingService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" ConnectionString="Initial Catalog=TrackingStore;Data Source=localhost;Integrated Security=SSPI;" IsTransactional="false" UseDefaultProfile="true" />
</Services>
</WorkflowRuntimeConfigurationSection>
</configuration>
Interfaccia utente del monitor
L'interfaccia del monitor contiene tre riquadri principali:
Riquadro Workflows
Riquadro Activities
Riquadro Workflow View
Il monitor legge tutti i flussi di lavoro registrati. Per specificare il nome del computer e il database, utilizzare la finestra di dialogo Settings. Per aprire questa finestra di dialogo, fare clic su Settings nel menu Monitor o fare clic sul pulsante della barra degli strumenti Settings.
Barra degli strumenti delle opzioni di ricerca dei flussi di lavoro
Questa barra degli strumenti visualizza le opzioni di ricerca dello strumento. È possibile eseguire la ricerca utilizzando una combinazione di stato del flusso di lavoro e di intervallo di tempo in cui si è verificato lo stato e tramite i valori dell'elemento dei dati di rilevamento. È anche possibile eseguire la ricerca per ID del flusso di lavoro. Ad esempio, è possibile eseguire la ricerca di flussi di lavoro terminati ieri in cui l'elemento dei dati di rilevamento PurchaseAmount ha un valore di 500 nell'attività CheckCredit.
Nota
Per impostazione predefinita, il profilo di rilevamento predefinito SqlTrackingService estrae tutti i flussi di lavoro, le attività e gli eventi di track point dell'utente. Non estrae dati di rilevamento del flusso di lavoro. Pertanto, non è possibile eseguire la ricerca per Tracking Data Item finché non viene aggiornato il profilo di rilevamento predefinito o il profilo di rilevamento associato al tipo specifico in esecuzione. È possibile utilizzare uno script SQL disponibile con questo esempio, UpdateV1DefaultTrackingProfile.sql, per aggiornare il profilo di rilevamento predefinito ed estrarre la proprietà Name dalle attività.
Tale operazione può essere eseguita con il seguente elemento nel profilo di rilevamento:
<Extracts>
<WorkflowDataTrackingExtract>
<Member>Name</Member>
</WorkflowDataTrackingExtract>
</Extracts>
Riquadro Workflows
Questo riquadro visualizza tutti i flussi di lavoro nel database di rilevamento insieme allo stato di ciascun flusso di lavoro. Quando viene selezionato un flusso di lavoro, sul database di rilevamento viene eseguita una query sullo stato corrente di tutte le attività completate e in esecuzione per tale flusso di lavoro e le attività vengono visualizzate nel riquadro Activity.
Riquadro Activities
Questo riquadro visualizza tutte le attività e lo stato delle attività per il flusso di lavoro selezionato nel riquadro Workflows.
Riquadro Workflow View
Questo riquadro ospita il controllo dell'utilità di progettazione del flusso di lavoro fornito come parte di Windows Workflow Foundation. Il riquadro consente all'utente di espandere e comprimere le attività composte e di modificare la visualizzazione del flusso di lavoro (alternando la visualizzazione principale, le eccezioni, gli eventi e la compensazione). Se viene selezionato un flusso di lavoro nel riquadro Workflow, il riquadro Workflow visualizza un segno di spunta su tutte le attività completate e un'icona "Play" su tutte le attività attualmente in esecuzione.
Menu
Le opzioni di menu del Monitor flusso di lavoro sono le seguenti:
Menu File
Exit - Esce dal programma.
Menu View
Workflow Details - Se attivato, mostra i riquadri Workflow e Activity.
Menu Monitor
Start/Stop - Avvia o interrompe il monitoraggio.
Settings - Visualizza la finestra di dialogo Settings.
Pulsanti delle barre degli strumenti
I pulsanti della barra degli strumenti del Monitor flusso di lavoro sono i seguenti:
Settings - Mostra la finestra di dialogo Settings (per ulteriori informazioni, vedere la sezione "Settings").
Monitor On - Avvia il monitoraggio del database di rilevamento (vedere "Utilizzo del monitor").
Monitor Off - Interrompe il monitoraggio del database di rilevamento (vedere "Utilizzo del monitor").
Expand All - Espande tutte le attività composte nella visualizzazione del flusso di lavoro.
Collapse All - Comprime tutte le attività composte nella visualizzazione del flusso di lavoro.
Workflow Zoom Level - Imposta il livello di zoom della visualizzazione del flusso di lavoro.
Settings
La finestra di dialogo Settings consente di configurare il monitor. È possibile specificare i seguenti campi:
SQL Server - Il computer locale o remoto su cui è in esecuzione SQL Server.
Tracking Database - Il database utilizzato per archiviare le informazioni di rilevamento.
Polling Interval - Il numero di millisecondi di attesa prima del nuovo polling del database.
Auto-Select Latest When Polling - Se selezionato, il riquadro caso di selezione, il riquadro Workflows seleziona automaticamente l'ultimo flusso di lavoro in esecuzione.
Nota
Il nome del server e il nome del database vengono visualizzati anche nella barra di stato.
Utilizzo del monitor
Il Monitor flusso di lavoro esegue il polling del database di rilevamento e mostra automaticamente lo stato del flusso di lavoro e delle attività nei riquadri Workflows e Activities, nonché lo stato di avanzamento del flusso di lavoro nel riquadro Workflow View. Per avviare il monitoraggio, utilizzare il pulsante della barra degli strumenti Monitor On o fare clic su Start nel menu Monitor. Utilizzare la finestra di dialogo Settings per configurare l'intervallo di polling. Durante il monitoraggio di un database di rilevamento, può risultare utile visualizzare l'ultimo flusso di lavoro attualmente in esecuzione. A tal scopo, scopo, selezionare la casella di controllo Auto-Select Latest When Polling nella finestra di dialogo Settings.
Nota
Se il monitoraggio è attivo, viene visualizzato il testo "Monitoring" nella barra di stato.
Il Monitor flusso di lavoro utilizza le API SqlTrackingQuery per l'esecuzione delle query sulla funzionalità. L'elenco di flussi di lavoro e attività è recuperato tramite le API SqlTrackingQuery. Le funzionalità di ricerca utilizzano le API SqlTrackingQuery.
Definizioni multiple dello stesso tipo di flusso di lavoro
SqlTrackingService salva in modo permanente la definizione del flusso di lavoro al primo utilizzo del nuovo tipo di flusso di lavoro. Tuttavia, se la definizione viene modificata e la versione del tipo rimane lo stessa, un nuovo record non viene salvato in modo permanente nel database di rilevamento. Pertanto, il monitor mostra sempre la prima definizione di un tipo di flusso di lavoro.
Impostazioni utente
Il Monitor flusso di lavoro salva le impostazioni (SQL Server, database, intervallo di polling) nel file workflowmonitor.config nella seguente directory: \Documents and Settings\<utente>\Local Settings\Application Data\Microsoft Corporation\Windows Workflow Foundation SDK Application Samples\3.0.0.0.
Vedere anche
Riferimenti
Altre risorse
Using the SQLTrackingService
Task 4: Use the Windows Workflow Tracking Service
Esempio di rilevamento semplice
Esempi di applicazioni
Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.