과제를 개발하다 보면 병렬처리 혹은 동시 판단해야 할 케이스들이 생긴다.

그 경우 Parallel이나 Pick 중에 뭐를 쓸지 고민하게 된다.

둘의 차이는 인식 시점에서의 수행이다.

 

Parallel은 기본적으로 동시에 계속 진행된다.

따라서 어떤 인식 기점이 동시에 True가 될 수도 있고, 하나만 True가 될 수도 있다.

어찌됐든 Parallel 안에서는 Exit 조건이 달성되기 전까지 동시에 진행하게 된다.[각주:1]

 

Pick은 Trigger 영역에서 어떤 하나의 Branch를 인식해서 수행할 Branch를 선택하는 순간

다른 Branch들은 무시된다.

각 Trigger별 수행이 바로 밑에 정리되기 때문에 적합한 상황인 경우 가독성도 Parallel에 비해 훨씬 좋다.

 

따라서 각각의 활용은 대략 이런 형태이다.

i) Parallel이 더 적합한 경우

- 로그인 후 모달형태로 다른 타입들의 공지사항들이 뜨는데 각각 꺼줘야 하는 경우

- 여러 개를 인식하더라도 우선되는 하나만 꺼주면 모두 꺼져서 우선 순위를 지정하면 효율적인 경우

- 여러 개를 인식하면 문제가 있어서 우선 순위를 지정해야 되는 경우

- 보통은 exist 등을 병렬로 늘어놓고 exit조건을 적절히 배합해 진행[각각의 Boolean을 Or 조건으로 연결해도 괜찮]

- 수행 소스는 exit후 If나 switch를 통해 각각 진행. Boolean이 동시에 만족하는 경우도 있을 수 있으므로 주의.

ii) Pick이 더 적합한 경우

 - 여러 케이스 중 하나만 배타적으로 잡아야 하는 경우

 - exist 등을 각각 Trigger에 넣고 진행

 - 각 트리거에 대한 수행 소스는 Pick Branch를 넣어 짤막하게 구성

 - Exit조건이 따로 없기 때문에 Pick Branch의 Trigger에는 클릭같은 걸 넣을 수도 있음

 

 

보통 Parallel이나 Pick이 잘못 쓰이는 케이스는 각각이 리딩하는 액티비티들이 너무 많아지는 것이다.

Parallel이나 Pick은 너무 길게 끌고가면 소스의 중복이나 불필요한 리소스 사용 등이 발생할 개연성이 매우 커진다.[각주:2]

또 좌우로 넓어지는 액티비티의 특성상 길어지면 가독성이 안 좋아지는 단점이 있다.

따라서 동시인식, 동시수행이 필요한 구간만 설정하여 진행해야 한다.

+ pick은 모든 branch의 조건이 충족되지 않으면 가장 왼쪽(첫번째)에 있는 첫번째로 추가된 branch를 실행한다.

따라서 모든 branch가 충족되지 않았을 때 에러를 내고 싶다면 가장 첫번째로 branch를 추가하고 throw를 남겨두는 것이 좋다.

  1. 실제로는 왔다갔다 하면서 체크 [본문으로]
  2. Retry Scope도 마찬가지 [본문으로]

Uipath Studio는 기본적으로 Telemetry가 True로 되어있다.

[ Telemetry란? usage and performance data를 수집, 모니터링 하는 기능. 익명의 사용데이터를 보내게 됨.]

버전에 따라 Telemetry를 끄도록 되어있는 경우도 있으나, 최신 버전들은 강제로 끄지 못 하도록 막아두었다.

 

Telemetry는 특히 하드웨어 사양이 좋지 않은 경우, 개발 속도를 상당히 저해할 수 있는 요소다.

사양이 간당간당 하는 경우 Telemetry만 꺼도 스크롤할 때 버벅거리던 것이 버벅거리지 않을 정도가 된다.

스튜디오에서 끌 수 있는 경우는 Settings - General에 가서 꺼주자.

Telmetry를 스튜디오에서 끌 수 있는 케이스

 

강제로 끄지 못하도록 되어있는 경우,

%ProgramFiles%\UiPath\Studio\uipath.config

이걸 관리자 모드로 켜주고 <analyticsSettings> 태그쪽을 다음과 같이 바꿔주자.

  <analyticsSettings>
   <add key="Telemetry.Enabled" value="false" />
  </analyticsSettings>

[기존엔 <analyticsSettings /> 로 되어있을 거다. ]

 

