본문 바로가기

RPA

[UiPath] Level1 - Lesson2 Variables, Data Type & Control Flows

Variables

Variables(변수)란? 어떤 관계나 범위 안에서 여러 가지 값으로 변할 수 있는 수 (수학) 

UiPath와 일반적인 코딩에서는 다양한 형식의 데이터가 사용된다. 숫자, 텍스트, 이미지, 파일, 색상 등등.. 이를 담아두는 상자를 변수라고 부른다.

Variable Type Content
Integer 정수 (1, 2, 3, 45345 ...)
String 모든 종류의 텍스트 "abc123!@#$%^"
Boolean 참 또는 거짓 (True or False)
Generic Value 위의 모든 것 + 몇 가지 다른 것
Array of ... 모든 유형의 목록

UiPath에서 사용되는 이런 변수는 각각 특정 형식의 데이터를 담는다. 코딩을 하는 사람들도 Generic Value는 처음 봤을 것이다. Generic Value는 UiPath에서 제공하는 여러가지 많은 변수를 담을 수 있는 변수이다. 본인도 처음엔 굉장히 매력적으로 들렸지만(따로 Type 지정을 하지 않아도 되는 부분이) 실제로 UiPath를 사용하다보면 사용할 일이 없다. 그냥 변수 Type 지정해주고 쓰는 것이 속편하다.

