** 참고 URL : https://docs.uipath.com/studio/docs/the-while-activity

 

The While Activity

The While activity enables you to execute a specific process repeatedly, while a specific condition is met. The main difference between this and the Do While activity is that, in the first one, the condition is evaluated before the body of the loop is exec

docs.uipath.com

 

사용 할 while 액티비티들은 다른 랭귀지에서 사용하는 while의 사용법과 동일하다!

for문 못사용하겠고.. 자신 없을때.. while문이 참 용이하닷

근데 for문을 잘 쓰는게 정말 중요하닷 ㅠㅠ

 

 

① while : 처음 조건을 확인하고 구문 반복 실행

count 가 9까지만 돌고, 10일때는 못한다.

 

② Do while : 구문 반복 실행 후 조건 확인

count 가 10까지 돌고 while문을 탈출한다.

 

 

주석은 영어로 Annotation

 

** add Annotation

- 단축키 : Shift + F2

 

저 압정? 같은걸 클릭하면 아래 그림과 같이 고정됨 ㅎ

 

 

 

 

근데 굳이 저거 클릭 안해도 그냥 자동적으로 고정하게 만들어짐.

주석 달은거 숨기려면 저 압정버튼 클릭해서 해제하면 됨. ^^

 

** add Annotation

Comment 라는 Activity도 있다..

Comment out 이라는 Activity도 있는데, 이건 Disability 한 activity에 관한 주석인 것 같다

 

 

 

제시된 조건에는 오케스트레이서 asset 과 같은 외부 asset 쓰지 말라고 하는데,

로그인에 사용되는 Credential 과 Queue를 이용하는 문제에서 사용하는 Orchestrator의 Queue 사용해야한다

헷갈리게 만들어서ㅠㅠ 처음에 전혀 안쓰고 전부 config 파일에 아이디랑 비밀번호 입력해뒀는데...

설령 그렇게 하는게 맞더라도, 로그인을 Credential 없이 만들게 하다니... 그건 좋은 프로그램이 아닌 것 같다...


 

02.24 Certification Test

 

Using REFramwork

- INIT : ACME Login - Navigate to (Vendor - Search for Vendor) - Navigate to Display All Vendors - Scraping data(step by step) - Navigate to DashBoard

- Get Transaction Data : Scapping data

- Process : Type TaxID - Extract Data - Compare Data - BRE 1 - BRE 2 - Write Excel

Certification exam-t1.zip
1.65MB

** need more practice... making excel file and using them...

 


 

02.25 Certification Test

 

Using REFramwork

- INIT : ACME Login - Navigate to WorkItem

- Get Transaction Data : Exist Element ?

- Process : Scraping data(step by step) - Filtering Data - Write Excel

Certification exam-t3.zip
0.31MB

 

 

까다로워도 이해하고 플로우를 짜다보면 재미있는 assignment 였다.

 

1. workthrough 말고 처음에 문제를 주는 pdf를 읽고 내가 이해한 내용을 종이에 적었음

2. 그리고 이게 맞는지 pdf 의 순서도랑 비교하고 유튜브의 실행 영상만 보면서 확인함

3. 아하..! 내가 무슨 프로그램을 어떻게 만들어야하는지 이해가 갔다!

4. workthrough pdf를 읽어보니까 dispatcher와 performer라고 하는 애들을 사용해서 만들라고 해서 뭔지 이해해야겠다.. 아하, 결국 프로젝트를 2개를 만들고 그걸 각각 프로그램 수행 순서에 따라서 디스패쳐와 퍼포머라고 부르는거구나 그럼 그렇게 내가 이해한 이 프로그램의 프로세스를 작성할 때, 프로젝트를 두가지로 나눠서 진행해야한다는걸 염두에 두고 플로우를 짜야겠구나..!

5. 플로우를 그렸다.. @-@ 이게 맞는걸까... workthough에서는 어떻게 만들라고 하나의 프로그램을 두개의 프로젝트로 나눴는지 내거랑 비교해보니까 똑같다! 그리고 workthrough를 대충 읽어보니까 내가 짠 플로우에서 세부적으로 더 추가하면서 보완했다.

6. 만드는 중... 쉽지 않다... 여러가지 오류가 많다... 실행 한 번 하면 15분은 하염없이 프로그램이 잘 돌아가는지 화면만본다... 15분이 지나고 에러가 떳을때 디버그의 늪에서 벗어나 마우스라도 움직일 수 있는게 살맛나는 일이구나 알게 되었다..