- 관리자 모드로 config파일 켜기 : 메모장을 우클릭해서 관리자 권한으로 실행한 후 열기를 통해 파일 찾아 열거나, notepad++을 통해 edit하고 저장하면 관리자모드로 다시 열어주는 걸 이용

1. 기존에 있던 Trigger

오케스트레이터에 Start Job을 시키기 위한 Trigger는 다양하다.

오케스트레이터에서 기본적으로 제공하는 Time Trigger, Queue Trigger

Studio에서 Activity로 존재하는 Start Job

비슷한 원리로 Swagger API로도 실행이 가능하다.

이외 AR인 경우 File Trigger나 Mail Trigger, Element Trigger 등을 쓸 수 있다.

 

2. 새로운 Trigger

오케스트레이터의 Integration Service라는 메뉴에서 제공하는 연결 앱들이다.

구글 및 MS 앱들을 비롯해 개발자들이 자주 쓰는 Slack이나 제조쪽 CS에서 많이 쓰이는 Zendesk

프로젝트 및 일감 관리를 위한 Jira, CRM 관리 툴로 유명한 SalesForce

미국에 영업본부를 크게 둔 회사에서 자주 보이는, 사내 커뮤니케이션 툴 Twilio

이외 dropbox나 Twitter같은 보편적인 서비스와도 연결하여 Trigger를 생성할 수 있다.

 

가령 구글시트를 연결한다고 해보자.

구글 시트 선택 후 Add Connection을 누르고 Google로 로그인하면, 바로 연결이 완료된다.

트리거를 거는 방식은 생각보다 러프하다.

파일은 선택할 수 없고 Spreadsheet만 선택 가능하다. 

(2022-08-23) 확인 결과 condition filter가 생겼다.

구글 드라이브의 경우. 조건을 걸어서 트리거를 걸 수 있음

https://docs.uipath.com/integrations/docs/uipath-google-sheets-events

 

Google Sheets Events

The Connector supports New Record Created events via Polling for Google Sheets on the following object: Spreadsheet The Connector supports Existing Record Updated events via Polling for Google Sheets on the following object: Spreadsheet The Connector suppo

docs.uipath.com

이벤트는 New Record Created, Existing Record Deleted, Existing Record Updated 3가지다.

위의 docs에서도 설명돼 있듯이 확인은 5분 간격으로 하고 설정을 변경할 수는 없다. [2022. 04. 11. 기준]

 

Google Sheet, Google Drive, Gmail, Microsoft Office 365 정도는 당장 쓸만해 보인다.

Office 365를 쓰는 경우. 365를 쓴다면 메일봇은 필요가 없다

Outlook은 2025년 2월 기준, outlook 365 exchange server를 쓰는데 기본 login auth로 인증하는 것은 trigger가 잘 안 되는 것으로 보인다. Bring Your Own Oauth 2.0 App으로 연결하니 잘 된다. (나중에 시간 나면 가이드 글을 한번 쓸 예정)

 

 

 

3. 리소스 활용

Document ID를 통해 파일을 지정해서 Trigger를 하나의 드라이브로 관리할 수 있으면 좋겠지만

그 정도까지는 아직 힘들어 보인다. [사실 된다고 해도 클라우드의 리소스를 굉장히 많이 잡아먹을 것이다.]

앞선 새로운 이벤트 트리거가 활성화 가능하다면, 각 과제별 Connection을 만들어 Trigger 할 수 있게 된다.

Data filter가 생겨서 이제 쉽게 외부 리소스에서 봇 트리거링이 가능하게 되었다.

특히 파일로 Trigger하는 것들에 대해서 기존 메일체킹하는 봇이 항상 필요했다면

이젠 구글 드라이브나 구글 시트에서 작업함으로써 리소스를 아낄 수 있게 됐다.

사이트 보안이 세서 클라우드 형태에서 Connection이 어렵다 하더라도 앞으로 확장성에 따라

내부에서 레거시 시스템을 바라볼 수 있게끔 구성할 수 있을 것으로 보인다.

 

 

4. Connection Test

- Google Sheet 및 Google Drive : 연결 가능.

** Available Events : New Record(file) Created, Existing Record(file) Deleted, Existing Record(file) Updated

 

