Procedura: creare un'attività personalizzata per Gestione flusso di lavoro 1.0

 

Data di pubblicazione: luglio 2016

Le attività sono l'unità principale del comportamento di WF e rappresentano i blocchi predefiniti con cui gli sviluppatori creano i flussi di lavoro. In Progettazione flussi di lavoro 1.0 le attività e i flussi personalizzati sono composti da tipi nella Superficie attendibile di Gestione flusso di lavoro 1.0, la quale rappresenta un set di tipi e di attività attendibili, disponibili per la creazione di attività e flussi di lavoro. In questo passaggio dell'Esercitazione introduttiva su Workflow Manager 1.0 viene creata un'attività che recupera i prodotti dal database di esempio Northwind ospitato sul sito http://services.odata.org/Northwind/Northwind.svc. Questa attività verrà quindi usata nei passaggi successivi dell'esercitazione.

System_CAPS_noteNota

Per guardare un video con la procedura dettagliata o scaricare i file di avvio e una versione completa dell'esercitazione, vedere l'Esercitazione introduttiva su Gestione flusso di lavoro 1.0.

  1. Aprire Visual Studio 2012 e scegliere Nuovo, Progetto dal menu File.

    Nel nodo Installato, elenco Modelli, espandere il nodo Altri tipi di progetto, quindi selezionare Soluzioni di Visual Studio.

  2. Dall'elenco Soluzioni di Visual Studio selezionare Soluzione vuota. Assicurarsi che nell'elenco a discesa della versione di .NET Framework sia selezionato .NET Framework 4.5. Digitare WFMgrGettingStarted nella casella Nome e fare clic su OK.

  3. Fare clic con il pulsante destro del mouse su WFMgrGettingStarted in Esplora soluzioni e scegliere Aggiungi, Nuovo progetto.

    System_CAPS_tipSuggerimento

    Se la finestra Esplora soluzioni non è visualizzata, selezionare Esplora soluzioni dal menu Visualizza.

  4. Nel nodo Installato selezionare Visual C#, Workflow. Assicurarsi che .NET Framework 4.5 sia selezionato nell'elenco a discesa della versione di .NET Framework. Selezionare Libreria attività dall'elenco Workflow. Digitare GetProductsActivities nella casella Nome e fare clic su OK.

    System_CAPS_noteNota

    A seconda del linguaggio di programmazione configurato come principale in Visual Studio, il nodo Visual C# potrebbe trovarsi all'interno del nodo Altri linguaggi, nel nodo Installato.

  5. Fare clic con il pulsante destro del mouse su Activity1.xaml in Esplora soluzioni e scegliere Elimina. Fare clic su OK per confermare.

  6. Fare clic con il pulsante destro del mouse su GetProductsActivities in Esplora soluzioni e selezionare Aggiungi riferimento.

  7. Fare clic sul pulsante Sfoglia e accedere a C:\Program Files\Reference Assemblies\Microsoft\Workflow Manager\1.0

  8. Selezionare Microsoft.Activities.dll, fare clic su Aggiungi, quindi fare clic su OK.

  9. In Esplora soluzioni espandere Proprietà nel progetto GetProductsActivities e fare doppio clic su AssemblyInfo.cs per visualizzare il codice.

  10. Aggiungere la seguente istruzione using nella parte superiore del file contenente le altre istruzioni using (Frammento1).

    using System.Windows.Markup;
    
    System_CAPS_tipSuggerimento

    Per l'esercitazione vengono forniti file contenenti frammenti di codice. Per usarli, scaricare i file di avvio per l'esercitazione dall'Esercitazione introduttiva su Gestione flusso di lavoro 1.0. In Visual Studio scegliere Gestione frammenti di codice dal menu Strumenti. Selezionare Visual C# dall'elenco a discesa Linguaggio, quindi fare clic sul pulsante Aggiungi. Individuare il percorso in cui sono stati estratti i file di avvio e selezionare la cartella Assets\WFMgrGettingStarted. Fare clic su Seleziona cartella, quindi fare clic su OK. Nel file del codice fare clic con il pulsante destro del mouse sul punto in cui si desidera inserire il frammento e selezionare Inserisci frammento di codice. Scorrere verso il basso l'elenco e fare doppio clic su WFMgrGettingStarted, quindi sul frammento di codice desiderato.

  11. Aggiungere la seguente riga di codice nella parte inferiore del file (Frammento2).

    [assembly: XmlnsDefinition("wf://workflow.windows.net/$Current/$Activities", "GetProductsActivities")]
    
    System_CAPS_importantImportante

    Questa operazione è molto importante e il secondo parametro deve corrispondere allo spazio dei nomi del progetto contenente le attività personalizzate. Se queste operazioni non vengono eseguite, eventuali flussi di lavoro che usano questa attività personalizzata non verranno pubblicati e verrà generata l'eccezione seguente:

    Viene visualizzato il messaggio System.Xaml.XamlObjectWriterException: Impossibile creare il tipo sconosciuto '{clr-namespace:GetProductsActivities}GetProducts'.

  12. Premere CTRL+MAIUSC+B per creare la soluzione.