7. 짜잔 완성~! 하고 끝난게 아니라 영상을 찍어야한다. 1시간이 넘게 모니터만 보면서 제발 에러야 나지말아줄래 초조해 해야한다.. 그리고 뭔가 1시간이 넘어서 프로그램이 끝났을때 와아 하고 기뻐하며 업로드 했지만, 데이터가 중간에 누락되어서 0점을 받았다. 마지막에 데이터 확인도 잘 하고 제출해야한다는 것을 깨달았다. 그리고 너무 점수가 핵상처다.. 그래도 플로우짠거 100번은 양보해도 40점은 줘야하는거 아니냐?! ㅜ-ㅜ 데이터 완벽하게 처리 안됐다고 0점을 주다니ㅠㅠ 로봇은 인정 그딴거 없다... 계산된대로만 움직인다.....

 


 

- 하나의 프로그램을 Dispatcher & Performer 로 나누어서 완성시키는 과제였다.

- Orchestrator에 Queue를 사용한다.

- program : work item의 id를 조회해서 해당하는 TaxID를 접근해 monthly reports를 yearly report에 모아 업로드하고, work item의 detail에 comment 와 status를 변경해주는 것.

- Dispatcher : 로그인 - 네비게이터 - [[[[데이터 스크래핑(자동 스크롤 말고, Exist Element activity를 사용해서 page 이동을 해야만한다.. 이때 Dynamic Selector를 제대로 사용해볼 수 있다. 재밌었다!) - queue에 저장]]]] - 로그아웃

- Performer : 로그인 - [[[[queue에 저장한 id 값으로 url 이동 - TaxID를 저장 - monthly report에서 조회 - download 한monthly report 의 내용을 새로운 excel 파일을 만들어서 기입한다(이렇게 기입한 excel 파일이 해당 TaxID의 yearly report가 됨) - 이렇게 얻은 yearly report 를 업로드!]]]]] - 로그아웃

[[[["~"]]]] 로 표시된 부분이 transaction item으로 접근해야할 process부분! 즉, transaction item의 갯수만큼 반복 실행할 아이들이라는 것...ㅠㅠ 이러니까 시간이 오래걸리지!!!!!!!!! ...하지만 실무랑 많이 연관되어 있을 것 같다^^.. 좋은 생각.. 좋은 생각.....

 

 

- 이렇게 플로우를 그리고 그대로 만들었다

플로우에 에러는 없었다.. '저장>다른이름으로저장' 버튼의 셀렉터를 잘 못잡아서 time out이 되고 자료가 제대로 처리되지 않은채 프로젝트가 종료되었다..ㅠㅠ 결국 time out default 값이 30초라는 이야기를 듣고, 1분으로 변경해주었고 정상적으로 실행이 되었다.. 어쩔 수 없이 영상 찍는데 1시간 반정도 걸렸다ㅠㅠ uipath가 너무 느리면 잠깐 컴퓨터를 꺼서 단 5분이라도 꺼두었다가 다시 켜서 하는 것도 참 좋은 방법인 것 같다...

 

Generate Yearly Report for Vendor.zip
2.71MB

 

 

두근 두근.. 이제부터는 assignment를 통과하지 못하면 무한 레벨 3 루프에 갇히게 되겠지... 이런 두려움을 안고 시작했다ㅠ 과연 내가 할 수 있을 것인가...!! 흑흑

 

Calculate Client Security Hash.pdf
1.16MB
Walkthrough – Calculate Client Security Hash.pdf
0.88MB

 

이거 보고 한번에 이해한 사람은 외국인 뿐이겠지... 별 거를 다 해봤다

1. worththrough pdf 보고서 하얀건 종이고 까만건 글씨라는 생각에 충격먹고 아무것도 안읽혀서 바로 유튜브 켜서 보고서 아무 생각 없이 따라함 -> 따라하다가 뭔 소리하는지 모르겠다는 생각에 지쳐서 망함 나는 두부멘탈인가ㅜㅠㅠ

