200210 UIPath study

- 12, 13, level test 진행 
- Level 1 Done~ 예ㅔ~




** try-catch-finally 예외처리
- try : 첫번째로 실해할 flow
- catch : try문에서 error가 있을 때, 실행할 flow, 반복 실행 flow를 짤 수 있다.
- finally : 예외의 유무와 상관없이 반드시 실행되는 flow


** 예외의 종류
- IOException : 입출력에 error가 있을 때 발생
- NullReferenceException : 설정 값이 없는 변수를 사용할 때 발생
- IndexOutOfRangeException : 입력한 인덱스가 컬렉션의 제한을 벗어 났을 때 발생
- ArgumentException : 전달된 인수 중 적어도 하나가 호출된 메소드의 매개 변수 스펙을 충족하지 않는 경우 발생
- SelectorNotFoundException : 기간 내에 대상 앱에서 활동에 대해 지정된 선택기를 찾을 수 없을 때 발생
- ImageOperationException/TextNotFoundException : 기간 내에 이미지 / 텍스트를 찾을 수 없을 때 발생
- ApplicationException : 응답하지 않는 응용 프로그램과 같은 기술적 인 문제에 기인하여 발생


** 예외 처리와 관련된 activity
- Rethrow : 예외처리를 던지고 종료함 (catch문은 반복 flow를 짤 수 있기 때문에 강제종료와 비슷함)
- Extract as Workflow : try문과 catch문에 반복되는 flow를 따로 파일로 저장해서 불러올 수 있다.
- invoke workflow로 파일을 불러옵니다


** invoke
- 독립적인 파일을 관리해 flow를 깔끔하게 짤 수 있도록 도와줌
- 파일 간의 값을 전달하려면 인수(argument)를 사용해야한다.


** 방향
- in : 값이 들어오기만 할 수 있다
- out : 값이 나가기만 할 수 있다.
- in/out : 값이 들어왔다가 (필요하면 값의 계산 후)
 나갈 수 있다.


** Best Practices
- Pick an appropriate layout for each workflow
- Break the whole process in smaller workflows
- Use exception handling
- Make you workflows readable
- Keep it clean





Level1_Ex14.xaml
0.03MB
Level1_Ex15.xaml
0.03MB
Level1_Ex16.xaml
0.03MB
Lesson12 Practice.xaml
0.01MB
Lesson13 Practice1.xaml
0.01MB


200207 UIPath study

- 8, 9, 10 까지 진행




** citrix recordinf : find IMG
- find imgae 액티비티로 drag해서 찾은 이미지를 변수에 넣어야한다면, 데이터 타입은 UIElement
- find image를 통해서 찾은 이미지로 페이지를 식별할 수 있다. 단, 가상환경에서 find image를 한 경우, 변동이 있을 수 있는 이미지를 선택하는 것이 아니라 항상 같은 이미지와 같은 장소에 있는 이미지를 선택해야한다. 예를 들어서, 탭 부분에 있는 회사의 로고라던지..!


** Selector
- anchor base 혹은 relative selector로 selector를 설정해줄때, type into나 click과 같은 액티비티를 설정해야하는데 위치가 변동이 없을 경우에는 정적 Selector를 사용한다. 위치가 가변적일 때는 동적 Selector를 사용하면 좋다.


** citrix recordinf
- 가상 환경에서의 액티비티 조작은 까다로울 수 있기 때문에 다음과 같은 방법으로 접근한다.
- 바탕화면에서 app을 조작할 때 다음과 같은 방법으로 접근할 수 있다. 상황에 맞춰서 사용하면 좋을 듯 하다.
1) find IMG
- 바탕화면에 있는 아이콘의 img를 drag 하여 인식하게 한다.
- 하지만, 이 경우는 부주의한 경우일 수 있다. drag 한 img에 바탕화면 색깔이 섞여 다른 바탕화면으로 전환했을때 인식할 수 없던지, 혹은 icon 위에 다른 식별표시가 겹치면 확인하지 못할 수 있다.
2) Set short cut key
- 바탕화면에 있는 app의 단축키를 설정한다.
- 기존의 단축키와 겹치게 되면 문제가 되지만, 그렇지 않고 복잡한 단축키를 사용하면 오히려 더 정확한 방법이 될 수 있다.
- send hot key 액티비티를 사용해 단축키를 지정해서 app을 열 수 있다.
3) DOS
- 가상 환경에서 DOS를 열어 app 파일의 경로를 지정한다.
- app 파일의 경로는 변수에 저장하며, 가상환경에서 DOS 창을 여는 flow도 PC 환경에 맞게 구성해야한다.
- 아니면 win+R 단축키로 실행창을 열어서 app 파일의 경로를 type into 한다.


