[과제] 의약품안전나라 위반사항

FURVEN·2024년 5월 3일
1

RPA

목록 보기
6/6
post-thumbnail

| 💊 개요   

<의약품 안전나라>
• 수신한 메일에서 처리 항목 가져오기
• 의약품 안전나라 – 고시/공고/알림 – 행정처분정보 접속
• 품목구분 및 조회기간 설정 (의약품 등, 메일에 주어진 기간)
• 템플릿 파일의 양식에 맞게 추출한 ‘전체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

profile
슬로우스타터 개발자 일지

0개의 댓글

관련 채용 정보