Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Schemat blokowy to dobrze znany paradygmat projektowania programów. Działanie typu Flowchart jest zazwyczaj używane do implementacji niesekwencyjnych procesów, ale może być również używane do sekwencyjnych procesów, pod warunkiem, że nie są używane żadne węzły.
Struktura schematu blokowego przepływu pracy
Aktywność schematu blokowego to aktywność, która zawiera kolekcję działań do zrealizowania. Schematy blokowe zawierają również elementy sterowania przepływem, takie jak FlowDecision i FlowSwitch<T>, które kierują wykonywaniem między zawartymi działaniami na podstawie wartości zmiennych.
Typy węzłów przepływu
Różne typy elementów są używane w zależności od typu sterowania przepływem wymaganego podczas wykonywania elementu. Typy elementów schematu blokowego obejmują:
FlowStep— Modeluje jeden krok wykonywania w schemacie blokowym.FlowDecision— Wykonywanie gałęzi na podstawie warunku logicznego, podobnego do If.FlowSwitch— Wykonywanie gałęzi na podstawie przełącznika wyłącznego, podobnego do Switch<T>.
Każdy link ma właściwość ActionActivityAction, która definiuje element, który może służyć do wykonywania działań podrzędnych, oraz co najmniej jedną właściwość Next określającą element lub elementy do wykonania po zakończeniu wykonywania bieżącego elementu.
Tworzenie podstawowej sekwencji działań za pomocą węzła FlowStep
Aby modelować podstawową sekwencję, w której dwa działania są wykonywane kolejno, używa się elementu FlowStep. W poniższym przykładzie dwa FlowStep elementy są używane do wykonywania dwóch działań w sekwencji.
<Flowchart>
<FlowStep>
<Assign DisplayName="Get Name">
<Assign.To>
<OutArgument x:TypeArguments="x:String">[result]</OutArgument>
</Assign.To>
<Assign.Value>
<InArgument x:TypeArguments="x:String">["User"]</InArgument>
</Assign.Value>
</Assign>
<FlowStep.Next>
<FlowStep>
<WriteLine Text="Hello, " & [result]/>
</FlowStep>
</FlowStep.Next>
</FlowStep>
</Flowchart>
Tworzenie schematu blokowego warunkowego za pomocą węzła FlowDecision
Aby modelować węzeł przepływu warunkowego w schemacie blokowym przepływu pracy (czyli w celu utworzenia połączenia, które działa jako symbol decyzyjny tradycyjnego schematu blokowego), używany jest węzeł FlowDecision. Właściwość Condition węzła jest ustawiona na wyrażenie, które definiuje warunek, a właściwości True i False są ustawione na FlowNode wystąpienia do wykonania, jeśli wyrażenie da wynik true lub false. W poniższym przykładzie pokazano, jak zdefiniować przepływ pracy korzystający z węzła FlowDecision .
<Flowchart>
<FlowStep>
<Read Result="[s]"/>
<FlowStep.Next>
<FlowDecision>
<IsEmpty Input="[s]" />
<FlowDecision.True>
<FlowStep>
<Write Text="Empty"/>
</FlowStep>
</FlowDecision.True>
<FlowDecision.False>
<FlowStep>
<Write Text="Non-Empty"/>
</FlowStep>
</FlowDecision.False>
</FlowDecision>
</FlowStep.Next>
</FlowStep>
</Flowchart>
Tworzenie przełącznika wyłącznego za pomocą węzła FlowSwitch
Aby modelować schemat blokowy, w którym na podstawie pasującej wartości wybierana jest jedna wyłączna ścieżka, używany jest węzeł FlowSwitch<T>. Właściwość Expression ustawia się na Activity<TResult> z parametrem typu Object , który definiuje wartość, aby dopasować ją do wyborów. Właściwość Cases definiuje słownik kluczy i FlowNode obiektów, które mają być zgodne z wyrażeniem warunkowym, oraz zestaw FlowNode obiektów definiujących sposób przepływu wykonywania, jeśli dany przypadek jest zgodny z wyrażeniem warunkowym. FlowSwitch<T> również definiuje właściwość Default, która określa, jak powinien przebiegać proces wykonywania, jeśli żadne przypadki nie odpowiadają wyrażeniu warunku. W poniższym przykładzie pokazano, jak zdefiniować przepływ pracy, który używa FlowSwitch<T> elementu.
<Flowchart>
<FlowSwitch>
<FlowStep x:Key="Red">
<WriteRed/>
</FlowStep>
<FlowStep x:Key="Blue">
<WriteBlue/>
</FlowStep>
<FlowStep x:Key="Green">
<WriteGreen/>
</FlowStep>
</FlowSwitch>
</Flowchart>