Delen via


Procedure: Meerdere versies van een werkstroom naast elkaar hosten

WorkflowIdentity biedt ontwikkelaars van werkstroomtoepassingen een manier om een naam en versie te koppelen aan een werkstroomdefinitie en om deze informatie te koppelen aan een persistent werkstroomexemplaar. Deze identiteitsgegevens kunnen door ontwikkelaars van werkstroomtoepassingen worden gebruikt om scenario's mogelijk te maken, zoals het naast elkaar uitvoeren van meerdere versies van een werkstroomdefinitie, en biedt de hoeksteen voor andere functionaliteit, zoals dynamische updates. Deze stap in de zelfstudie laat zien hoe WorkflowIdentity u meerdere versies van een werkstroom tegelijkertijd kunt hosten.

In dit onderwerp

In deze stap van de zelfstudie worden de WriteLine activiteiten in de werkstroom gewijzigd om aanvullende informatie te geven en wordt er een nieuwe WriteLine activiteit toegevoegd. Er wordt een kopie van de oorspronkelijke werkstroomassembly opgeslagen en de hosttoepassing wordt bijgewerkt, zodat zowel de oorspronkelijke als de bijgewerkte werkstromen tegelijkertijd kunnen worden uitgevoerd.

Notitie

Voordat u de stappen in dit onderwerp volgt, voert u de toepassing uit, start u verschillende werkstromen van elk type en maakt u een of twee schattingen voor elk type. Deze persistente werkstromen worden gebruikt in deze stap en de volgende stap: De definitie van een actief werkstroomexemplaren bijwerken.

Een kopie maken van het project NumberGuessWorkflowActivities

  1. Open de oplossing WF45GettingStartedTutorial in Visual Studio 2012 als deze niet is geopend.

  2. Druk op CTRL + SHIFT + B om de oplossing te bouwen.

  3. Sluit de WF45GettingStartedTutorial-oplossing .

  4. Open Windows Verkenner en navigeer naar de map waarin het oplossingsbestand voor de zelfstudie en de projectmappen zich bevinden.

  5. Maak een nieuwe map met de naam PreviousVersions in dezelfde map als NumberGuessWorkflowHost en NumberGuessWorkflowActivities. Deze map wordt gebruikt om de assembly's te bevatten die de verschillende versies van de werkstromen bevatten die in de volgende zelfstudiestappen worden gebruikt.

  6. Navigeer naar de map NumberGuessWorkflowActivities\bin\debug (of bin\release , afhankelijk van uw projectinstellingen). Kopieer NumberGuessWorkflowActivities.dll en plak deze in de map PreviousVersions .

  7. Wijzig de naam van NumberGuessWorkflowActivities.dll in de map PreviousVersions in NumberGuessWorkflowActivities_v1.dll.

    Notitie

    De stappen in dit onderwerp laten zien hoe u de assembly's kunt beheren die worden gebruikt om meerdere versies van de werkstromen te bevatten. Andere methoden, zoals het sterk benoemen van de assembly's en het registreren ervan in de globale assemblycache, kunnen ook worden gebruikt.

  8. Maak een nieuwe map met de naam NumberGuessWorkflowActivities_du in dezelfde map als NumberGuessWorkflowHost, NumberGuessWorkflowActivities en de zojuist toegevoegde map PreviousVersions, en kopieer alle bestanden en submappen uit de map NumberGuessWorkflowActivities naar de nieuwe map NumberGuessWorkflowActivities_du. Deze back-upkopie van het project voor de eerste versie van de activiteiten wordt gebruikt in Procedure: De definitie van een actieve werkstroomexemplaar bijwerken.

  9. Open de WF45GettingStartedTutorial-oplossing opnieuw in Visual Studio 2012.

De werkstromen bijwerken

In deze sectie worden de werkstroomdefinities bijgewerkt. De twee WriteLine activiteiten die feedback geven over de schatting van de gebruiker, worden bijgewerkt en er wordt een nieuwe WriteLine activiteit toegevoegd die aanvullende informatie over het spel biedt zodra het getal wordt geraden.