** Excel Application Scope (Properties)
- CSV 파일과는 다르게 엑셀 데이터를 다룰 때 필수 입니다.
- 여러가지 속성과 액티비티가 있는데, 속성과 액티비티 개념을 잘 살펴보면 쉽게 사용할 수 있습니다.
- Excel/Workbook 명을 표시하는 상단에는 파일 이름을 적습니다. Read->현존하는 파일명을 기입하고, write->새로운 파일명을 기입하고 폴더 내에 동일한 엑셀 파일이 없다면 새로 만들어 줍니다. 
- Visible : 체크하면 눈에 보이게 실행(Excel 설치 필수), 체크 안하면 백그라운드 실행(Excel sw 없어도됨)

- output data Table 액티비티 : 콘텐츠를 output 패널에 출력하는 것이 아니라 적절히 표시할 수 있는 문자열로만 변환합니다.


** Excel/Workbooks VS DataTables
- Excel/Workbooks : 엑셀 파일을 가리키는 말로 모든 유형의 데이터, 서식, 시트, 레이아웃, 병합된 셀과 여러 데이터 테이블을 가질 수 있다.
- Data Tables : 가장 단순한 유형의 스프테드시트 타입으로 행과 컬럼, 선택적으로 머리글만 가질 수 있다.


** 다양한 Excel data 활용 activity
- Read range/row
- write range/row
- Bulid data table
- Append range/row
- Filter Data Table
- Output Data Table

- for each row, while 로 row data를 읽을 수 있음. 
- for each row : Get Row Item(Colum/Row/Value Properties 필수), Add Data Row


** PDF
- pdf 파일에서 정보를 읽어오기 전에 파일 내의 data를 마우스 커서로 긁어보면서 이미지인지 텍스트인지 확인해야합니다
- 텍스트틑 쉽게 선택되지만, 이미지는 블록 형태로 선택됩니다.
- 전체 파일을 읽어올 경우 VS 특정 정보만 읽어올 경우


** Read PDF (with OCR) Properties
- 많은 양의 텍스트를 읽어올 때 사용함. 페이지를 읽고 문자열 변수를 출력한다.
- range : "all" -> 전체
"2" -> 2페이지만
"3-7" -> 3~7페이지만
- 독립형 어플리케이션이기 때문에 둘 다 백그라운드에서 작동할 수 있다.
- OCR에서 글씨를 잘 못읽어 올 수 있기 때문에 OCR을 사용하는 것 보다는 Read PDF를 사용해서 읽어오는걸 더 추천한다.
- 전체 데이터를 읽어오지 않는 경우에는 screen scrapping 을 사용한다. 제일 빠른 방법
 

** Read PDF file using Anchor Base
- get partial data
- Anchor Base (Find Element, Find Image)
- pdf의 경우 문서 내의 이미지가 변하지 않고 동일한 형식의 데이터를 가지고 있기 때문에 일반적으로 우려되는 find image의 에러 없이 사용할 수 있습니다.


Lesson9 Practice.xaml
0.01MB
Level1_Ex10.xaml
0.04MB
Level1_Ex11.xaml
0.03MB
Level1_Ex12.xaml
0.03MB
Level1_Ex13.xaml
0.02MB

 

 


200206 UIPath study


- Lesson 5, 6, 7 까지 진행
- Citrix Recording 방법(미숙지)
- data scaping으로 CSV/Excel file 생성
- 다양한 Seletor 구현(Anchor, Relative Selector)
- recording이 아닌 수동으로 로직 생성

- 금요일까지 진도를 최대한 빼보고 다음주 플랜 짜기
- 2/21 까지 level 3 끝내기~





** Selector

모든 사용자 interface는 컨테이너의 요소를 사용해 만들어지며, 대게 컨테이너 안에 또 다른 컨테이너가 있습니다. UIPath는 이런 컨테이너와 요소의 다양한 속성을 사용해 올바른 요소에 대한 전체 경로를 찾습니다. 경우에 따라 속성은 동적이므로 wild card를 사용해 동적 부분을 무시하거나 매우 유용한 기능인 Attach to live Element를 사용해 자동으로 구현할 수 있습니다. 또한 Selector 내에서 변수를 사용하는 방법과 목록에서 N번째 요소를 인덱스 속성을 사용해 선택하는 방법을 알아봤고, 이는 Selector의 안정성이 높지 않음을 나타냅니다. 

