가장 쉬운 재입고 알림 봇 만들기 by Power Automate 2편

앞의 에서는 간단한 예시로 한 가지 아이템을 다루는 걸 해봤다.

이번에는 조금 더 복잡한 케이스를 다뤄보고자 한다. 관심목록을 바탕으로 구매 가능한지, 가격변동이 있는지 확인하는 것이 목적이다. 관심목록을 기준으로 했지만 장바구니를 사용해도 될 것이다.

이전과 다른 부분은 상태를 저장하고 변경을 감지하는 것과, 페이지에서 목록을 추출하는 것이 있다. 상태를 관리해야 하는 것과 여러 아이템을 비교하는 부분 때문에 꽤나 복잡도가 올라간다. 크게 바뀐 부분은 다음과 같다.

  • 데이터 테이블 도입 -> 여러 아이템의 상태를 관리하기 위한 부분이다.
  • 데이터 테이블 조인 -> 이전 상태와 현재 상태를 비교하기 위한 것이다.

관심목록으로 가격/구매가능여부 변동 탐지하기

작업 흐름은 다음과 같이 구성했다.

주된 작업은 하위 흐름으로 분리를 해놨다.

이전과 다른 부분만 전체적으로 설명을 하면 다음과 같다.

  1. 작업 흐름의 하위 흐름 실행 : 길고 복잡한 작업은 하위 흐름으로 분리를 해두면 깔끔해진다.
  2. 하위 흐름 1~2 : 제어를 위한 기본 변수를 설정했다. stop은 반복 중단을 위한 것이고 changed는 값이 바뀌었을 때 기존 상태를 새로운 상태로 덮어쓰기 위한 것이다. 이걸 안 해두면 한 번만 감지해도 될 것을 계속 바뀐 걸로 감지하게 된다.
  3. 5~7 : 새로 고침을 하고 다시 상태를 읽어오는 부분이다. 콘텐츠 기다리기가 잘 작동하지 않아서 강제 대기(5번)를 추가했다.
  4. 10 : 기존 상태와 새로운 상태를 비교하기 위해 조인(Join) 을 했다. 조인은 두 개의 표(Power Automate의 데이터 테이블)를 특정한 열 기준으로 결합하게 해준다.
  5. 11, 23, 16 : 변경된 데이터가 있는지 체크하는 부분이다. 각 행을 돌며 가격 또는 구매가능(available) 상태가 바뀌었는지 체크하고 있으면 메시지를 표시하게 해놨다. 메신저에 알림을 보내려면 이곳을 고치면 된다.
  6. 21~25 : 상태가 바뀌었으면 기존 상태를 새로운 상태로 바꿔줘야 한다. 바뀐 게 감지되면 changed 변수에 값을 설정한다(14, 18)

웹 페이지에서 목록 추출하기

관심목록과 깉이 여러 아이템이 있을 경우에는 목록 형식의 데이터를 추출해야 한다. 파워 오토메이트에는 데이터 테이블 이라는 걸로 이와 같은 데이터를 다룬다. 엑셀과 같다고 보면 된다.

웹 페이지에서 데이터 테이블을 추출하는 것은 글로 설명하기 어려워 녹화를 했다. 꽤 편리하게 구현된 기능이다. 같은 레벨의 값을 추출하면 자동으로 표로 바뀐다. DOM으로 구현을 한 것일까..

변동 감지하기

데이터 테이블을 비교하는 것은 생각보다 복잡한 작업이었다. 여러 가지 옵션이 있었고 쉽게 비교할 수 있는 방법은 따로 없는 것 같다. 목록 빼기 기능이 있어 이걸로 해보았으나 단 하나의 값만 달라도 모든 데이터가 결과로 나왔다. 결과적으로 선택한 방법은 조인 후 행별로 비교를 하는 것이었다. 데이터 테이블의 열 인덱스를 변수로 할 수 없기 때문에 특정한 열만 비교하도록 구현했다.

후기

예상했던 것 보다 훨씬 복잡한 결과가 나왔다. 파워 오토메이트는 어떤 부분은 상당히 기능이 잘 되어 있는데, 의외로 기본 기능이 부족한 것들이 몇 가지 있는 것 같다. 대표적으로 데이터 테이블 연산이 있고 이건 좀 보완이 되면 좋겠다.

위의 방법으로 대부분 사이트에서 비슷한 기능을 구현할 수 있을 것이다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다