다음을 통해 공유


흐름도 작업 과정

순서도는 프로그램 설계를 위한 잘 알려진 패러다임입니다. 순서도 작업은 일반적으로 비순차 워크플로를 구현하는 데 사용되지만 노드가 사용되지 않는 FlowDecision 경우 순차 워크플로에 사용할 수 있습니다.

업무 흐름 순서도 구조

Flowchart 활동은 여러 활동을 실행하기 위해 포함하는 활동입니다. 순서도에는 변수 값에 따라 포함된 작업 간의 실행을 제어하는 FlowDecisionFlowSwitch<T> 같은 흐름 제어 요소가 포함됩니다.

흐름 노드 유형

요소가 실행되면 필요한 흐름 제어 유형에 따라 다양한 유형의 요소가 사용됩니다. 순서도 요소의 유형은 다음과 같습니다.

  • FlowStep - 순서도에서 실행의 한 단계를 모델화합니다.

  • FlowDecision - 부울 조건에 따라 실행을 분기하며, 이는 If와 유사합니다.

  • FlowSwitchSwitch<T>와 유사하게 배타적 스위치를 기반으로 실행을 분기합니다.

각 링크에는 Action 자식 활동을 실행하는 데 사용할 수 있는 속성을 정의하는 ActivityAction 속성과 현재 요소가 실행을 완료할 때 실행할 요소 또는 요소를 정의하는 하나 이상의 Next 속성이 있습니다.

FlowStep 노드를 사용하여 기본 작업 시퀀스 만들기

기본 시퀀스에서 두 작업이 차례로 실행되도록 FlowStep 요소가 사용됩니다. 다음 예제에서는 두 FlowStep 개의 요소를 사용하여 두 개의 작업을 순서대로 실행합니다.

<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>

FlowDecision 노드를 사용하여 조건부 순서도 만들기

순서도 워크플로에서 조건부 흐름 노드를 모델링하려면(즉, 기존 순서도의 의사 결정 기호로 작동하는 링크를 만들기 위해) FlowDecision 노드가 사용됩니다. 노드의 Condition 속성은 조건을 정의하는 표현식으로 설정되며, TrueFalse 속성은 그 표현식이 FlowNode 또는 true로 평가될 경우 실행할 false 인스턴스로 설정됩니다. 다음 예제에서는 노드를 사용하는 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>

FlowSwitch 노드를 사용하여 단독 스위치 만들기

일치하는 값에 따라 하나의 배타적 경로가 선택되는 순서도를 모델링하기 위해 노드가 FlowSwitch<T> 사용됩니다. 속성은 형식 매개 변수 Expression 를 사용하는 Activity<TResult> 로 설정되며, 이는 선택 항목과 비교할 값을 정의합니다. 이 속성은 Cases 조건식과 일치하는 키 및 FlowNode 개체의 사전과 지정된 사례가 조건식과 일치하는 경우 실행이 흐르는 방식을 정의하는 개체 집합 FlowNode 을 정의합니다. FlowSwitch<T> 또한 조건 식과 Default 일치하는 사례가 없는 경우 실행이 흐르는 방법을 정의하는 속성을 정의합니다. 다음 예제에서는 요소를 사용하는 FlowSwitch<T> 워크플로를 정의하는 방법을 보여 줍니다.

<Flowchart>
  <FlowSwitch>
    <FlowStep x:Key="Red">
      <WriteRed/>
    </FlowStep>
    <FlowStep x:Key="Blue">
      <WriteBlue/>
    </FlowStep>
    <FlowStep x:Key="Green">
      <WriteGreen/>
    </FlowStep>
  </FlowSwitch>
</Flowchart>