RPA/Power Automate Desktop

[Power Automate Desktop] 스케줄 작업으로 자동 실행 (1편)

꼰대 2021. 6. 25. 17:19

Power Automate Desktop에는 생성한 작업 플로어에 대한 스케줄 등록 기능이 없습니다. 찾아보니 유료 버전인 Microsoft Power Platform의 Power Automate에는 있는 듯 합니다.

없으면 만들어야죠 뭐...

곰곰히 생각해본 결과 2가지 방법이 있습니다.

첫번째는 자체적으로 반복문 돌면서 지정한 시간에 동작시키는 방법과

두번째는 작업 스케줄러에 python을 이용하여 Power Automate Desktop을 실행시키는 방법이 있습니다.

이에 첫번째 방법은 이번글에, 두번째 방법은 다음글에 작성하겠습니다.

 

첫번째 방법은 작업 플로어에서 해결하는 방법입니다.

대략의 프로세스는 PAD를 실행하여 지정한 시간, 혹은 매일 일정 시간에 작업 플로어가 동작하게 만드는 방법입니다.

이렇게 하면 몇가지 단점이 있습니다.

1. PAD를 항상 동작 시켜놔야 합니다. 즉, 시간을 체크해야 하기 때문에 작업 플로어가 반복문을 타고 계속 돌고 있어야 합니다.

2. 현재 시간과 등록한 시간을 비교하기 때문에 특정일의 특정시간, 혹은 매일 특정시간만 등록할 수 있습니다.

 

예시는 간단하게 하겠습니다. 매일 오후 1시가 되면 엑셀을 열어 현재 시간을 입력하고 엑셀만 종료하겠습니다.

전체 플로어는 다음과 같습니다.

 

먼저 해당 플로어를 실행할 시간을 변수로 정의합니다. 좌측 메뉴 변수 > 변수 설정을 끌어와 workTime이란 변수명으로 시간값을 입력하고 저장합니다.

여기서 입력한 13시 00분은 오후 1시로 하루에 13시 00분은 오직 한번입니다. 따라서 이 플로어는 변수로 설정된 시간에 하루에 한번 입력한 플로어가 작동합니다.

만약 특정 시간대에 한번 작동하는 플로어는 만들고 싶다면 해당 값을 년월일시분(yyyyMMddHHmm) 값으로 넣어야 합니다. 

 

다음은 좌측 반복 > 반복 조건을 끌어와 아래와 같이 입력하고 저장합니다. 즉 1 = 1 은 언제나 참이므로 무한 반복문입니다.

 

다음으로 현재 시간을 가져옵니다. 좌측 메뉴 날짜/시간 > 현재 날짜 및 시간 가져오기를 끌어와 저장합니다. 이 변수값은 표준시간 포멧으로 저장됩니다.

 

위에서 정의한 작업을 원하는 시분값과 비교를 위해 현재시간 값을 텍스트 형태로 변경해야 합니다. 좌측 메뉴 텍스트 > 텍스트로 날짜/시간 변환을 끌어와 현재 날짜 변수를 지정하고 사용자 지정 형식을 workTime변수 포멧과 동일한 HHmm으로 입력하고 저장합니다.

해당 값은 시분 값으로 시간값은 대문자인 HH로 입력하면 24시간으로 표시하고 소문자 hh로 입력하면 오전 오후로 계산된 시간값이 저장됩니다. 즉, 오후 1시인 경우 HHmm : 1300, hhmm : 0100

 

다음으로 시간값 비교입니다. 좌측 메뉴 조건 > 만약을 끌어와 현재 시간값과 작업을 원하는 시간값을 비교하여 같을 경우 작업을 진행합니다.

 

다음의 작업은 엑셀 열어 현재날짜 값 쓰고 저장하고 닫는 플로어입니다. 간단한 내용이기에 자세한 설명은 하지 않겠습니다.

참고로 실제 실행 부분인 6행부터 8행까지는 하위 흐름으로 만들고 나머지 부분은 자동 실행을 위한 템플릿으로 활용하면 편합니다.

 

다음으로 좌측 메뉴 대기 > 대기를 끌어와 60초를 입력하고 저장합니다.

이는 작업을 원하는 시간이 분 단위로 정의해서 해당 반복문을 1분에 한번씩 수행하기 위한 대기입니다.

 

이제 모두 종료되었습니다.

 

만약 해당 작업 시간이 되어 작업 종료 후 반복문을 종료하고 싶다면 좌측 메뉴 반복 > 반복 종료를 끌어와 조건문의 마지막에 위치 시킵니다. 그러면 해당 조건문 완료 후 반복문이 종료됩니다.

 

 

참고사항으로 작업 시작 시간을 초단위로 설정해봤는데 반복문 통과 시간이 1초가 넘을 경우 지정한 시간에 작업이 안되는 경우가 발생하였습니다.

그래서 분 단위로 설정하였음을 참고하시기 바랍니다.

반응형