Dela via


Anvisningar: Hantera flera versioner av ett arbetsflöde sida vid sida

WorkflowIdentity tillhandahåller ett sätt för utvecklare av arbetsflödesprogram att associera ett namn och en version med en arbetsflödesdefinition, och för att den här informationen ska associeras med en bevarad arbetsflödesinstans. Den här identitetsinformationen kan användas av utvecklare av arbetsflödesprogram för att aktivera scenarier, till exempel körning sida vid sida av flera versioner av en arbetsflödesdefinition, och utgör hörnstenen för andra funktioner, till exempel dynamisk uppdatering. Det här steget i självstudien visar hur du använder för att vara WorkflowIdentity värd för flera versioner av ett arbetsflöde samtidigt.

I det här avsnittet

I det här steget i självstudien ändras aktiviteterna WriteLine i arbetsflödet för att ge ytterligare information och en ny WriteLine aktivitet läggs till. En kopia av den ursprungliga arbetsflödessammansättningen lagras och värdprogrammet uppdateras så att det kan köra både ursprungliga och uppdaterade arbetsflöden samtidigt.

Kommentar

Innan du följer stegen i det här avsnittet kör du programmet, startar flera arbetsflöden av varje typ och gör en eller två gissningar för var och en. Dessa bevarade arbetsflöden används i det här steget och följande steg: Så här uppdaterar du definitionen av en arbetsflödesinstans som körs.

Så här gör du en kopia av projektet NumberGuessWorkflowActivities

  1. Öppna lösningen WF45GettingStartedTutorial i Visual Studio 2012 om den inte är öppen.

  2. Tryck på CTRL+SKIFT+B för att skapa lösningen.

  3. Stäng lösningen WF45GettingStartedTutorial.

  4. Öppna Utforskaren och navigera till mappen där självstudiekursens lösningsfil och projektmapparna finns.

  5. Skapa en ny mapp med namnet PreviousVersions i samma mapp som NumberGuessWorkflowHost och NumberGuessWorkflowActivities. Den här mappen används för att innehålla de sammansättningar som innehåller de olika versionerna av arbetsflödena som används i de efterföljande självstudierna.

  6. Gå till mappen NumberGuessWorkflowActivities\bin\debug (eller bin\release beroende på dina projektinställningar). Kopiera NumberGuessWorkflowActivities.dll och klistra in den i mappen PreviousVersions .

  7. Byt namn på NumberGuessWorkflowActivities.dll i mappen PreviousVersions till NumberGuessWorkflowActivities_v1.dll.

    Kommentar

    Stegen i det här avsnittet visar ett sätt att hantera de sammansättningar som används för att innehålla flera versioner av arbetsflödena. Andra metoder som att namnge sammansättningarna och registrera dem i den globala sammansättningscachen kan också användas.

  8. Skapa en ny mapp med namnet NumberGuessWorkflowActivities_du i samma mapp som NumberGuessWorkflowHost, NumberGuessWorkflowActivities och den nyligen tillagda mappen PreviousVersions och kopiera alla filer och undermappar från mappen NumberGuessWorkflowActivities till den nya mappen NumberGuessWorkflowActivities_du . Den här säkerhetskopian av projektet för den första versionen av aktiviteterna används i Så här uppdaterar du definitionen av en arbetsflödesinstans som körs.

  9. Öppna WF45GettingStartedTutorial-lösningen igen i Visual Studio 2012.

Uppdatera arbetsflödena

I det här avsnittet uppdateras arbetsflödesdefinitionerna. De två WriteLine aktiviteter som ger feedback om användarens gissning uppdateras och en ny WriteLine aktivitet läggs till som ger ytterligare information om spelet när talet har gissats.

Så här uppdaterar du StateMachine-arbetsflödet

  1. Dubbelklicka på StateMachineNumberGuessWorkflow.xaml under projektet NumberGuessWorkflowActivities i Solution Explorer.

  2. Dubbelklicka på övergången Gissa fel på tillståndsdatorn.

  3. Uppdatera den Text vänstra delen WriteLine i If aktiviteten.

    Guess & " is too low."
    
    Guess + " is too low."
    
  4. Uppdatera de Text mest WriteLine högra i If aktiviteten.

    Guess & " is too high."
    
    Guess + " is too high."
    
  5. Gå tillbaka till den övergripande tillståndsdatorvyn i arbetsflödesdesignern genom att klicka på StateMachine i sökvägsvisningen överst i arbetsflödesdesignern.

  6. Dubbelklicka på övergången Gissa rätt på tillståndsdatorn.

  7. Dra en WriteLine-aktivitet från avsnittet Primitiver i verktygslådanoch släpp den på etiketten Släpp åtgärd här för övergången.

  8. Skriv följande uttryck i egenskapsrutan Text .

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

Så här uppdaterar du arbetsflödet för flödesschemat

  1. Dubbelklicka på FlowchartNumberGuessWorkflow.xaml under projektet NumberGuessWorkflowActivities i Solution Explorer.

  2. Uppdatera aktiviteten Text till vänster WriteLine .

    Guess & " is too low."
    
    Guess + " is too low."
    
  3. Uppdatera aktiviteten Text för den mest WriteLine högra aktiviteten.

    Guess & " is too high."
    
    Guess + " is too high."
    
  4. Dra en WriteLine-aktivitet från avsnittet Primitiver i verktygslådan och släpp den på släpppunkten för True åtgärden i den översta FlowDecision. Aktiviteten WriteLine läggs till i flödesschemat och länkas till True åtgärden för FlowDecision.

  5. Skriv följande uttryck i egenskapsrutan Text .

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

