-
Power Automate에서 SharePoint 중복 항목이 생길 때: Filter Query·동시성 3단계 점검기술과 산업/도메인 2026. 10. 23. 15:36728x90
핵심 답: SharePoint 목록에 같은 요청이 두 번 등록될 때는 Get items의 Filter Query로 기존 항목을 먼저 좁히고, 결과가 0건일 때만 Create item을 실행하세요. 거의 동시에 들어오는 요청까지 막아야 하면 트리거 동시성을 1로 제한하되, 이 설정은 되돌릴 수 없다는 점을 먼저 확인합니다.
이 글이 해결하는 문제와 적용 환경
이 글은 Microsoft Power Automate 클라우드 흐름이 SharePoint 목록에 요청·접수·작업 항목을 만들 때, 같은 업무 키로 항목이 중복 생성되는 문제를 다룹니다. 예시는
RequestKey라는 한 줄 텍스트 열을 고유 업무 키로 쓰는 설계 예시입니다. 실제 환경에서 흐름을 실행하거나 SharePoint 데이터를 변경해 재현하지는 않았습니다.단순히 목록 화면에서 중복을 지우는 방법이 아니라, 생성 전에 확인하는 흐름을 만드는 방법입니다. 이미 여러 사람이 같은 키를 입력할 수 있거나 외부 시스템이 동시에 호출한다면 이 글의 동시성 주의사항까지 적용 범위에 넣으세요.
먼저 확인할 전제 4가지
- 중복 여부를 판별할 값 하나를 정합니다. 주문 번호, 외부 티켓 ID처럼 바뀌지 않는 값이 적합합니다. 제목처럼 사람이 임의로 고치는 값은 피합니다.
- SharePoint 목록에 단일 텍스트 열
RequestKey를 만듭니다. 내부 열 이름은 생성 후 바꾸기 어려울 수 있으므로, 실제 Filter Query에는 목록의 내부 이름을 확인해 사용합니다. - 흐름 실행 계정에 해당 사이트·목록을 읽고 만들 권한이 있는지 확인합니다. 권한 오류를 조건 오류로 오해하지 않도록 테스트용 목록부터 씁니다.
- 같은 키를 다시 접수했을 때의 정책을 정합니다. 이 글은 ‘새 항목을 만들지 않고 종료 또는 알림’ 정책을 예로 듭니다.
1단계: Get items에서 서버 쪽으로 먼저 걸러내기
트리거 다음에 SharePoint Get items를 추가하고 사이트와 목록을 지정합니다. 고급 옵션의 Filter Query에 비교식을 넣습니다. Microsoft 문서는 Get items가 OData Filter Query로 결과를 제한할 수 있다고 설명합니다.
RequestKey eq 'REQ-20261023-001'위 문자열은 이해를 위한 문서 기반 예시입니다. 실제 흐름에서는 트리거에서 받은 키를 동적 콘텐츠나 식으로 넣되, 작은따옴표가 포함될 수 있는 입력값은 그대로 이어 붙이지 말고 데이터 형식을 검토하세요. 우선 Top Count를 1로 두면 존재 여부 확인에는 충분하고, 불필요한 항목을 많이 가져오지 않습니다.
목록이 크다고 무작정 모든 항목을 받아 Filter array로 거르는 방식은 피합니다. Get items 기본 반환과 목록 보기 임계값, 페이지네이션 동작은 별도로 점검해야 합니다. 특히 5,000개 이상 목록에서는 필터가 있어도 페이지네이션과 인덱스 설계를 확인하세요.
2단계: 결과가 0건일 때만 Create item 실행하기
Get items 뒤에 Condition을 넣어 반환 배열
value의 길이를 검사합니다.length(body('Get_items')?['value'])- 0과 같음(Yes): Create item을 실행하고 RequestKey를 함께 저장합니다.
- 0보다 큼(No): 새 항목을 만들지 않습니다. 필요하면 Teams·메일 알림에 기존 항목 ID와 키를 남겨 담당자가 확인하게 합니다.
여기서 자주 생기는 실패는 Get item과 Get items를 혼동하는 것입니다. Get item은 SharePoint 항목 ID 하나를 받을 때 쓰고, 키 값으로 존재 여부를 찾는 경우에는 Get items가 맞습니다.
3단계: 거의 동시에 들어오는 요청은 동시성으로 따로 판단하기
두 실행이 같은 순간에 Get items를 수행하면 둘 다 0건을 보고 각각 Create item을 실행할 수 있습니다. 이 문제는 Filter Query만으로 완전히 해결되지 않습니다. 중복 비용이 큰 접수 흐름이라면 트리거의 설정에서 Concurrency control을 켜고 병렬 실행 수를 1로 제한하는 방안을 검토하세요.
다만 Microsoft는 동시성 제어를 켠 뒤에는 되돌릴 수 없다고 안내합니다. 처리량이 중요한 흐름에서 무조건 1로 만들면 대기 시간이 늘 수 있습니다. 따라서 아래처럼 판단합니다.
- 중복 1건의 비용이 매우 큼: 순차 처리와 별도 재시도 정책을 검토합니다.
- 처리량이 더 중요함: 동시성은 유지하고, 원본 시스템의 고유 ID·중복 허용 정책·사후 병합 절차를 설계합니다.
- 정말 하나만 저장돼야 함: 흐름 바깥의 데이터 계층에서 고유성 보장 가능 여부도 검토합니다. Power Automate 조건만을 유일한 잠금 장치로 단정하지 않습니다.
실패할 때 보는 체크리스트
- Filter Query의 열 이름이 표시 이름이 아니라 내부 이름이어야 하는가?
- 키의 대소문자, 공백, 접두어가 입력마다 달라지지 않는가?
- Get items 결과가 실제로 0건인지, 권한·연결 오류로 비어 보인 것은 아닌가?
- Top Count 1과 Condition의 배열 길이 검사를 함께 적용했는가?
- 동시에 두 실행이 시작될 수 있는 트리거인가? 그렇다면 동시성 변경의 비가역성과 처리 지연을 승인받았는가?
- 대량 목록이라면 페이지네이션·인덱스·5,000개 임계값을 별도로 점검했는가?
비용과 운영상 한계
SharePoint 커넥터와 Power Automate 라이선스·요청 한도는 조직의 플랜과 환경 설정에 따라 다릅니다. 이 글의 설계는 별도 유료 기능을 전제하지 않지만, 실제 사용 가능 범위와 요청 제한은 관리자가 확인해야 합니다. Filter Query에 업무 키를 넣을 때는 민감한 개인정보나 비밀값을 키로 쓰지 말고, 실행 이력의 보관·열람 권한도 점검하세요.
조건 분기는 중복 가능성을 낮추는 흐름 패턴이지, 모든 경쟁 상태를 자동으로 제거한다는 보장은 아닙니다. 운영 전에는 테스트 목록에서 같은 키의 순차 실행, 동시 실행, 연결 실패, 재시도 상황을 각각 기록해 검증하세요.
요약
- 변하지 않는 업무 키를 정하고 SharePoint 열에 저장합니다.
- Get items의 Filter Query와 Top Count 1로 기존 항목을 찾습니다.
- 배열 길이가 0일 때만 Create item을 실행합니다.
- 동시 실행이 문제라면 비가역적인 동시성 설정과 처리량 손실을 비교합니다.
Excel 테이블을 대상으로 흐름이 기대대로 동작하지 않을 때의 별도 점검은 Power Automate에서 Excel 표가 안 보일 때 체크리스트에서 확인할 수 있습니다.
공식 자료
- Microsoft Learn: Get items 및 Get files 작업 가이드
- Microsoft Learn: SharePoint 커넥터 참조
- Microsoft Learn: 트리거와 동시성 최적화
확인일: 2026-10-23. 본문의 흐름 예시는 Microsoft 공식 문서를 바탕으로 한 설계 예시이며, 특정 테넌트에서 실행·성공을 재현한 결과가 아닙니다.
728x90'기술과 산업 > 도메인' 카테고리의 다른 글
Power Automate에서 Excel 표가 안 보일 때: 테이블·파일 잠금·256행 문제 해결 체크리스트 (0) 2026.10.07 AI 자동화 과제 우선순위 정하는 법: 효과·실행성·위험 점수표 템플릿 (0) 2026.09.30 제조 프로세스 이해 시리즈 23화 – 식품 가공: 반조리, 조리식품 중심 배치 라인의 실제 (5) 2025.08.12 제조 프로세스 이해 시리즈 22화 – 화장품 제조: 소량 다품종 배치공정의 정석 (4) 2025.08.07 제조 프로세스 이해 시리즈 21화 – 의약품 생산: 배치 기반 정제와 조제 프로세스의 본질 (4) 2025.08.05