생각해보니까 sequenc랑 flow-chart 는 써볼만큼 써본 것 같은데 state machine은 REFramework에서 기본적으로 제공해주는 것들만 사용해봤으니 활용해본 기억이 없었다.. 그래서 공부해보려고함 ㅎㅎ

 

UiPath Academy 에서는 Project Organization 이라는 코스에서 공부할 수 있었다.

 

일단, 먼저 세개의 워크플로우 타입을 비교하려한다~!!

Project Organization
Sequence 너무 많은 조건(예: UI 자동화) 없이 명확한 단계 승계가 있는 경우 일반적으로 시퀀스는 워크플로우를 중첩하는 데 사용되며 높은 수준의 논리는 Flowcharts 또는 State Machine을 통해 처리된다.

이점은 무엇인가?

이해하기 쉽고 이해하기 쉬우며, 위에서 아래로 접근한다.
인터넷에서 항목을 검색하는 것과 같은 간단한 논리에 적합하다.

단점은 무엇인가?
동일한 시퀀스에 너무 많은 조건을 내포하면 프로세스를 읽기 어렵다.
연속 흐름에는 적합하지 않다.
https://docs.uipath.com/studio/docs/sequences
Flow-Chart 여러 조건을 가진 복잡한 흐름이 있는 경우 흐름도는 최소한 시각적으로 이해하고 따르기가 훨씬 쉽다. 연속적으로 실행되거나 몇 가지 조건에서만 종료되는 흐름이 필요한 경우

이점은 무엇인가?

소프트웨어 컴퓨팅의 논리 다이어그램과 유사하므로 이해하기 쉽다.
연속적인 워크플로우에 사용할 수 있다.

단점은 무엇인가?
플로우차트는 프로젝트의 개별 부분(다른 워크플로우 내부에 중첩된)이 아닌 일반 워크플로우(내부 중첩된 시퀀스 포함)로만 사용할 수 있다.
https://docs.uipath.com/studio/docs/flowcharts
State Machine State Machine이 무엇인지 이해합시다. 그것은 한정된 수의 사전 정의된 상태와 이들 상태 사이의 전환으로 구성된 추상적인 기계다. 어느 지점에서나 검증된 외부 입력과 조건에 기초해, 하나의 상태에만 있을 수 있다.
State Machine은 통과하기 위해 제한된 수의 명확하고 안정적인 상태로 사용될 수 있다. 당신의 일상 생활에서 나온 몇몇 예로는 자동판매기, 엘리베이터 또는 신호등이 있다.

이점은 무엇인가?
더욱 복잡한 지속적인 워크플로우에 사용할 수 있음
상태 간의 전환은 쉽게 정의하고 유연성을 제공할 수 있다.
더 복잡하고 단순한 루프 및 If 문으로 포착할 수 없는 프로세스를 수용할 수 있다.
가능한 모든 사례/전송을 State Machine로 다루는 것이 더 쉽다.

단점은 무엇인가?
프로세스를 논리적 "상태"로 분할, 전환 파악 등의 복잡성으로 인한 개발 시간 연장.
참고: State Machine은 과용해서는 안 된다 - 프로젝트의 뼈대만 정의해야 한다.

사실, 대규모 엔터프라이즈 자동화를 구축하기 위해 특별히 설계된 State Machine을 기반으로 하는 템플릿이 있다. 가장 일반적으로 사용되는 것은 Robotic Enterprise Framework이다. 이 과정에서는 나중에 깊이 있게 다룰 두 가지 개별적인 수업이 있다.
https://docs.uipath.com/studio/docs/state-machines

 

** State Machine 관련 Activity

State Machine 과 관련된 액티비티들

간단히 설명하자면, Sequence 안에 여러개의 Squence로 구성하는 것과 같은 맥락으로

State Machine 안에는 다수의 State로 구성한다.

단, State는 각 절차의 상태 결과로 인지하기 때문에 State Machine으로 프로젝트를 만들시 전체적인 뼈대만 정의할 뿐, 과용해서는 안된다. 각 State 내부는 여러개의 Sequence나 Flow-chart로 구성할 수 있다.

 

이런 방식으로 사용할 수 있다 !

 

state machine 이기 때문에 각 절차의 상태 값에 따라 좌우되는 것인데

시작할때는 Start Node로, 끝날때는 Final State로 맺어야한다!

state 액티비티를 사용하면 다음과 같은 화면을 자주 볼 수 있다.

- Entry : 수행할 프로세스

- Exit : 다음 프로세스로 넘어가기전 끝낼때 수행할 프로세스

- Transition(s) : state에 따른 다음 state 이동을 표현.

 

그리고 다음 그림의 T3, T1 이 state가 된다. 즉, 상태값이 된다.

그래서 각각의 상태값인 T3, T1을 눌러주면 그 상태에 세부적인 프로세스 수정을 할 수 있다.

 

하이라이팅 된 곳을 누르면
이런 식으로 각 상태에 대한 세부적인 구성을 추가할 수 있다.

- Trigger : 트리거(trigger)는 한 상태에서 다른 상태로의 전환을 시작하는 이벤트다.트리거는 전환이 시작되기 위해 발생해야 하는 이벤트다.입력 작업이 완료되면 조건(전환이 완료되기 위해 트리거가 발생한 후 참으로 평가해야 하는 제약 조건)이 필요하다.일반적으로 트리거는 어떤 유형의 이벤트가 발생할 때까지 기다리는 활동이다.트리거 값은 null일 수 있다. 트리거가 null인 경우, 상태의 입력 작업이 완료되는 즉시 전환이 평가된다. (forum.uipath.com/t/state-machines-exit-workflow-and-trigger/99703/9 일부 발췌)

- Action : condition 성립시 수행 할 활동들

 

state machine은 이런식으로 잘 사용해보면 좋을 것 같다.ㅎ

 

 

+ Recent posts