Uppdatera det sekventiella arbetsflödet

  1. Under projektet NumberGuessWorkflowActivities i Solution Explorer dubbelklickar du på SekventielltNumberGuessWorkflow.xaml.

  2. Uppdatera den Text vänstra delen WriteLine i If aktiviteten.

    Guess & " is too low."
    
    Guess + " is too low."
    
  3. Uppdatera aktivitetens Text mest högra WriteLine aktivitet i If aktiviteten.

    Guess & " is too high."
    
    Guess + " is too high."
    
  4. Dra en WriteLine-aktivitet från avsnittet Primitiver i verktygslådan och släpp den efter DoWhile-aktiviteten så att WriteLine är den sista aktiviteten i rotaktivitetenSequence.

  5. Skriv följande uttryck i egenskapsrutan Text .

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

Så här uppdaterar du WorkflowVersionMap för att inkludera tidigare arbetsflödesversioner

  1. Dubbelklicka på WorkflowVersionMap.cs (eller WorkflowVersionMap.vb) under projektet NumberGuessWorkflowHost för att öppna det.

  2. Lägg till följande using (eller Imports) -instruktioner överst i filen med de andra using (eller Imports) -uttrycken.

    Imports System.Reflection
    Imports System.IO
    
    using System.Reflection;
    using System.IO;
    
  3. Lägg till tre nya arbetsflödesidentiteter precis under de tre befintliga arbetsflödesidentitetsdeklarationerna. Dessa nya v1 arbetsflödesidentiteter kommer att användas för att ange rätt arbetsflödesdefinition för arbetsflöden som startades innan uppdateringarna gjordes.

    '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. WorkflowVersionMap I konstruktorn uppdaterar du egenskapen för Version de tre aktuella arbetsflödesidentiteterna till 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());
    

    Koden i som lägger till de aktuella versionerna av arbetsflödena i ordlistan använder de aktuella versioner som refereras i projektet, så koden som initierar arbetsflödesdefinitionerna behöver inte uppdateras.

  5. Lägg till följande kod i konstruktorn strax efter koden som lägger till de aktuella versionerna i ordlistan.

    '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)
    };
    

    Dessa arbetsflödesidentiteter är associerade med de första versionerna av motsvarande arbetsflödesdefinitioner.

  6. Läs sedan in sammansättningen som innehåller den första versionen av arbetsflödesdefinitionerna och skapa och lägg till motsvarande arbetsflödesdefinitioner i ordlistan.

    '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);
    

    Följande exempel är den fullständiga listan för den uppdaterade WorkflowVersionMap klassen.

    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();
        }
    }
    

Skapa och köra programmet

  1. Tryck på CTRL+SKIFT+B för att skapa programmet och starta sedan CTRL+F5.

  2. Starta ett nytt arbetsflöde genom att klicka på Nytt spel. Versionen av arbetsflödet visas under statusfönstret och återspeglar den uppdaterade versionen från den associerade WorkflowIdentity. Anteckna InstanceId så att du kan visa spårningsfilen för arbetsflödet när det är klart och ange sedan gissningar tills spelet är klart. Observera hur användarens gissning visas i informationen som visas i statusfönstret baserat på uppdateringarna av aktiviteterna WriteLine .

    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.
    

    Kommentar

    Den uppdaterade texten från aktiviteterna WriteLine visas, men utdata från den slutliga WriteLine aktiviteten som lades till i det här avsnittet är inte det. Det beror på att statusfönstret uppdateras av PersistableIdle hanteraren. Eftersom arbetsflödet slutförs och inte går inaktivt efter den slutliga aktiviteten PersistableIdle anropas inte hanteraren. Ett liknande meddelande visas dock i statusfönstret av Completed hanteraren. Om du vill kan kod läggas till i Completed hanteraren för att extrahera texten från StringWriter och visa den i statusfönstret.

  3. Öppna Utforskaren och gå till mappen NumberGuessWorkflowHost\bin\debug (eller bin\release beroende på projektinställningarna) och öppna spårningsfilen med Anteckningar som motsvarar det slutförda arbetsflödet. Om du inte antecknar kan du identifiera rätt spårningsfil med hjälp av den datum ändrade informationen i Utforskaren.InstanceId

    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 uppdaterade WriteLine utdata finns i spårningsfilen, inklusive utdata från WriteLine det som lades till i det här avsnittet.

  4. Växla tillbaka till programmet för nummer gissa och välj ett av de arbetsflöden som startades innan uppdateringarna gjordes. Du kan identifiera versionen av det valda arbetsflödet genom att titta på versionsinformationen som visas under statusfönstret. Ange några gissningar och observera att statusuppdateringarna matchar WriteLine aktivitetsutdata från den tidigare versionen och ta inte med användarens gissning. Det beror på att dessa arbetsflöden använder den tidigare arbetsflödesdefinitionen som inte har uppdateringarna WriteLine .

    I nästa steg, How to: Update the Definition of a Running Workflow Instance, uppdateras de arbetsflödesinstanser som körs v1 så att de innehåller de nya funktionerna som v2 instanser.