In questa sezione viene creata l'attività personalizzata GetProducts. L'attività GetProducts usa un'attività HttpSend per eseguire le query sul servizio Northwind oData ospitato sul sito http://services.odata.org/Northwind/Northwind.svc, quindi converte i risultati restituiti dal servizio in un DynamicValue. L'attività GetProducts esegue quindi il drill-down nel DynamicValue restituito e usa l'attività GetDynamicValueProperty<T> per restituire i risultati della ricerca per parole chiave.

  1. Fare clic con il pulsante destro del mouse su GetProductsActivities in Esplora soluzioni e scegliere Aggiungi, Nuovo elemento.

  2. In Installato, nodo Elementi di Visual C#, selezionare Workflow. Selezionare l'attività dall'elenco Workflow.

  3. Digitare GetProducts nella casella Nome e fare clic su Aggiungi.

  4. Fare doppio clic su GetProducts.xaml in Esplora soluzioni per visualizzarlo nell'area di progettazione se non è già visualizzato.

  5. Fare clic su Argomenti nel riquadro inferiore sinistro dell'area di progettazione dell'attività per visualizzare il riquadro Argomenti.

  6. Fare clic su Crea argomento.

  7. Digitare SearchKeyword nella casella Nome, selezionare Input dall'elenco a discesa Direzione, quindi selezionareString dall'elenco a discesa Tipo di argomento. Premere INVIO per salvare l'argomento.

  8. Fare clic su Crea argomento.

  9. Digitare ProductsData nella casella Nome visualizzata sotto l'argomento SearchKeyword appena aggiunto, selezionare Output dall'elenco a discesa Direzione, quindi selezionare Cerca tipi dall'elenco a discesa Tipo di argomento.

  10. Digitare DynamicValue nella casella Nome tipo, selezionare DynamicValue dall'elenco dei risultati, quindi fare clic su OK.

    System_CAPS_tipSuggerimento

    Se DynamicValue non è visualizzato nei risultati della ricerca, assicurarsi di avere aggiunto Microsoft.Activities.dll come descritto in Creare il progetto della soluzione di Visual Studio e della libreria di attività.

  11. Trascinare un'attività Sequence dalla sezione Flusso di controllo della Casella degli strumenti e rilasciarla sull'etichetta Rilasciare l'attività dell'area di progettazione dell'attività GetProducts.

    System_CAPS_tipSuggerimento

    Se la finestra Casella degli strumenti non è visualizzata, selezionare Casella degli strumenti dal menu Visualizza.

  12. Trascinare un'attività HttpSend dalla sezione Messaggi della Casella degli strumenti e rilasciarla sull'etichetta Rilasciare l'attività dell'attività Sequence.

    System_CAPS_tipSuggerimento

    Per individuare le attività, oltre che esplorare la Casella degli strumenti, è anche possibile digitare il nome dell'attività desiderata nella casella Cerca in Casella degli strumenti nella parte superiore della Casella degli strumenti.

  13. Fare clic sull'attività HttpSend nell'area di progettazione del flusso di lavoro per selezionarla e configurare le proprietà seguenti nella finestra Proprietà.

    Proprietà

    Valore

    Metodo

    GET

    Uri

    "http://services.odata.org/Northwind/Northwind.svc/Products?$format=application/json;odata=verbose&$filter=substringof('" + SearchKeyword + "', ProductName) eq true"

    ResponseContent

    ProductsData

    System_CAPS_tipSuggerimento

    Se la finestra Proprietà non è visualizzata, selezionare Finestra Proprietà dal menu Visualizza.

  14. Trascinare un'attività GetDynamicValueProperty<T> dalla sezione DynamicValue della Casella degli strumenti e rilasciarla sull'attività Sequence affinché sia posizionata dopo l'attività HttpSend.

    Nella finestra Seleziona tipi che viene visualizzata dopo il rilascio dell'attività, selezionare Microsoft.Activities.DynamicValue dall'elenco a discesa. Se DynamicValue non è incluso nell'elenco, selezionare Cerca tipi, digitare DynamicValue nella casella Nome tipo, selezionare DynamicValue dall'elenco dei risultati e fare clic su OK. Dopo aver selezionato DynamicValue nell'elenco a discesa fare clic su OK.

  15. Fare clic sull'attività GetDynamicValueProperty<T> nell'area di progettazione del flusso di lavoro per selezionarla e configurare le proprietà riportate di seguito nella finestra Proprietà.

    Proprietà

    Valore

    Nome proprietà

    "d/results"

    Risultato

    ProductsData

    Origine

    ProductsData

  16. Premere CTRL+MAIUSC+B per creare la soluzione.

    Per vedere un esempio dell'attività completata e un video con la procedura dettagliata di questo passaggio dell'esercitazione, fare riferimento a Esercitazione introduttiva su Gestione flusso di lavoro 1.0

Per istruzioni su come creare un flusso di lavoro mediante questa attività, vedere il passaggio successivo dell'esercitazione Procedura: Creare un flusso di lavoro per Gestione flusso di lavoro 1.0.

Mostra: