Share via


Esempio di Monitor flusso di lavoro

Download sample

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

  1. 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.

  2. Nell'area di lavoro SQL Query Analyzer, selezionare il database creato al passaggio 1 nell'elenco di database disponibili.

  3. 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.

  4. Eseguire la query facendo clic su Esegui o premendo F5 per creare le tabelle del servizio di rilevamento SQL.

  5. 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.

  6. 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.

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

SqlTrackingService

Altre risorse

Using the SQLTrackingService
Task 4: Use the Windows Workflow Tracking Service
Esempio di rilevamento semplice
Esempi di applicazioni

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.