상세 컨텐츠

본문 제목

MS Power Automate를 사용하여 주기적으로 Teams에 메시지 띄우기

Cloud/RPA

by 에스프리터 2021. 7. 9. 10:46

본문

 

 

Contents

이번에 진행해볼 것은 MS의 RPA 서비스인 Power Automate를 사용한 Teams 자동 메시지 띄우기 입니다. 계기는 회사에서 점심 때마다 당번을 정해서 샐러드를 먹는 파티가 있는데 매번 당번 확인하는 것도 귀찮고, 심지어 오늘 내가 아니겠지 하고 지나치는 경우를 종종 목격해서 입니다. (사람하는 일이 그렇지 뭐...) 그래서 자동으로 띄워두면 사람들이 오늘 내가 당번인지 바로 확인할 수 있겠죠?? ㅎㅎ

상술한 Power Automate를 사용하고 Teams 내 sharepoint의 엑셀 파일을 읽어서 출력하는 형식을 띄게 됩니다. 따라서 office365 구독하시는 분들에게만 가능한 방법입니다. 준비할 것들이 있으니 일단 먼저 속독으로 한번 읽으시고 다시 따라가시길 권장합니다.

 

일단 출력물 및 흐름은 아래와 같습니다.

  • 출력 결과
  • Power Automate 흐름

 

엑셀은 이렇게 준비하였습니다.

  • 마스터 시트가 있고... (이 엑셀 시트는 직장 동료께서 작성해주셨습니다 ㅎㅎ) 가져올 것은 '일자', '주문 담당자', '주문 불가 사유', '대체 담당자' 정보입니다.
  • 별도 시트를 따로 빼서 오늘 날짜(=today()+1)에 해당하는 정보를 vlookup으로 가져와서 뿌렸습니다. today +1 하는 이유는 우리는 KST 시간 기준으로 엑셀 파일을 열어서 오늘 날짜가 맞지만 Automate 상에서는 미국 서버에서 동작하는 듯 합니다. 그래서 북미 시간으로 하루 늦게 찍혀나오는 것 같아서 +1을 해줬고, 각자 상황에 맞게 today를 지정하시면 됩니다. 엑셀 함수 예시는 이미지 아래와 같습니다. 주의사항은 vlookup에서 절대참조를 걸어야 되는거고, NULL 리턴을 막기 위해 IF를 사용해서 입력값 개수가 0이면 "없음"으로 출력되도록 하였습니다. 아래 양식을 참고해서 value 3개를 vlookup으로 가져오시면 됩니다..
    =IF(LEN(VLOOKUP(B2,'주문 담당 일정표'!$C$11:$I$207,6,1))=0,"없음",VLOOKUP(B2,'주문 담당 일정표'!$C$11:$I$207,6,1))

 

 

보시는 바와 같이 엑셀에 있는 파일 및 MSN 날씨 정보를 가져와서 Teams(이미지 상 각각의 적용)에다가 출력하는 형식입니다. 바로 시작해보겠습니다.

  1. Power Automate 접속 후 좌측의 '만들기' 를 클릭한 후 '예약된 클라우드 흐름' 을 선택합니다.
  1. 그러면 최초 설정이 나오는데 '흐름 이름'은 편의대로 작성하고 최초 실행 시각 및 반복 시각을 작성보다 하루 전 날짜로 한 뒤 1 "주"로 선택하고 평일로 요일을 선택해줍니다. 여기서는 회사에서 주말에 점심을 먹을 일은 없기 때문에 이렇게 잡았고, 다른 목적이 있으신 분들은 일 단위나 분 단위로도 선택이 가능하니 선택해주시면 됩니다.
  1. 그러면 Recurrence 라는 창이 뜨는데 편집 가능한 항목을 모두 띄워주고 아래와 같은 형식을 입력합니다. 주 단위로 할 경우 시작 시간은 트리거 작동 시각이 아니라 트리거 작동 개시 시각을 의미합니다. 그래서 바로 작동하는 걸 보고 싶으면 하루 전으로 트리거 작동 시각을 잡아놓으면 오늘 다음 시간 기준부터 동작을 하게 됩니다. 예컨대 하루 전이 아니라 당일로 잡을 경우 다음날 다음 시간에 동작을 하더라구요. 시작시각이 앞서 설정한 시각과 다른 것은 UTC로 표현하기 때문입니다. 표준 시간대를 서울로 세팅해놨기 때문에 그 부분은 수정하지 않아도 됩니다.
  1. 완료되면 하단의 새 단계 를 클릭하면 아래와 같이 새로운 단계를 선택할 수 있는 창이 뜹니다. 여기서 Excel Online(Business)을 선택해줍니다. 검색해도 됩니다. 향후 단계를 추가할 때도 똑같이 하면 됩니다.
  1. 여러 동작 옵션 중 '테이블에 있는 행 나열'을 선택합니다.
  1. 그러면 sharepoint에 있는 파일에 접근 가능하게 뜨는데 Teams의 채널을 기준으로 파일을 찾아들어가면 됩니다. 그리고 테이블의 경우 아래에서 설명합니다.
  1. 테이블 명에서 헷갈리시는 분들이 있을텐데 시트를 드래그해서 선택한 뒤 '표 서식'을 잡아주시면 2번째 이미지처럼 표디자인이라는 탭이 생성되고 좌측에 표 이름을 지정할 수 있게 됩니다. 이게 Power Automate 상의 테이블 이름입니다. 그리고 각각의 Column 명의 value를 가져오게 됩니다.
  1. 엑셀 파일을 설정했으면 새 단계 를 눌러서 MSN 날씨를 가져와서 '오늘 예보 가져오기'도 설정합니다. 위치는 seoul이고 단위는 metric으로 지정하였습니다. (이건 optional 입니다)
  1. 마지막 단계로 새 단계를 눌러서 teams를 검색하고 '채팅 또는 채널에서 메시지 게시'를 선택합니다.
  1. 아래와 같이 입력하면 됩니다. 단톡방에 올리기 위해서 User → Group chat을 지정 후 채팅방을 지정하였고, Message는 아래와 같이 html 형식으로 작성하게 됩니다. 초반의 엑셀 시트 이미지에서 value, value2, value3가 있던 것 기억하시나요? 그게 여기서 적용됩니다. 그렇게해서 flow 검사를 확인하고, 저장을 누르면 트리거가 동작합니다. 혹시 작동자체는 문제가 없는데 보통 문제가 생기는 경우는 트리거이니, 다른 비어있는 단톡방에 테스트 후 적용하시는 것을 권장합니다.

감사합니다!!

 

댓글 영역