De StateMachine-werkstroom bijwerken

  1. Dubbelklik in Solution Explorer onder het project NumberGuessWorkflowActivities op StateMachineNumberGuessWorkflow.xaml.

  2. Dubbelklik op de onjuiste overgang raden op de statusmachine.

  3. Werk de Text meest WriteLine linkse in de If activiteit bij.

    Guess & " is too low."
    
    Guess + " is too low."
    
  4. Werk de Text meest WriteLine rechtse in de If activiteit bij.

    Guess & " is too high."
    
    Guess + " is too high."
    
  5. Ga terug naar de weergave voor de algemene statusmachine in de werkstroomontwerper door boven aan de werkstroomontwerper op StateMachine te klikken in de breadcrumb-weergave.

  6. Dubbelklik op de overgang Schatting juist op de statusmachine.

  7. Sleep een WriteLine-activiteit uit de sectie Primitieven van de Werkset en zet deze neer op de activiteit Actie neerzetten hier het label van de overgang.

  8. Typ de volgende expressie in het Text eigenschappenvak.

    Guess & " is correct. You guessed it in " & Turns & " turns."
    
    Guess + " is correct. You guessed it in " + Turns + " turns."
    

De werkstroom stroomdiagram bijwerken

  1. Dubbelklik in Solution Explorer onder het project NumberGuessWorkflowActivities op FlowchartNumberGuessWorkflow.xaml.

  2. Werk de Text meest WriteLine linkse activiteit bij.

    Guess & " is too low."
    
    Guess + " is too low."
    
  3. Werk de Text meest WriteLine rechtse activiteit bij.

    Guess & " is too high."
    
    Guess + " is too high."
    
  4. Sleep een WriteLine-activiteit vanuit de sectie Primitieven van de Werkset en zet deze neer op het neerzetten van de True actie van de bovenste FlowDecision. De WriteLine activiteit wordt toegevoegd aan het stroomdiagram en gekoppeld aan de True actie van de FlowDecision.

  5. Typ de volgende expressie in het Text eigenschappenvak.

    Guess & " is correct. You guessed it in " & Turns & " turns."
    
    Guess + " is correct. You guessed it in " + Turns + " turns."
    

De sequentiële werkstroom bijwerken

  1. Dubbelklik in Solution Explorer onder het project NumberGuessWorkflowActivities op SequentialNumberGuessWorkflow.xaml.

  2. Werk de Text meest WriteLine linkse in de If activiteit bij.

    Guess & " is too low."
    
    Guess + " is too low."
    
  3. Werk de Text meest WriteLine rechtse activiteit in de If activiteit bij.

    Guess & " is too high."
    
    Guess + " is too high."
    
  4. Sleep een WriteLine-activiteit uit de sectie Primitieven van de Werkset en zet deze neer na de Activiteit DoWhile , zodat de WriteLine de laatste activiteit in de hoofdactiviteit Sequence is.

  5. Typ de volgende expressie in het Text eigenschappenvak.

    Guess & " is correct. You guessed it in " & Turns & " turns."
    
    Guess + " is correct. You guessed it in " + Turns + " turns."
    