- Slack : 연결 가능(BOT TOKEN - No. Redirect URL을 https://cloud.uipath.com/provisioning_/callback 으로 설정)

** Available Event : None(Preview 상태)

 => 2022-08-23 아쉽게도 슬랙은 아직 설정 가능한 event가 없고 user token으로만 connection이 설정됨

 

- JIRA : 연결 가능

** Available Event : New Record Created, Existing Record Updated

1. 패키지 버전에 맞는 Uipath Remote Runtime을 클라이언트(붙을 VM)에 깔아줌

 - 버전에 맞는지는 리소스 센터(https://cloud.uipath.com/portal_/resourceCenter)에서 받을 때 확인 가능

다운로드드 링크(리소스센터 못 들어가는 경우)

https://drive.google.com/file/d/1BXe5eZi94mQLn-jmft8LLUkCtVfYizrv/view?usp=sharing

 

Uipath Remote Control.zip

 

drive.google.com

2. 스튜디오가 깔린 PC에서 원격 프로그램에 따라 플러그인 설치(Microsoft Remote Desktop이나 Citrix 등)

3. Selector 체크

 

이래도 안 된다면 mstsc(RDP)를 관리자권한 빼고 실행해 보길 바람

C:\Windows\System32\cmd.exe /min /c "set __COMPAT_LAYER=RUNASINVOKER && start "" "mstsc"

 

++ Input할 때, 개발 PC와 VM PC를 혼동하는 케이스들만 잘 잡아주면 특별히 안 되는 기능은 없음

The operation has timed out

환경

클라우드 오케스트레이터

커뮤니티 버전 스튜디오

현상 : 

1. 오케스트레이터에 특정 패키지가 게시되지 않음[운영 과제였고 최근 27번째 버전까지 게시했던 과제]

2. 파일을 복사하여 게시했으나 현상 유지

3. 연결된 오케스트레이터를 변경했으나 현상 유지

4. 이벤트 뷰어에서는 TaskCancelException과 Main파일을 찾을 수 없다는 메세지, I/O 취소 같은 메세지들이 출력됨

 

추정 원인 : 

1. 패키지 파일 손상

 

조치 :

1. 오케스트레이터에서 최신 누겟을 다운받아 패키지 업로드 => 성공 

2. 최근 변경사항을 해당 누겟의 라이브러리에 적용하고 패키지 업로드

 

패키지 파일이 꼬였는데 Validation이 맞지 않는 상태에서 업로드하려다 이슈가 생긴 것으로 보임

왜 꼬였는지는 파악 불가 [개발자는 특별한 행동을 했는지는 기억 안 난다고 함]

일반적으로 Hostname을 *를 붙여 요청하면 방화벽을 해제해 주지만

간혹 IP Resolution 형태라 IP질의가 무조건 확인돼야만 방화벽을 해제해주는 사이트들이 있다.

Cloud로 오케스트레이터를 설치하는 게 대세임을 생각하면

이런 사이트에서 오케스트레이터를 쓰기 위해선 일일이 풀어주는 수밖에 없다.

아래 URL이 관련하여 실제로 풀어준 URL이다.

uipath.pkgs.visualstudio.com
*.*.msecnd.net
crpa-prod-orch0-ne-signalr.service.signalr.net
www.nuget.org
globalcdn.nuget.org
download.uipath.com
marketplace.visualstudio.com
onedscolprdjpe00.japaneast.cloudapp.azure.com
watson.telemetry.microsoft.com
a23-32-56-75.deploy.static.akamaitechnologies.com
raw.githubusercontent.com
pages-custom-64.weebly.com
sketchrunner.com
bitmiracle.com
account.uipath.com
cloud.uipath.com
activate.uipath.com
myget.org
dev.azure.com
pkgs.dev.azure.com

 

하기는 공식 문서에서 알려주는 Firewall 관련 안내

https://docs.uipath.com/automation-cloud/docs/configuring-your-firewall-for-automation-cloud

 

Configuring your firewall for Automation Cloud

This page lists the domains used by UiPath Automation Cloud and our other cloud services. You can use this information to compile an allow list for UiPath software in the configuration of your company's perimeter network.

docs.uipath.com

https://docs.uipath.com/task-mining/docs/prerequisites

 

Prerequisites and Limitations

The below list contains the minimum requirements needed for working with Task Mining: Prerequisites for Enabling the Service To start using the Task Mining service you need to check that the following prerequisites are met: You have an Automation Cloud acc

docs.uipath.com

 

0. Cloud 오케스트레이터 Prequisites

방화벽만 제외한다면 그닥 클라우드와 아닌 것을 구분할 필요는 없다.

방화벽 관련해서는 docs 문서를 참고하는 걸 추천한다.

https://docs.uipath.com/automation-cloud/docs/configuring-your-firewall-for-automation-cloud

 

Configuring your firewall for Automation Cloud

This page lists the domains used by UiPath Automation Cloud and our other cloud services. You can use this information to compile an allow list for UiPath software in the configuration of your company's perimeter network.

docs.uipath.com

https://docs.uipath.com/task-mining/docs/prerequisites

 

Prerequisites and Limitations

The below list contains the minimum requirements needed for working with Task Mining: Prerequisites for Enabling the Service To start using the Task Mining service you need to check that the following prerequisites are met: You have an Automation Cloud acc

docs.uipath.com

도메인 기준으로 방화벽을 풀어주는 곳이라면 이 정도만 안내해도 괜찮다.

다만 IP Resolution 방식인 경우에는 Azure나 SignalR같은 서비스에 대해 IP가 변동될 수 있음을 안내해야 한다.

+ 사내 방화벽 관리자와 서비스를 이용하면서 트래픽을 모니터링할 필요가 있다. [막히는 걸로 의심되면 그걸 풀어줌]

보통 Start Job이나 package 다운로드, UR연결 등을 해보면 대부분 체크가 된다.

 

1. 라이선스 등록 및 유저 생성

 - 라이선스는 기본적으로 12자리 시리얼 Key 형태로 주어진다.

 - User는 기본적으로 Email을 필수로 하기 때문에 Verify 과정을 Email 링크로 진행한다.

 - 최초 SSO 계정은 주어지지 않으며, 그냥 처음에 Group을 만든 User가 전체 관리자가 된다.

 - 관리 계정을 따로 만들고 싶다면 메일 계정을 연결하여 권한을 주면 된다.

 - 관리 계정으로 administration을 들어가 '계정 및 그룹'에서 사용자를 초대할 수 있다.

 - administration에서 라이선스를 들어가면 Enterprise 활성화가 있고, 이를 활성화하면 라이선스 기간이 시작된다.

2. 머신 및 로봇 연결

 - Machine은 템플릿 형태로 생성해야 한다. [Modern 기준]

 - Machine의 Production이 1이라는 것은 한번 연결될 때 라이선스를 1씩 부여한다는 뜻이다.

 - 즉, 유효한 Machine Template이라면 Production이 1로 올려져 있다.

 - Developer와 Attended Robot(User)는 오케스트레이터에서 권한을 주고 Assistant를 통해서 로그인만 하면 된다.

 - 머신키로도 인증하고 싶으면 테넌트 선택 - 설정으로 들어가서 로봇 보안에서 수동로봇 관련 '하이브리드'라는 항목을 체크[굳이 이렇게 해서 Device에 종속될 이유는 없다. 그게 필요한 경우는 설정.]

 - UR은 계정에서 로봇 유저를 일단 만들어야 한다. 로봇유저는 기본적으로 UR만을 위한 계정이다.

- UR로 연결할 Device는 UR버전으로 설치해야 한다. 설치에 시스템 서비스를 포함하고 있기 때문. 실제로 UR로 설치하지 않으면 연결이 되더라도 AutoLogin이 되지 않는다. 이 부분은 장치를 관리하는 사람 입장에서는 이전에 비해 불편해졌다고 할 수 있다. (AR을 Windows Scheduler로 쓰는 입장에선 UR로 깔고 AR로 연결하는 편이 낫다. 아니면 Windows Lock을 그냥 없애든가)

 - 테넌트 레벨에서 엑세스 관리 - 로봇 유저 편집을 하면 로봇 설정이라는 카테고리가 있다. 거기서 머신 로그인 자격증명을 체크하고 연결할 로봇의 구체적인 Windows Credential을 입력해주자.

 - 사용할 폴더 레벨에서 머신템플릿을 할당하고 그 폴더에 할당될 수 있는 로봇을 주면 연결 준비 완료(커뮤니티 클라우드쪽에서는 머신에 로봇을 할당하는 메뉴가 뜨지 않는 듯)

 - UR의 경우 Machine Key와 연결해야 하며, Cloud 주소는 폴더를 선택했을 때 나오는 주소 기준으로 입력해야 제대로 들어간다. (클라우드의 경우 https://cloud.uipath.com/{그룹PK}/DefaultTenant/orchestrator_ 형태다.)

 - 온 프레미스의 경우 UR에서 OAuth Application Connection을 요구하기도 하나, 무인로봇 하이브리드 체크하고 머신키 인증을 하는 게 수월하다.

 

 

+ Recent posts