* Larger pivture of business Processes. (예시)

- Step : 이메일에서 첨부된 엑셀 파일을 다운로드 받는다.

- Task : 두개의 서로 다른 엑셀 파일에서 데이터를 병합하고 로컬 폴더의 최종 파일에 저장한다.

- Process : 멀티플 시스템이 필요하며 사용자의 결과파일 확인이 필요하다.

 

** Human Path and Robots Path

- Human Path : 내가 그린 플로우의 가장 최상위의 task의 steps. 내 입장에서 해야 할 일만 적어놓은 것

1. 다운받을 이메일로 로그인해서 들어간다

2. 이메일 첨부 파일을 다운로드 한다

3. 프로세스 트랜잭션

4. 겟 트랜잭션

5. 파일을 보낸다.

- Robots Path : 내가 그린 플로우의 디테일한 작업. 디테일하게 어떤 액티비티와 어떤 트랜잭션 과정을 통해 플로우를 만들 것인지 명시하는 것

1. 트랜잭션 타입을 지정해서 이메일 프로세스를 연다

2. "파일명.xlsx"를 다운받고 작업하는 파일경로에 저장한다

3. CRM app 을 작동한다.

4. 트랜잭션 엑셀파일을 연다

5. 트랜잭션 엑셀 파일을 열 갯수만큼 CRM app 시트에 삽입한다

- 엑셀로부터 값을 카피한다

- 카피한 값을 CRM app 에 기입한다

- 그 결과 값을 카피해 기존의 엑셀파일에 적는다

- 결과 값이 나오지 않는다면, 엑셀 파일에도 적지 않는다.

- get Transaction 으로 다시 넘어간다.

6. 모든 데이터를 처리했으면 처리한 엑셀 파일을 매니저 이메일로 보낸다 

 

* The benefits of creating a Robot Path before jumping into automation are:

- Better understanding of the task

- Serves as a guide while you build a Robot

- Decreased development time

 

 

 

 

배열은 컬렉션과 다르다!

배열은 정해진 메모리 크기에 불가변한 데이터를 넣는다. 삭제와 추가가 불가능하다. 데이터는 순서대로 처리한다.

그런데 컬렉션은 각 메모리에 주소가 있어서 주소를 이동하면서 데이터를 처리한다. 가변하기 때문에 데이터의 삭제와 추가 및 변경이 가능하다. 그래서 변하지 않는 데이터를 이용할때는 배열에 넣고, 가변하는 데이터는 컬렉션에 넣는다.

 

 

변수의 초기화

먼저, 컬렉션과 배열은 가급적 초반에 초기화해주는 것이 정신건강에 좋다. 왜냐하면 이것저것 작업하고나서 실행하려니까 안된다고 하는데, 대부분의 이유가 지정 범위를 벗어났던가 아님 초기화를 안해줘서 그렇다.

collection과 관련된 액티비티

 

다음 액티비티들은 UiPath에서 쉽게 찾아볼 수 있는 컬렉션 관련 액티비티들이다.

이러한 액티비티들을 사용하기 위해서는 초기화가 반드시!! 필요하다. 

(흔히 사용하는 DT 의 액티비티들도 초기화가 필수이다 !! )

변수타입 초기화 예시
 List  new List(Of 타입) from {값} new List(Of String) from {"가"}
 Array  new 타입(item개수) {값} new String(2) from {"가", "나"}
 Dictionary  new Dictionary(Of 타입, Of 타입) from {{값, 값}} new Dictionary(Of String, String)
                         from {{"가", "나"}, {"다", "라"}}

 

 

 

* 참고 주소

- https://www.edureka.co/community/41105/how-to-loop-through-a-dictionary-in-uipath

 

How to loop through a dictionary in UiPath?

I want to know how can I loop through a dictionary in UiPath?

www.edureka.co

- https://excelcult.com/2019/07/19/how-to-define-dictionary-add-items-to-dictionary-and-access-items-from-dictionary-in-uipath/

 

How To Define Dictionary, Add Items To Dictionary and Access Items From Dictionary - In UiPath - ExcelCult

What is a Dictionary? In general, a Dictionary is a collection of words and their…

excelcult.com

- https://forum.uipath.com/t/how-to-loop-through-dictionary/12243

 

How to loop through Dictionary?

how to Read data from dictionary which I have initialized like variable1= new Dictionary(Of String, String)From {{“0”, “string”}, {“1”, “string2”}}

forum.uipath.com

- https://forum.uipath.com/t/initialize-array-of-list/110770

 

Initialize Array of List

Hello, I have 4 lists and I want to put them into an Array. I am curious how can I initialize this new Array of Lists? I have assigned the lists to the array but what is the syntax to a new array of list? For Array, new String(4){} For List, new List(Of St

forum.uipath.com

 

 

 

** 참고 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

 

+ Recent posts