Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un diagrama de flujo es un paradigma conocido para diseñar programas. La actividad Diagrama de flujo se usa normalmente para implementar flujos de trabajo no secuenciales, pero se puede usar para flujos de trabajo secuenciales si no se usa ningún FlowDecision
nodo.
Estructura de flujos de trabajo de los diagramas de flujo
Una actividad de diagrama de flujo es una actividad que contiene una colección de actividades para ejecutar. Los diagramas de flujo también contienen elementos de control de flujo, como FlowDecision y FlowSwitch<T>, que dirigen la ejecución entre las actividades contenidas, basándose en los valores de las variables.
Tipos de nodos de flujo
Se usan diferentes tipos de elementos en función del tipo de control de flujo necesario cuando se ejecuta el elemento. Los tipos de elementos de diagrama de flujo incluyen:
FlowStep
- Modela un paso de ejecución en el diagrama de flujo.FlowDecision
- Bifurca la ejecución basada en una condición booleana, similar a If.FlowSwitch
: la ejecución de bifurcaciones basada en un modificador exclusivo, similar a Switch<T>.
Cada vínculo tiene una Action
propiedad que define un ActivityAction que se puede usar para ejecutar actividades secundarias y una o varias Next
propiedades que definen qué elemento o elementos se van a ejecutar cuando el elemento actual finaliza la ejecución.
Creación de una secuencia de actividad básica con un nodo FlowStep
Para modelar una secuencia básica en la que se ejecutan dos actividades a su vez, se usa el FlowStep
elemento . En el ejemplo siguiente, se usan dos FlowStep
elementos para ejecutar dos actividades en secuencia.
<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>
Creación de un diagrama de flujo condicional con un nodo FlowDecision
Para modelar un nodo de flujo condicional en un flujo de trabajo de diagrama de flujo (es decir, para crear un vínculo que funcione como símbolo de decisión de un diagrama de flujo tradicional), se usa un FlowDecision nodo. La Condition propiedad del nodo se establece en una expresión que define la condición, y las propiedades True y False se establecen en instancias FlowNode que se ejecutarán si la expresión se evalúa como true
o false
. En el ejemplo siguiente se muestra cómo definir un flujo de trabajo que usa un FlowDecision nodo.
<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>
Creación de un conmutador exclusivo con un nodo FlowSwitch
Para modelar un diagrama de flujo en el que se selecciona una ruta de acceso exclusiva en función de un valor coincidente, se usa el FlowSwitch<T> nodo. La propiedad Expression se establece en Activity<TResult> con un parámetro de tipo de Object que define el valor con el que se van a hacer coincidir las opciones. La Cases propiedad define un diccionario de claves y FlowNode objetos para que coincidan con la expresión condicional y un conjunto de FlowNode objetos que definen cómo debe fluir la ejecución si el caso dado coincide con la expresión condicional. FlowSwitch<T> También define una Default propiedad que define cómo debe fluir la ejecución si no hay casos que coincidan con la expresión de condición. En el ejemplo siguiente se muestra cómo definir un flujo de trabajo que usa un FlowSwitch<T> elemento .
<Flowchart>
<FlowSwitch>
<FlowStep x:Key="Red">
<WriteRed/>
</FlowStep>
<FlowStep x:Key="Blue">
<WriteBlue/>
</FlowStep>
<FlowStep x:Key="Green">
<WriteGreen/>
</FlowStep>
</FlowSwitch>
</Flowchart>