더 많은 변수의 유형은 UiPath Docs-types-of-variables(https://docs.uipath.com/studio/docs/types-of-variables)에서 확인할 수 있다.

 

Sequence & Flowchart

Sequence: 프로세스가 선형적이고 연속된 여러 액션이 실행되는 경우에 적합, 짧은 자동화 컴포넌트에 적합

Flowchart: 액티비티가 복잡하게 연결되는 프로세스의 경우에 적합, 개괄적인 구성에 적합

* 각각의 모듈을 Sequence로 만들고 전체적인 흐름을 탈 때는 Flowchart를 이용한다.

 

IF / Else

if/Else는 두 모드(Sequence와 Flowchart)의 액티비티에 동일하게 적용되는 매우 드문 경우이다. 비슷한 경우로 Switch도 있다. Flowchart는 Flow Decision을 사용하고, Sequence는 If를 사용한다.

Flow Decision과 If는 다르게 생겼지만 똑같은 방식으로 작동한다. 사용자가 설정해둔 Condition에 따라 두 액션 가운데 하나를 수행한다.

 

Loops

Flowchart에서는 특정지점을 이전지점에 연결해주는 방식으로 간단하게 반복을 할수 있다.

Sequence에서는 While, Do While, For each 액티비티를 이용하여 반복을 한다.

 

Do While과 While은 거의 동일하다. 두 액티비티 모두 Condition이 True일때만 Body의 액션을 수행한다. 하지만 두 액티비티의 실행 순서는 조금 다르다. Do While은 Body의 액션을 실행한 후 Condition을 검사하고 While은 Condition을 검사한 후 Body의 액션을 실행한다. 

For each는 목록의 항목을 반복하며 Body에 있는 액션을 실행한다.

 

Generic Value Methods

Method name Primitive data type
  String Int (정수) Float (소수) Boolean (True/False)
Split method를 적용하기 전에 Int가 String으로 자동 변환됨 method를 적용하기 전에 자동으로 Float가 String으로 변환됨 Boolean은 String "True" 또는 "False"로 자동 변환됨
Replace
Substring
Length
Contains
Trim
IndexOf
ToUpper
ToLower
ToInt Floor (Rounds down) True -> 1
False -> 0
ToString "True" or "False"

Generic Value형식의 변수에 사용가능한 여러 메소드들이다. 

 

Control Flow

Contorol Flow는 computer science에서 차용한 개념으로, 자동화에서 동작이 수행되는 순서를 말한다.

액티비티 패널에서 Workflow > Control에 들어가면 볼 수 있다.

Workflow > Control

- Assign: 변수에 값을 할당할수있는 액티비티다.

- Multiple Assign: Assign이랑 똑같은 기능을 하는 액티비티다. Assign 여러개를 한 액티비티에 모아놓은 것이다. 깔끔하게 정리하고 싶을 때 유용하다.

Assign과 Multiple Assign

- Break: 종료 조건을 만족하지 않았지만 Loop를 중지시키고 싶을 때 사용한다.

- Continue: For Each 루프 내에서 현재 반복을 건너 뛸 수 있다.

* Break와 Continue의 차이점이 헷갈린다면 아래 사진을 참고하면 된다.
(둘 다 For Each 내부에서만 사용할 수 있다.)

(좌)Continue 테스트 / (우)Break 테스트

 

- Cancellation Scope: 보통 Parallel와 함께 사용하게 된다. Parallel에 배치된 여러 Scope중 가장 먼저 수행된 Scope가 있으면 다른 Scope내 작업을 취소할 수 있다. 웹 사이트의 데이터를 스크래핑해야하는데, 스크래핑 유형이 3~4가지가 될 때 사용하면 유용할 것 같다. Try/Catch와 다른 점을 찾는다면 목적자체가 다르다.
(해당 내용은 UiPath Forum(https://forum.uipath.com/t/cancellation-scope-try-catch/191980)을 참고하였습니다.)

- Parallel: Sequence를 병렬로 두고 실행할 수 있다. 실제로 실행시켜보면 진짜 병렬작업을 실행하지는 않는다.

- Parallel For Each: 잘 모르겠다. 더 알게되면 업데이트 예정.

 

- Delay: 지정된 기간동안 자동화를 일시 중지한다.

 

- Pick: PickBranch 액티비티를 병렬로 두고 실행할 수 있다.

- Pick Branch: Pick 액티비티와 함께 쓰는 액티비티다. 가장 먼저 완료된 트리거 이벤트가 액션을 발동시킨다. Parallel을 Switch와 비슷하게 변형시킨것이라고 생각하면 된다. 
(해당 내용은 UiPath Forum(https://forum.uipath.com/t/pick-activity/85795/3)을 참고하였습니다.)

 

- Do While: Body에 있는 Sequence를 실행한 후 Condition 검사를 한다. Condition이 True라면 다시 Body의 Sequence를 실행한다. Condition이 False가 될 때까지 반복한다.

- While: Condition 검사를 한 후 Body의 Sequence를 실행한다. Condition이 False가 될 때까지 반복한다.

*While과 Do While의 차이점은 아래 사진으로 확인할수 있다.

(좌) While 테스트 / (우) Do While 테스트

- For Each: 목록을 이용하여 반복하는 액티비티이다. 목록의 항목의 수 만큼 반복된다.

 

- If: Condition의 값에 따라 Then 또는 Else로 나뉘어 실행된다.

- Switch: Condition의 값에 따라 여러 Case로 나누어 실행할 수 있다. Case는 사용자가 지정해줄수있다.

 

- Retry Scope: 조건이 충족되지 않거나 오류가 발생하면 액티비티를 재시도한다.
UiPath Docs-retry-scope(https://docs.uipath.com/activities/docs/retry-scope)에서 예제를 다운로드 받을 수 있다.

 

Lesson2 - Quiz

문제 정답
Which activites allow you to iterate through an array of strings? - Do While
- For Each
- While
When should you use the Flowchart workflow? - When having a process with many decision blocks
- When modelling a process that has loops to previous states
When having multiple activities executing in a fixed sequential order, what kind of workflow shoud you use? - Sequence
In which types of variable can you store text? - Generic
- String
How can you display an Integer value, myNumber, inside a Message Box window? - "My number is " + myNumber.ToString
You can insert a Sequence activity in a Flowchart activity. - True
What is the activity designed to represent a decision inside a Sequence? - The If activity
Which of these are workflow types available in UiPath Studio? - Flowchart
- Sequence
What type of content can you store inside a Generic type variable? - Text
- True/False
- Numbers
- Dates
Which activity can you use if you wnat to test if a condition is true of false? - If activity
- Flow Decision activity

 

.

.

.

UiPath Studio Docs (https://docs.uipath.com/studio/docs)를 참고하여 작성하였습니다. (v2019)

틀린 정보가 있다면 알려주세요.