2. worththrough pdf 를 ppt로 변환해서 한줄 한줄 밑줄치면서 번역하고, 뭘 해야하는지 리스트를 세워서 이해하려고 했다. -> 기본적으로 셋팅해야하는 config 파일이나 value type 같은 것들이 있다는 것을 그제서야 알게 되었다.. 읽다보니까 pdf가 읽혀졌다 하지만 이해는 되지 않았다. 이것도 하다가 지쳐서 망함

3. 반나절을 이렇게 삽질하니까 유튜브 마지막 run 실행한걸 보면서 어떤걸 만들어야하는지 대충 감을 잡을 수 있었다..^^ 전체적인 플로우를 한 눈에 보고싶어서 worththrough 말고 처음에 문제만 있는 pdf를 보면서 REFramework를 직접 그려서 로그인, 네비게이터, 데이터 스크래핑, 업데이트 등 여러가지 프로세스들을 어디에 배치해야할지 적어보면서 고민했다. 그러고 나니까 플로우를 짤 수 있을 것 같다는 확신이 생겼다..!!!ㅠㅠ 흑흑

4. 내가 짠 플로우대로 만들어보니까 worththrough 랑 완전 달라져서 액티비티를 어떻게 사용해야할지만 참고하고 그 외에는 다 쓸모없어졌다ㅠㅠ 졸지에 workthrough 없이 플로우를 짜게 됐다.. 그렇게 되니까 transaction item value type을 pdf에 data row로 제시한거랑은 다르게 string 타입으로 사용하게 되었다...

5. 이런 식으로 진행해도 되는걸까 worththrough 랑 다른데ㅠㅠ 불안함이 들어서 사수께 직접 짠 플로우를 보여드리니 충분히 돌아갈 것 같다고 계속 진행해보라는 긍정적인 대답을 얻었다.. 자신감을 얻어 진행했다!!!!!!!!!!!

6. 성공했다.. 이게 되는구나... 물론 실제로 영상을 찍을때는 데이터가 어떨 때는 잘 들어가고 어떨 때는 잘 안들어가고 혼자서 막 재실행하고 난리 부르스를 하길래 2번 떨어졌는데ㅠㅠ 기어코 3번째에는 붙었따... 거참 하나도 쉬운게 없네!!!! 아, 어차피 assignment 로봇은 데이터가 잘 들어갔는지, 잘 실행되는지만 확인하기 때문에 transaction data type에 상관없이 합격을 줬다 ㅎ..

 

Calculate Client Security Hash.zip
1.23MB

 

 

갑자기 실습이라니!? ㅠㅠㅠㅠㅠㅠ 지금까지 한거라고는 영상보고 액티비티 옮겨보고 실행해보고 한게 전부인데ㅠㅠㅠㅠㅠ 벼락맞은 느낌ㅠㅠㅠㅠㅠㅠ 레벨 2에서는 뭐했는지 기억도 안나!!!!! 도대체 REFramework가 뭐죠?! ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

이러고 있으니 사수께서 도와주셨다..^^ 우리 능력있는 사수님 짱bb

RoboticEnterpriseFrameworkEx.zip
0.49MB

REFramework 프로젝트를 만들어서 하나하나 뜯어보고 정리 해봤다... 이거 말고도 손으로도 직접 필기하면서 공부해보니까 이해가 빡 됐다! ^^b

 


 

UIDemo Walkthrough.pdf
0.60MB

 

이거만 보고서 따라했더니 실행이 되었다... 처음 REFramwork로 프로그램을 짜보니까 재밌었음. 이번 실습을 통해서 어떻게 사용해야할지 감을 잡을 수 있었음.. 딱히 어려운건 없었던 느낌..

너무 모르겠다면 유튜브에 workthrough 영상이 참~ 많이 있는데 참고만 하면 좋을 것 같다

나 같은 경우는 어떻게 참고 했냐면, 영상 맨 마지막에 Run 해서 어떻게 프로그램이 돌아가는지 영상으로 확인하니까 내가 뭘 만들어야할지 감이 잡혀서 REFramework의 4단계(INIT, GTD, PROCESS, EP)를 그려놓고 어떤 프로세스가 어디에 들어가야할지 적었다. 그리고 나서 플로우를 직접 만들고, 문제가 있으면 왜그럴까 생각도해보고, 에러도 해석해서 고쳐보고, 내가 뭘 잘못했고 어떻게 고치면 되는지 생각해보는 과정들이 짜릿했다ㅎㅋ 나중에 프로그램이 잘 돌아가면 보람이 엄청 엄청 느껴졌당 ㅎㅎ 이렇게 처음부터 공부하면 시간이 너무 오래걸리지 않을까... 걱정했지만 하루 안에 끝났다ㅠㅠㅠ 하긴 내가 아는것도 없는데 처음부터 다 뜯어봐야 나중에 편하지ㅠㅠㅠㅠ