(1) full selector
- UI 구성 요소를 찾는 데 필요한 모든 요소를 포함하고 있다.
- 최상위 요소를 포함하지 않으며(전체 Selector에 최상위 요소가 없는 Selector) 컨테이너 안에 들어있어 컨테이너는 attach window 또는 open applicarion와 같은 컨텍스트를 지원한다.
- 다른 어플리케이션과 창이 서로 방해할 수 있는 경우에 사용한다..
(3) 동적 Selector
- 요소 자체가 시간에 따라 변하고 고정되어 있지 않을때 사용한다. 와일드 카드(*, ?) 사용. 파일의 명, URL이 변할 수 있기 때문에, 와일드 카드를 이용하여 동적 Selector를 구현합니다.
- Selector로 어플리케이션을 인식할 때 title을 수정하는데, *를 해당 주소의 앞뒤에 기입한다
- 주소와 상관없이 모든 어플리케이션을 인식할때는 title에 *만 기입한다.
- Selector 값에 변수를 추가해주면서 매개변수의 역할을 하게 할 수 있습니다. 단, Selector 내부의 element 속성 변경은 UI Exploer에서 작업합니다


** wild card
- * : 임의의 문자 수
- ? : 단일 문자


** Set Name : 변수명 -> 자동변수 생성


** RPA challenge
- Anchor Base 또는 Relative Selector 를 통해 임의의 위치에 있는 element를 찾아낼 수 있다.
- Anchor Base 는 화면상에서 가시적으로 작동하지만, 백그라운드에서 작동이 안됩니다.
- Relative Selector는 백그라운드에서 작업이 가능하지만, 어플리케이션의 내부 구조에 의존해서 작동이 되기 때문에 Selector 설정을 해야합니다. 직접 Selector를 Edit 해서 구현합니다. UI Exploer에서 속성을 변경합니다. ID 값이나 Name 값과 같은 고정된 값을 가지는 element는 사용하지 않습니다.


** Cirtix Recording
- 가상머신은 서버에서 실행되며 인터페이스의 이미지만 사용자에게 전달. 따라서 UIPath가 운영체제를 사용자의 이미지를 처리해줄 수 없다. 





Level1_Ex08.xaml
0.02MB
Level1_Ex09.xaml
0.03MB
Lesson5 Practice.xaml
0.01MB
Lesson6 Practice.xaml
0.04MB

 

 

 



200205  UIPath study


- lesson 4까지 마무리 했음
- 레코딩, 데이터테이블, 반복문, 제어흐름 등
- 실습 과제 없이 아카데미와 QnA로 진행
- 변수의 사용
- 여러가지 새로운 액티비티를 경험함
- 레코딩 기능 없이 직접 RPA를 구현함






** 좋은 로직
- RPA도 기능 별로 먼저 세분화 한 뒤에 분업
- sequence는 선형 플로우기 때문에 처음으로 돌아가서 반복하는 플로우를 짜는 것은 지양한다. 그렇게 반복을 해야하는 경우는 while문을 이용하면 된다.


** loop(반복문)
- 루프는 반복적인 작업을 자동화하는데 가장 흔히 사용되는 구조. 비슷한 작업을 반복하여 자동화하는 일반 프로그래밍의 핵!심!기!능!!
- flow chart : 특정 지점을 이전 실행 지점에 연결하여 간단하게 구현할 수 있음
- sequence : looping container가 Body section 내부에서 action을 반복함.

** loop in sequence
- while : condition 충족 시, body 실행
- Do while : body 실행 후, condition이 충족되면 body 다시 실행
- for each : 리스트 목록의 항목을 한 번에 하나씩 body 반복

** Data Manipulation // variables
1. scalar variables
- 고정된 형식의 단일 값을 가진다
- chracter, booleans, numbers, date times

2. collections
- array와 list는 대부분 동일하지만, array는 고정된 크기를 갖는 반면 list는 요소를 추가/제거 하며 크기를 변동할 수 있다.
- arrays, lists, queues
- strings : 텍스트는 문자열이기 때문에, string의 확장된 형식으로서 strings를 사용한다.
- dictionaries : key 값과 value 값이 1:1로 상응하는 형식으로, orchestrator의 queue에서 데이터를 가져오는데 사용한다.

3. table
- 행과 컬럼으로 인덱싱된 데이터를 포함하는 2차원 구조
- dictionary의 array와 비슷하게 행 인덱스와 컬럼 이름으로 값에 엑세스 할 수 있다.

4. Read CSV properties
- FilePath : 불러올 CSV 파일의 경로
- Encoding : 한글 사용하는 경우 -> "euc-kr" 설정
- HasHeaders : 제일 첫 행을 헤더로 간주함
- DataTable : 불러온 CSV 파일을 DataTable 타입의 변수에 저장