WorkflowVersionMap bijwerken om de vorige werkstroomversies op te nemen

  1. Dubbelklik op WorkflowVersionMap.cs (of WorkflowVersionMap.vb) onder het project NumberGuessWorkflowHost om het te openen.

  2. Voeg de volgende using (of Imports) instructies toe aan het begin van het bestand met de andere using (of Imports) instructies.

    Imports System.Reflection
    Imports System.IO
    
    using System.Reflection;
    using System.IO;
    
  3. Voeg drie nieuwe werkstroomidentiteiten toe, net onder de drie bestaande declaraties van werkstroomidentiteiten. Deze nieuwe v1 werkstroomidentiteiten worden gebruikt, bieden de juiste werkstroomdefinitie voor werkstromen die zijn gestart voordat de updates zijn gemaakt.

    'Current version identities.
    Public StateMachineNumberGuessIdentity As WorkflowIdentity
    Public FlowchartNumberGuessIdentity As WorkflowIdentity
    Public SequentialNumberGuessIdentity As WorkflowIdentity
    
    'v1 Identities.
    Public StateMachineNumberGuessIdentity_v1 As WorkflowIdentity
    Public FlowchartNumberGuessIdentity_v1 As WorkflowIdentity
    Public SequentialNumberGuessIdentity_v1 As WorkflowIdentity
    
    // Current version identities.
    static public WorkflowIdentity StateMachineNumberGuessIdentity;
    static public WorkflowIdentity FlowchartNumberGuessIdentity;
    static public WorkflowIdentity SequentialNumberGuessIdentity;
    
    // v1 identities.
    static public WorkflowIdentity StateMachineNumberGuessIdentity_v1;
    static public WorkflowIdentity FlowchartNumberGuessIdentity_v1;
    static public WorkflowIdentity SequentialNumberGuessIdentity_v1;
    
  4. Werk in de WorkflowVersionMap constructor de Version eigenschap van de drie huidige werkstroomidentiteiten bij naar 2.0.0.0.

    'Add the current workflow version identities.
    StateMachineNumberGuessIdentity = New WorkflowIdentity With
    {
        .Name = "StateMachineNumberGuessWorkflow",
        .Version = New Version(2, 0, 0, 0)
    }
    
    FlowchartNumberGuessIdentity = New WorkflowIdentity With
    {
        .Name = "FlowchartNumberGuessWorkflow",
        .Version = New Version(2, 0, 0, 0)
    }
    
    SequentialNumberGuessIdentity = New WorkflowIdentity With
    {
        .Name = "SequentialNumberGuessWorkflow",
        .Version = New Version(2, 0, 0, 0)
    }
    
    map.Add(StateMachineNumberGuessIdentity, New StateMachineNumberGuessWorkflow())
    map.Add(FlowchartNumberGuessIdentity, New FlowchartNumberGuessWorkflow())
    map.Add(SequentialNumberGuessIdentity, New SequentialNumberGuessWorkflow())
    
    // Add the current workflow version identities.
    StateMachineNumberGuessIdentity = new WorkflowIdentity
    {
        Name = "StateMachineNumberGuessWorkflow",
        // Version = new Version(1, 0, 0, 0),
        Version = new Version(2, 0, 0, 0)
    };
    
    FlowchartNumberGuessIdentity = new WorkflowIdentity
    {
        Name = "FlowchartNumberGuessWorkflow",
        // Version = new Version(1, 0, 0, 0),
        Version = new Version(2, 0, 0, 0)
    };
    
    SequentialNumberGuessIdentity = new WorkflowIdentity
    {
        Name = "SequentialNumberGuessWorkflow",
        // Version = new Version(1, 0, 0, 0),
        Version = new Version(2, 0, 0, 0)
    };
    
    map.Add(StateMachineNumberGuessIdentity, new StateMachineNumberGuessWorkflow());
    map.Add(FlowchartNumberGuessIdentity, new FlowchartNumberGuessWorkflow());
    map.Add(SequentialNumberGuessIdentity, new SequentialNumberGuessWorkflow());
    

    De code in die de huidige versies van de werkstromen toevoegt aan de woordenlijst, gebruikt de huidige versies waarnaar in het project wordt verwezen, zodat de code waarmee de werkstroomdefinities worden geïnitialiseerd, niet hoeft te worden bijgewerkt.

  5. Voeg de volgende code toe aan de constructor net na de code waarmee de huidige versies aan de woordenlijst worden toegevoegd.

    'Initialize the previous workflow version identities.
    StateMachineNumberGuessIdentity_v1 = New WorkflowIdentity With
    {
        .Name = "StateMachineNumberGuessWorkflow",
        .Version = New Version(1, 0, 0, 0)
    }
    
    FlowchartNumberGuessIdentity_v1 = New WorkflowIdentity With
    {
        .Name = "FlowchartNumberGuessWorkflow",
        .Version = New Version(1, 0, 0, 0)
    }
    
    SequentialNumberGuessIdentity_v1 = New WorkflowIdentity With
    {
        .Name = "SequentialNumberGuessWorkflow",
        .Version = New Version(1, 0, 0, 0)
    }
    
    // Initialize the previous workflow version identities.
    StateMachineNumberGuessIdentity_v1 = new WorkflowIdentity
    {
        Name = "StateMachineNumberGuessWorkflow",
        Version = new Version(1, 0, 0, 0)
    };
    
    FlowchartNumberGuessIdentity_v1 = new WorkflowIdentity
    {
        Name = "FlowchartNumberGuessWorkflow",
        Version = new Version(1, 0, 0, 0)
    };
    
    SequentialNumberGuessIdentity_v1 = new WorkflowIdentity
    {
        Name = "SequentialNumberGuessWorkflow",
        Version = new Version(1, 0, 0, 0)
    };
    

    Deze werkstroomidentiteiten zijn gekoppeld aan de eerste versies van de bijbehorende werkstroomdefinities.

  6. Laad vervolgens de assembly die de eerste versie van de werkstroomdefinities bevat, en maak en voeg de bijbehorende werkstroomdefinities toe aan de woordenlijst.

    'Add the previous version workflow identities to the dictionary along with
    'the corresponding workflow definitions loaded from the v1 assembly.
    'Assembly.LoadFile requires an absolute path so convert this relative path
    'to an absolute path.
    Dim v1AssemblyPath As String = "..\..\..\PreviousVersions\NumberGuessWorkflowActivities_v1.dll"
    v1AssemblyPath = Path.GetFullPath(v1AssemblyPath)
    Dim v1Assembly As Assembly = Assembly.LoadFile(v1AssemblyPath)
    
    map.Add(StateMachineNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.StateMachineNumberGuessWorkflow"))
    
    map.Add(SequentialNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.SequentialNumberGuessWorkflow"))
    
    map.Add(FlowchartNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.FlowchartNumberGuessWorkflow"))
    
    // Add the previous version workflow identities to the dictionary along with
    // the corresponding workflow definitions loaded from the v1 assembly.
    // Assembly.LoadFile requires an absolute path so convert this relative path
    // to an absolute path.
    string v1AssemblyPath = @"..\..\..\PreviousVersions\NumberGuessWorkflowActivities_v1.dll";
    v1AssemblyPath = Path.GetFullPath(v1AssemblyPath);
    Assembly v1Assembly = Assembly.LoadFile(v1AssemblyPath);
    
    map.Add(StateMachineNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.StateMachineNumberGuessWorkflow") as Activity);
    
    map.Add(SequentialNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.SequentialNumberGuessWorkflow") as Activity);
    
    map.Add(FlowchartNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.FlowchartNumberGuessWorkflow") as Activity);
    

    Het volgende voorbeeld is de volledige vermelding voor de bijgewerkte WorkflowVersionMap klasse.

    Public Module WorkflowVersionMap
        Dim map As Dictionary(Of WorkflowIdentity, Activity)
    
        'Current version identities.
        Public StateMachineNumberGuessIdentity As WorkflowIdentity
        Public FlowchartNumberGuessIdentity As WorkflowIdentity
        Public SequentialNumberGuessIdentity As WorkflowIdentity
    
        'v1 Identities.
        Public StateMachineNumberGuessIdentity_v1 As WorkflowIdentity
        Public FlowchartNumberGuessIdentity_v1 As WorkflowIdentity
        Public SequentialNumberGuessIdentity_v1 As WorkflowIdentity
    
        Sub New()
            map = New Dictionary(Of WorkflowIdentity, Activity)
    
            'Add the current workflow version identities.
            StateMachineNumberGuessIdentity = New WorkflowIdentity With
            {
                .Name = "StateMachineNumberGuessWorkflow",
                .Version = New Version(2, 0, 0, 0)
            }
    
            FlowchartNumberGuessIdentity = New WorkflowIdentity With
            {
                .Name = "FlowchartNumberGuessWorkflow",
                .Version = New Version(2, 0, 0, 0)
            }
    
            SequentialNumberGuessIdentity = New WorkflowIdentity With
            {
                .Name = "SequentialNumberGuessWorkflow",
                .Version = New Version(2, 0, 0, 0)
            }
    
            map.Add(StateMachineNumberGuessIdentity, New StateMachineNumberGuessWorkflow())
            map.Add(FlowchartNumberGuessIdentity, New FlowchartNumberGuessWorkflow())
            map.Add(SequentialNumberGuessIdentity, New SequentialNumberGuessWorkflow())
    
            'Initialize the previous workflow version identities.
            StateMachineNumberGuessIdentity_v1 = New WorkflowIdentity With
            {
                .Name = "StateMachineNumberGuessWorkflow",
                .Version = New Version(1, 0, 0, 0)
            }
    
            FlowchartNumberGuessIdentity_v1 = New WorkflowIdentity With
            {
                .Name = "FlowchartNumberGuessWorkflow",
                .Version = New Version(1, 0, 0, 0)
            }
    
            SequentialNumberGuessIdentity_v1 = New WorkflowIdentity With
            {
                .Name = "SequentialNumberGuessWorkflow",
                .Version = New Version(1, 0, 0, 0)
            }
    
            'Add the previous version workflow identities to the dictionary along with
            'the corresponding workflow definitions loaded from the v1 assembly.
            'Assembly.LoadFile requires an absolute path so convert this relative path
            'to an absolute path.
            Dim v1AssemblyPath As String = "..\..\..\PreviousVersions\NumberGuessWorkflowActivities_v1.dll"
            v1AssemblyPath = Path.GetFullPath(v1AssemblyPath)
            Dim v1Assembly As Assembly = Assembly.LoadFile(v1AssemblyPath)
    
            map.Add(StateMachineNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.StateMachineNumberGuessWorkflow"))
    
            map.Add(SequentialNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.SequentialNumberGuessWorkflow"))
    
            map.Add(FlowchartNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.FlowchartNumberGuessWorkflow"))
        End Sub
    
        Public Function GetWorkflowDefinition(identity As WorkflowIdentity) As Activity
            Return map(identity)
        End Function
    
        Public Function GetIdentityDescription(identity As WorkflowIdentity) As String
            Return identity.ToString()
        End Function
    End Module
    
    public static class WorkflowVersionMap
    {
        static Dictionary<WorkflowIdentity, Activity> map;
    
        // Current version identities.
        static public WorkflowIdentity StateMachineNumberGuessIdentity;
        static public WorkflowIdentity FlowchartNumberGuessIdentity;
        static public WorkflowIdentity SequentialNumberGuessIdentity;
    
        // v1 identities.
        static public WorkflowIdentity StateMachineNumberGuessIdentity_v1;
        static public WorkflowIdentity FlowchartNumberGuessIdentity_v1;
        static public WorkflowIdentity SequentialNumberGuessIdentity_v1;
    
        static WorkflowVersionMap()
        {
            map = new Dictionary<WorkflowIdentity, Activity>();
    
            // Add the current workflow version identities.
            StateMachineNumberGuessIdentity = new WorkflowIdentity
            {
                Name = "StateMachineNumberGuessWorkflow",
                // Version = new Version(1, 0, 0, 0),
                Version = new Version(2, 0, 0, 0)
            };
    
            FlowchartNumberGuessIdentity = new WorkflowIdentity
            {
                Name = "FlowchartNumberGuessWorkflow",
                // Version = new Version(1, 0, 0, 0),
                Version = new Version(2, 0, 0, 0)
            };
    
            SequentialNumberGuessIdentity = new WorkflowIdentity
            {
                Name = "SequentialNumberGuessWorkflow",
                // Version = new Version(1, 0, 0, 0),
                Version = new Version(2, 0, 0, 0)
            };
    
            map.Add(StateMachineNumberGuessIdentity, new StateMachineNumberGuessWorkflow());
            map.Add(FlowchartNumberGuessIdentity, new FlowchartNumberGuessWorkflow());
            map.Add(SequentialNumberGuessIdentity, new SequentialNumberGuessWorkflow());
    
            // Initialize the previous workflow version identities.
            StateMachineNumberGuessIdentity_v1 = new WorkflowIdentity
            {
                Name = "StateMachineNumberGuessWorkflow",
                Version = new Version(1, 0, 0, 0)
            };
    
            FlowchartNumberGuessIdentity_v1 = new WorkflowIdentity
            {
                Name = "FlowchartNumberGuessWorkflow",
                Version = new Version(1, 0, 0, 0)
            };
    
            SequentialNumberGuessIdentity_v1 = new WorkflowIdentity
            {
                Name = "SequentialNumberGuessWorkflow",
                Version = new Version(1, 0, 0, 0)
            };
    
            // Add the previous version workflow identities to the dictionary along with
            // the corresponding workflow definitions loaded from the v1 assembly.
            // Assembly.LoadFile requires an absolute path so convert this relative path
            // to an absolute path.
            string v1AssemblyPath = @"..\..\..\PreviousVersions\NumberGuessWorkflowActivities_v1.dll";
            v1AssemblyPath = Path.GetFullPath(v1AssemblyPath);
            Assembly v1Assembly = Assembly.LoadFile(v1AssemblyPath);
    
            map.Add(StateMachineNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.StateMachineNumberGuessWorkflow") as Activity);
    
            map.Add(SequentialNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.SequentialNumberGuessWorkflow") as Activity);
    
            map.Add(FlowchartNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.FlowchartNumberGuessWorkflow") as Activity);
        }
    
        public static Activity GetWorkflowDefinition(WorkflowIdentity identity)
        {
            return map[identity];
        }
    
        public static string GetIdentityDescription(WorkflowIdentity identity)
        {
            return identity.ToString();
        }
    }
    

De toepassing bouwen en uitvoeren

  1. Druk op Ctrl+Shift+B om de toepassing te bouwen en druk vervolgens op Ctrl+F5 om te starten.

  2. Start een nieuwe werkstroom door op New Game te klikken. De versie van de werkstroom wordt weergegeven onder het statusvenster en weerspiegelt de bijgewerkte versie van de bijbehorende WorkflowIdentity. Noteer het InstanceId , zodat u het traceringsbestand voor de werkstroom kunt bekijken wanneer deze is voltooid en voer vervolgens schattingen in totdat het spel is voltooid. Let op hoe de schatting van de gebruiker wordt weergegeven in de informatie die wordt weergegeven in het statusvenster op basis van de updates voor de WriteLine activiteiten.

    Please enter a number between 1 and 10
    5 is too high.
    Please enter a number between 1 and 10
    3 is too high.
    Please enter a number between 1 and 10
    1 is too low.
    Please enter a number between 1 and 10
    Congratulations, you guessed the number in 4 turns.
    

    Notitie

    De bijgewerkte tekst van de WriteLine activiteiten wordt weergegeven, maar de uitvoer van de uiteindelijke WriteLine activiteit die in dit onderwerp is toegevoegd, is niet. Dat komt doordat het statusvenster wordt bijgewerkt door de PersistableIdle handler. Omdat de werkstroom is voltooid en niet inactief gaat na de laatste activiteit, wordt de PersistableIdle handler niet aangeroepen. Er wordt echter een vergelijkbaar bericht weergegeven in het statusvenster door de Completed handler. Indien gewenst kan code worden toegevoegd aan de Completed handler om de tekst uit de StringWriter handler te extraheren en weer te geven aan het statusvenster.

  3. Open Windows Verkenner en navigeer naar de map NumberGuessWorkflowHost\bin\debug (of bin\release, afhankelijk van uw projectinstellingen) en open het traceringsbestand met behulp van Kladblok die overeenkomt met de voltooide werkstroom. Als u geen notitie hebt gemaakt van het InstanceIdbestand, kunt u het juiste traceringsbestand identificeren met behulp van de gewijzigde gegevens in Windows Verkenner.

    Please enter a number between 1 and 10
    5 is too high.
    Please enter a number between 1 and 10
    3 is too high.
    Please enter a number between 1 and 10
    1 is too low.
    Please enter a number between 1 and 10
    2 is correct. You guessed it in 4 turns.
    

    De bijgewerkte WriteLine uitvoer bevindt zich in het traceringsbestand, inclusief de uitvoer van de WriteLine uitvoer die in dit onderwerp is toegevoegd.

  4. Ga terug naar de toepassing voor het raden van getallen en selecteer een van de werkstromen die zijn gestart voordat de updates werden uitgevoerd. U kunt de versie van de geselecteerde werkstroom identificeren door de versiegegevens te bekijken die onder het statusvenster worden weergegeven. Voer enkele schattingen in en merk op dat de statusupdates overeenkomen met de WriteLine activiteitsuitvoer van de vorige versie en niet de schatting van de gebruiker bevatten. Dat komt doordat deze werkstromen de vorige werkstroomdefinitie gebruiken die niet over de WriteLine updates beschikt.

    In de volgende stap: De definitie van een exemplaar van een actieve werkstroom bijwerken, worden de actieve v1 werkstroomexemplaren bijgewerkt, zodat ze de nieuwe functionaliteit als de v2 exemplaren bevatten.