무턱대고 처음부터 유튜브에서 하라는대로 따라했다가 나중에 에러가 나면 진짜 대략난감... 처음부터 보고 따라하겠다고 시작하면 나중에 에러가 나도 어떻게 해봐야할까! 의지도 안생기고 그냥 왜 에러가 나는거야ㅠㅠ 짜증만 내고 에러문만 구글링하고 있는 내 자신을 발견함... 정말 개발자로서 무서운 일이다.... 유튜브는 참고용이지 보고서 따라하면 실력이 절대 늘지 않을 것 같아...

 

UiPath_REFrameWork_UiDemo.zip
0.63MB

 

 

200211 UIPath study


- Level 3 Robotic Enterprise Framwork




** Building productive Robot requires

- 적절한 예외 처리

- 복구 기능

- 효과적인 로킹 및 리포트 기능

- 유지 관리 용이성

- 확장성

- 재활용 가능성

- 개발 편의성


** REFramework (전반적인 흐름)

- plug and play 방식 : 일련의 파일, 일부는 변경, 매개변수화 / 일부는 변경없이 그대로 사용 함

- Main.xsml : Orchestrator에서 프로젝트를 배포하고 시작하면 실행되는 파일

- StateMachine 도식을 사용하여 4가지 단계를 가진다.

: Init, Get Transaction Data, Process Transaction, End Process

1) Init State : 로봇이 구성을 읽고 어플리케이션을 초기화 하는 과정

2) Get Transaction Data : Init State가 성공 시 반환하는 과정

(1) 로봇을 통해 새 트랜젝션이 처리 ▶ Process Transaction 과정으로 넘어감

(2) 모든 트랜젝션이 이미 수행 ▶ 더 이상 데이터가 남아 있지 않을 경우 프로세스 종료

3) Process Transaction : 3가지의 결과가 도출됨

(1) Success : loop를 수행하고 다음 트렌젝션 데이터를 가져옴

(2) Business rule exception : 몇 가지 특정 수행 과정이 있어야함. 그 후에는 다시 Get Transaction Data 단계로 돌아감

(3) System Error Transaction : 사용자가 필요한 조취를 취해 오류를 복구해야함. 이에 따라 모든 어플리케이션이 종료되고 Init 단계로 돌아가 어플리케이션이 재시작함

4) End Process : Init State에서 시스템 오류가 발생할 경우 반환하는 과정, 


** Init State

- 로봇이 Setting을 읽고 필요한 모든 어플리케이션을 시작함.

- 전반적인 예외 처리 구현, 따라서 모든 액티비티에 try-catch 액티비티가 있음

- 로봇은 초기화를 시도하며, 초기화가 실패할 경우 프로세스가 종료됨

- 예외가 발생했는지 확인하기 위해 예외 객체로 SystemError를 설정 = "Nothing"

- 다음으로 Config 파일을 읽은 후 모든 어플리케이션을 시작함

- SystemError 값에 따라 Get Transaction Data 혹은 End Process 로 이동함

- SystemError 값이 "Nothing"이면, Get Transaction Data 를 진행함

- 시스템 예외가 발생할 경우 초기화가 실패했다는 Fetal 오류 메세지가 표시되고 로봇이 End Process로 진행함.

(1) Reading Config File

- condition = "Config is Nothing"

- Config : Dictionary/key:String/value:Object

(2) Setting sheet

- 해당 비지니스 프로세스와 관련된 모든 구성을 저장할 수 있음.

- 큐이름, URL, 파일경로, 자격증명이름, 기타 모든 프로세스와 관련된 정보

- Excel column : Name(string, Dictionary's key) / Value( / Dictionary's value) / Description(setting 설명)

(3) Constants sheet

- 유용한 기술적 설정이 저장됨. 프로젝트 세부 사항을 조정하고, 성능을 개선하며, 쉽게 환경을 전환할 수 있음. (개발환경▶테스트환경▶운영환경)

