| 💊 개요
<의약품 안전나라>
• 수신한 메일에서 처리 항목 가져오기
• 의약품 안전나라 – 고시/공고/알림 – 행정처분정보 접속
• 품목구분 및 조회기간 설정 (의약품 등, 메일에 주어진 기간)
• 템플릿 파일의 양식에 맞게 추출한 ‘전체DT’를 당월시트에 입력
• ‘전체DT’ 중 키워드가 포함된 내용만 추출하여 이슈사항시트에 입력
• 이슈사항시트의 내용 중 처분일자가 당월인 것만 필터링하여 당월이슈시트에 입력
• 결과파일을 첨부하여 양식대로 메일 발송
https://nedrug.mfds.go.kr/index
| 💊 개발환경
UiPath Studio Community Edition ver2024.02.01
Robotic Enterprise Framework
Window 10
Google Chrome
[ Add Dependency ]
Uipath.Mail.Activities
| 💊 흐름도


| 💊 데이터 명세서
-
Main Variable

-
Config

| 💊 구현
[ Initialization ] - 초기 실행
FirstRun
- 템플릿 파일을 복사하여, 결과 파일 생성

- Mail 가져오기

- Mail 리스트 필터링, 내용 중 검색어, 검색기간 추출

- 검색어, 검색기간 양식에 맞게 편집

< 인수 >


Init Workflow
- 스크래핑 전 사이트 접속

- 자주 넘어가지는 부분 RetryScope 처리

< 인수 >

- 데이터 스크래핑(메인 transactionData)

[ Process Transaction ] - 반복 부분
- 추출된 URL을 통한 세부 데이터 추출 저장

- 세부 데이터 추출 시 예외처리(BRE처리 및 예상치 못한 에러 Exception처리)

*추후에 세세한 예외처리를 위해 구조바꿔야 함(기입되는 데이터 관리를 위해)
[ End Process ] - 결과 보고 후 클린
1. 시트 기입을 위한 요구 DT 편집
- 기본 요구 DT(URL열 제거)

- Mail 검색어 리스트로 위반내역 필터링(Clone으로 양식가져오고, DT병합 후 중복제거)
.DefaultView.ToTable(True)

- 해당 월 필터링

2. 엑셀 시트 기입
- 메인 시트 이름 변경 및 각 필터링된 DT들 시트에 기입

3. 메일 전송용 데이터테이블 HTML화
- 메일 추가용 데이터테이블 양식 탬플릿(Replace로 인라인스타일시트 적용)

- [예시]

4. 결과 이메일 전송
- 첫번째는 오류 항목 관리용 테이블 양식, 두번째는 결과 데이터테이블 양식 이메일 전송

첨부파일 : String.Format(in_dicConfig("Folder_Output").ToString, Now.ToString("{yyMM}"))
| 💊 오류 해결 및 개선 사항
1. 오류 :
- LinQ문 사용으로 List검색어 기반 위반내역 필터링 구현했지만, 잘못 필터링 됌.

해결 :
- For Each문으로 List검색어 필터링해서 병합(+중복제거)

2. 개선 사항 :
1. Linq문 사용한 것은 좋았으나, 검색어 필터링 시 정확하게 필터링 하지 못함
2. Init에서 첫번째 수행일 때 구역으로 워크플로우 이동하는 걸 추천
3. 실패한 Transaction에 대한 Notice 처리 필요
4. TransactionDT 추출 시 검증 또는 Try-catch 또는 Retry 추가 필요
5. 검색기간 이후 필터링 시 오류 해결
| 💊 소스 코드
https://github.com/FURVEN/DrugSafety.git