5. Outpu data Table Properties
- DataTable을 String 형태로 변환
- DataTable : String으로 변환 할 DataTable 타입의 변수 지정
- Text : String 타입의 변수에 저장
-> Msg Box에 출력시, String 타입으로 출력 (+.toString)

6. datatable practice
- 로딩한 CSV 파일을 DataTable 타입의 변수에 저장
- name컬럼의 0번째 항목을 acess : sampleData.Rows(0)("name").ToString
- name컬럼의 모든 항목을 acess : row("name").ToString
- Age컬럼의 항목 중 40 이상이며, info컬럼의 항목 중 20K 이상인 항목 acess : sampleData.Select("Age>40 and info>'20K'")

- 컬럼 값을 forEachRow activity로 출력 : item("name").ToString
- 컬럼 값을 forEach activity로 출력 : item("name").ToString + " " + item("age").ToString + " " + item("info").ToString
-> 출력 방법은 동일하지만, 변수 타입이 DataTable인 경우에 ForEachRow를 쓰면 따로 properties의 조정 없이 사용할 수 있다.


7. recoding practice
- 처음과 끝에 로그 메세지 찍어주는게 좋음 -> error를 빨리 찾을 수 있음
- send hot key 보다는 click 액티비티를 사용하길 권장
- web을 열 때는 open browser를 사용
- click 없이 바로 type into text를 사용하는 것이 좋음
- simulateType 속성이 true이면 실행속도가 빨라짐


 

Level1_Ex03.xaml
0.02MB
Level1_Ex04.xaml
0.01MB
Level1_Ex05.xaml
0.01MB
Level1_Ex06.xaml
0.01MB
Level1_Ex07.xaml
0.02MB

 


200204 UIPath study


1. UIPath Academy level 1-2 까지 진행
2. 3주 안으로 level 3까지 마칠 것
3. 사수께서 주신 word 파일로 기본 개념 훑음
4. 2개의 실습 진행
5. REFramwork 대략적인 개념 훑음





** work flow
- flow chart : 보다 복잡한 프로세스에 적합
- sequence : 비교적 짧은 선형 액티비티(프로세스)에 적합

- 하나의 큰 flow chart에 다수의 flow chart와 sequence를 조합하여 macro를 생성한다

** variables
- 워크프레임 상에서 다루어지는 모든 변수들은 하단의 [Variables]에서 관리한다
- 전체 work frame에서 변수를 생성할 수 있다 (전역변수 생성)
- flow chart나 sequence를 선택하고 변수를 생성하면, 선택한 work frame에 속한 변수가 만들어진다 (지역변수 생성)

- Assign 액티비티를 이용하여 변수 의 값을 변경할 수 있다.

** MSGbox Properties
- DisplayName : 워크프레임 상에서 보여지는 액티비티의 이름
- Caption : 실행하는 window의 caption 값
- Text : 실행하는 window에 보여질 text 값

** Input Dialog Properties
- Title : 띄울 Dialog의 title
- Label : Dialog 안에 표시할 내용
- Result : 입력값을 저장할 변수 지정

** Excel Activity
- work book : 백그라운드에서 작동. 사용자가 안봐도 되고, 데이터 처리 속도가 빠름. 컴퓨터에 MS 엑셀이 설치되어있지 않아도 프로세스대로 처리. 데이터를 읽어올 때만 주로 사용. 실무에서는 백그라운드에서 실행하기 때문에 접근성 권한이 없어 작동하지 않을 수 있음.
- Excel application scope : application scope를 사용햐줘여함. 이 안에서 데이터를 읽고 사용함. 로봇을 통해 가시적으로 보여짐. MS excel 프로그램을 열어서 직접 처리. 함수나 매크로를 사용할 때 사용함.



**** 0204 실습과제

<숫자게임>
1. 게임 시작
2. 랜덤 숫자 생성
3. 사용자 입력 <- 유효성 검사 실시(범위 밖 숫자, 공백 예외 처리)
4. 정답인가?
5-1-1 정답, 리게임 할건지?
5-1-2 게임종료
5-2-1 오답, 사용자의 값이 큰가?
5-2-2 낮춰
5-2-3 높혀

 

numberGame.xaml
0.02MB

 

 

<별 피라미드 쌓기>
1. 사용자에게 숫자를 입력 받음
2. 받음 숫자만큼 피라미드 층을 쌓음
3. 만든 피라미드를 메모장에 출력함
hint : openApplication, type into activity
googling : (userNum-i)개의 공백
 (2*i-1)개의 별
 \n 출력

 

DrawStar.xaml
0.01MB

+ Recent posts