- 재시도 횟수, 제한 시간, 지연 시간, 이미지 정확도 설정, 정적 로그 메세지 등

- 프로젝트에서 제한 시간, 지연 시간을 하드코딩 하는 대신에 Config 객체를 사용하면 값을 전역적으로 쉽게 조정할 수 있음.

- MaxRetryNumber : 어플리케이션 예외나 시스템 오류로 인한 실패로 트랜잭션을 재시도하는데 사용함. Config 파일의 기본 값은 0, 재시도 횟수는 Orchestrator에서 설정됨.

(4) KillAllProcess

- 로봇이 정리되고 적절히 제어되는 환경에서 시작되도록 시작 부분에서 수행됨.

(5) 모든 어플리케이션을 실행함

- 프로세스에서 사용되는 어플리케이션에 따라 xaml 파일을 매개변수화 해야 함.


** Get Transaction Data

- 프로세스의 트랜잭션을 완료하는데 필요한 데이터를 가져오는 매커니즘

- 트랜잭션 : 프로세스에서 반복되는 부분

- TransactionNumber : 트랜잭션을 실행할 때마다 번호가 매겨지는데 이 값이 저장됨. (기본값:1)

- TransactionItem : OueueItem형식, 하지만 필요에 따라서 변경할 수 있다

(1) Orchestrator에서 Stop 신호를 보냈는지 확인함

(2) 보낸 경우 End Process 단계로 이동해 로봇을 정상적으로 중지함

(3) Stop 명령을 받지 않은 경우, GetTransactionData 파일을 호출함.

(in:TransactionNumber, ConfigDictionary / out:TransactionItem)


** End Process

- 모든 어플리케이션을 닫으려고 시도하고, 실패하면 KillAllProcesses를 호출하는 방식




200211 UIPath Study

- 오케스트레이터 트레이닝 비디오 생각보다 친절하지 않았다 ㅡㅡ




** 연결 방법 (순차대로 진행해야함 ㅠ 안그럼 꼬임)


1. UIPath flatform 에서 Service를 만들고 접속


2. 접속하면 그 페이지가 Orchestrator 페이지


3. 좌측 네비게이션 Management 에서 초기 작업


4. Machines에서 사용할 PC 등록
- 대부분 Standard machine으로 등록
- Name: (머신이름, 마음대로 지어도 됨)
- Description : (머신에 대한 설명)


5. Robots에서 Robots 등록
- 보통 Standard robot 으로 생성. 단, standard robot은 machine 당 1개만 생성할 수 있음.
- Machine : (4단계에서 만든 machine이 드롭다운에 뜸.)
- Name: (머신이름, 마음대로 지어도 됨)
- Type: (특별한거 없으면 Studio)
- Domain\Username: (C:\Users\PC이름)
- Password : (사용하는 머신의 비밀번호, 노트북 비밀번호, 부팅할때 치고 들어오는^^)
- Description : (머신에 대한 설명)


6. Robots의 상단에 보면 Environments 라고 있음. 거기서 환경 생성. 
- 환경을 생성하면, 머신을 설정할 수 있도록 되어있음. 5번에서 생성한 로봇을 설정함.
- Name: (환경이름, 마음대로 지어도 됨)
- Description: (환경에 대한 설명)


7. Orchestrator에서 나와서 Robots 프로그램을 실행. Orchestrator Settings에 들어감
- Orchestrator URL: (https://platform.uipath.com/hanyapmmbbzq/1번에서 만든 서비스명까지)
- Machine Key: (4단계에서 만들었던 Machines에 생성했던 머신에서 더보기란(...) 에서 Edits을 누르면 Machine Key가 있음. 복붙하면 됨)
- Connection


8. UIPath Studio에서 프로젝트를 Publish함 (Main.xaml에서 작업해야함. 특별한 설정 없으면ok,ok)


9. Orchestrator에서 좌측 메뉴의 하단 Management의 Package에 보면 프로젝트가 업데이트 되어있음.


10. Automation의 Processes에 들어가면 publish한 프로젝트가 있음. 더보기란(...)에 View Process로 들어가면 프로젝트의 업데이트 항목이 나와있고, LATEST를 누르면 최신 버전의 업데이트, ROLLBACK 하면 이전 버전으로 다운데이트함.


+ Recent posts