0
votes

I'm creating a FlowChart within a Windows Workflow 4.0 project in Visual Studio 2010. I've added a FlowSwitchwith an expression of a variable passed in as an In Argument to the Activity. I can debug and see the values are passed in correctly, however my FlowSwitch is not switching at all to a case that is defined as the value being passed in. I've defined the FlowSwitch going to the Activity as the numeric value that the In Argument should be equal to. Is there something I'm missing?

1
It sucks when beta software has bugs, hey? - leppie
Especially on something so elemental to it's feature set. I'm trying to test out FlowCharts versus regular activities and it's just not working.. - Keith Adler
This isn't even working with hardcoded values. - Keith Adler

1 Answers

1
votes

A FlowSwitch works with string values at the moment. Try converting the InArgument to a string.

Example XAML:

<p:Activity mc:Ignorable="" x:Class="WorkflowConsoleApplication2.Flowchart1" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities/design" xmlns:__Flowchart1="clr-namespace:WorkflowConsoleApplication2;" xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:p="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <p:Flowchart StartNode="{x:Reference __ReferenceID0}" sad:XamlDebuggerXmlReader.FileName="c:\temp\WorkflowConsoleApplication2\WorkflowConsoleApplication2\Flowchart1.xaml">
    <WorkflowViewStateService.ViewState>
      <scg:Dictionary x:TypeArguments="x:String, s:Object">
        <av:Point x:Key="ShapeLocation">275,10</av:Point>
        <av:Size x:Key="ShapeSize">50,50</av:Size>
        <av:PointCollection x:Key="ConnectorLocation">300,60 300,110</av:PointCollection>
      </scg:Dictionary>
    </WorkflowViewStateService.ViewState>
    <p:FlowSwitch x:Name="__ReferenceID0" Expression="[&quot;2&quot;]">
      <p:FlowSwitch.Default>
        <p:FlowStep x:Name="__ReferenceID1">
          <WorkflowViewStateService.ViewState>
            <scg:Dictionary x:TypeArguments="x:String, s:Object">
              <av:Point x:Key="ShapeLocation">235,293</av:Point>
              <av:Size x:Key="ShapeSize">200,34</av:Size>
            </scg:Dictionary>
          </WorkflowViewStateService.ViewState>
          <p:WriteLine>["Default"]</p:WriteLine>
        </p:FlowStep>
      </p:FlowSwitch.Default>
      <WorkflowViewStateService.ViewState>
        <scg:Dictionary x:TypeArguments="x:String, s:Object">
          <av:Point x:Key="ShapeLocation">270,110</av:Point>
          <av:Size x:Key="ShapeSize">60,60</av:Size>
          <av:PointCollection x:Key="Default">300,170 285,170 285,283 335,283 335,293</av:PointCollection>
          <av:PointCollection x:Key="1Connector">300,170 300,205 330,205</av:PointCollection>
          <av:PointCollection x:Key="2Connector">300,170 300,180 290,180 290,270 340,270</av:PointCollection>
        </scg:Dictionary>
      </WorkflowViewStateService.ViewState>
      <p:FlowStep x:Name="__ReferenceID2">
        <x:Key>
          <x:String>1</x:String>
        </x:Key>
        <WorkflowViewStateService.ViewState>
          <scg:Dictionary x:TypeArguments="x:String, s:Object">
            <av:Point x:Key="ShapeLocation">330,188</av:Point>
            <av:Size x:Key="ShapeSize">200,34</av:Size>
          </scg:Dictionary>
        </WorkflowViewStateService.ViewState>
        <p:WriteLine>["Its 1 "]</p:WriteLine>
      </p:FlowStep>
      <p:FlowStep x:Name="__ReferenceID3">
        <x:Key>
          <x:String>2</x:String>
        </x:Key>
        <WorkflowViewStateService.ViewState>
          <scg:Dictionary x:TypeArguments="x:String, s:Object">
            <av:Point x:Key="ShapeLocation">340,253</av:Point>
            <av:Size x:Key="ShapeSize">200,34</av:Size>
          </scg:Dictionary>
        </WorkflowViewStateService.ViewState>
        <p:WriteLine>["Its 2"]</p:WriteLine>
      </p:FlowStep>
    </p:FlowSwitch>
    <x:Reference>__ReferenceID2</x:Reference>
    <x:Reference>__ReferenceID3</x:Reference>
    <x:Reference>__ReferenceID1</x:Reference>
  </p:Flowchart>
</p:Activity>