Activate
i. 사이트나 여타 애플리케이션(SAP 포함)이 활성화 대기 중 및 로딩 중일 때 대기해주는 역할
ii. 특정 버튼이 활성화 되거나 로딩 표시가 사라지는 체크 등 차후 변화될 요소를 할 필요가 없어 로직의 효율성 및 안정성이 증대
개발 간 흔히 겪었던 일인데, 기어 망 내부에서는 인터넷이 그리 빠르지 않다. 대역폭이나 인터넷 버젼, 아니면 RPA를 수행하는 로봇 자체(보통 사무용 노트북 느낌의 사양이다)도 각 기업마다 다르겠지만, 보편적으로 회사 망 내에서는 가져올 자료 자체가 많다보니 시도 때도 없이 마주하는 게 로딩 창이었다. SAP나 공유 폴더 역시 마찬가지다. 그냥 자료 자체가 헤비하고 종류도 많다.
그렇다면 필연적으로 요구되는 것이 인터넷 및 애플리케이션 대기시간이 되겠다. 그것도 UI요소나 기타 시스템이 정상적으로 활성화 되었는지 판단할 기준이 필요하다. 그래서 여태 난, 특정 로딩 창이 사라지거나 육안으로 마지막으로 띄워지는 버튼을 찾아 해당 버튼을 기준으로 삼았다. 솔직히 이는 매우 위험한 방식이다. 개발 간 혹은 후에라도 환경이 조금이라도 변하면 금방 말썽을 부릴 것이다.
Use Application/Browser 내에서 혹은 아무 스코프 없이 단독으로도 동작 가능하다. 저렇게 아무 설정 없이 뿌려놓으면 기본적으로 작동하며, 기본 설정값은 'Interactive' 동작이다.
NONE > 지정한 UI 요소만 기다린다.
INTERACTIVE > 지정한 UI 요소외 모든 UI 중 일부만 로드될 떄까지 기다린다.
COMPLETE > 지정한 UI 요소 외 모든 UI를 기다린다.
기본적으로 INTERACTIVE이니, Use Application/Browser로 설정된 해당 앱/브라우저의 모든 UI 중 일부만 기다린다고 생각하면 편하다. 또한 기본 대기시간은 30000 ms, 30초이다.
Activities - Activate (uipath.com)
단, 위 Docs를 보면 INTERACTIVE와 COMPLETE를 하나의 섹션으로 묶어서 설명해놓았다.... 그래서 더 찾아본 결과
Docs와 Studio의 설명에 약간의 차이가 보인다. 실제 개발 단계에서는 '일부만 로드될 떄까지'라는 기준이 너무 애매해 안정성을 위해 시간이 더 걸리더라도 COMPLETE를 설정했었다. (작동 이상 무)
사실, 이 준비 대기 설정이 기본적으로 어떻게 되어있는지는 명확하게 나와있지 않다.(Docs, Studio) 단, 경험을 토대로 보았을 때 일단 이 준비 대기 설정은 Click, Set Text, Type Into 등 타겟 쪽에도 대부분 속성값을 편집할 수 있다. (페이지 로드 대기로 표현되기도 한다.) 즉, 아무 설정 없이 기본값에 의지한다면 페이지가 다 로드되지도 않았는데, 클릭이나 데이터를 입력하는 것이 허다했다. 이런 점을 보아 기본 설정값은 INTERACTIVE라고 본다.
그리고 사실 상 상호작용이 일어나는 거의 모든 액티비티에 준비 대기 설정이 포함되는데, 굳이 이렇게 Activate Activity로 명시하는 이유는... 유지보수하기 편해서 이다. 액티비티로 해당 앱/브라우저에 명시되어 있으면 현 시점부터 뭔가 로드가 오래 걸릴 것이라는 게 눈에 팍 보여서 쓰게 되었다. 게다가 짜피 한 번 로드되면 뒤쪽 상호작용은 다 열려있기에 최초 한 번만 확인하면 되었었다. (특수한 상황이면, 하나하나 다 확인할 필요도 있겠다.)
Activate, Set Focus 차이
일단, 설명에서 차이가 난다. Activate의 목적은 부모 앱/브라우저 활성화(대기)이며, UI 요소의 부모 앱/브라우저를 최상단(Foreground)으로 옮겨주는 것까지 구동된다. 이에 반해 Set Focus의 목적은 키보드로 편집가능한 영역을 잡아주는 것.. 즉, 커서를 해당 UI쪽으로 옮겨주는 것이다.
Set Focus가 실행될 때는 별다른 반응이 없지만, Activate가 실행되면 부모 브라우저인 네이버가 최상단으로 올라오는 모습을 볼 수 있다. Set Focus는 말 그대로 커서의 위치만 잡아줄 뿐이다. 실제로 Type Into나 Set Text 같은 커서를 다루는 액티비티 역시 그냥 백그라운드 단에서 열심히 타자를 치는 모습을 볼 수 있다.
결론, Activate Activity는 앱/브라우저의 활성화 대기 시간을 벌어주는 동시에 해당 창을 최상단으로 당겨와 모니터링 및 이미지 처리 등의 안정성을 증대시킬 수 있다.
'RPA' 카테고리의 다른 글
Content Generation - 생성형 인공지능 (0) | 2024.09.04 |
---|---|
UiPath Image 처리 (0) | 2024.08.23 |
Xml, Json Deserialize - (유용한) Activity (0) | 2024.08.22 |
Trigger Scope - (생소한) Activity (0) | 2024.08.22 |
GenericValue 자료형, Format Value (생소한) (0) | 2024.08.22 |