본문 바로가기
UiPath

[UiPath] RE Framework 이론 및 실습3

by 린앤율맘 2023. 10. 31.

선형처리 - 오케스트레이터 Queue 없이 작업

반복 작업 x, Get Transaction Data는 1회

(Queue Item은 사용, 빈 값으로)

- 다음에서 날씨 추출

 

Transaction을 더 실행해야 할 지 말지는 Data가 Null (Nothing)값인지를 보고 판단

 

1. Init 단계에서 Add Queue 아이템 지우기

2. Set Transiaction Status 단계에서 Get transaction item 비활성화

   조건 분기 필요/ 1,2,3... transaction 숫자를 붙임

   (Main에 TransactionNumber가 생성되어 있음, Get Transaction Data 단계에서 in_Transaction Number와 연결해뒀음)

If- Only 1 Transaction

 

Condidtion: 

in_TransactionNumber = 1

 

Then

out_TransactionItem = New QueuItem (빈 값: 실행은 될 것, Null 아님 )

 

Else

out_Transactionitem = Nothing (Null 값)

 

* 참고 

Null은 판단할 수 없는 값 / 빈 값은 값이 없음을 판단 가능

 

3. Process > Set Transaction Status > Success > Set Transaction Status(Success) 비활성화

                                                             Buseinss Exception > Set Transaction Status 비활성화

                                                             System Exception > Set Transaction Status 비활성화

 

 

 

 

반복처리

Process Transaction에서만 반복, Get Transaction Data는 1회

; 엑셀파일 활용하여 작업 

- 홈택스 사업자 조회 결과 이메일 보내기

 

1.Init > KillProcess > Kill Process 액티비티  "Chrome" 

2. Config 파일 수정

3. int > IniniAllApplications > Open Browser 

                                              in_Config("홈택스_URL").ToString

 

4. Gettransactiodata > GetTransactionItem 비활성화

 

If- Only 1 Transaction

 

Condidtion: 

in_TransactionNumber = 1

 

Then

out_TransactionItem = New QueuItem (빈 값: 실행은 될 것, Null 아님 )

 

Else

out_Transactionitem = Nothing (Null 값)

 

5. Process Transaction > Process 

홈택스 과제 붙여넣기 (Close Tab은 End Process에서 사용할 예정이므로 삭제)

 

6. Set Transaction Status

Success, Business Exception, System Exception에서 Set Transaction Status 비활성화

 

7. End Process

strMailBody = String.Format(Config("메일내용").ToString, Now.ToString("yyyy년 MM월 dd일"))

 

Send Outlook Mail Message

To : Config("mailTo").ToString

Subject: Config("메일제목").ToString

Body: strMailBody

속성 값에 account와 CC 설정 

 

8. Process에서 strFilePath를 인수로 전환

out_strFilePath 

 

9. Process Transaction > Invoke Process Workflow > Ctrl K하여 strFilePath 생성하고 out_strFilePath와 연결

 * 변수 범위 조정

 

10. End Process 

 

Send Outlook Mail Message

Attah Files 

In 후에 strFilePAth

 

11. Close All Applications

 

AttachBrowser > Close Tab

 

 

[Tip]

Queue Item을 DataRow로 변경하다보면 Nothing 값 자체(변수 패널도 확인할 것)에 오류가 발생할 수 있으니 Ctrl + X해서 잘라내기 한 다음 바깥 아무데나 클릭찍고 Ctrl+V해서 붙여놓고 Ctrl+S

 

 

Transaction 기반처리

Get Transaction Data부분에서 반복이 발생하고 End로 흘러감

- 홈텍스에서 사업자등록번호로 사업자 상태 조회하기

 

1. Intialization  하단에 

    Excel Applicaion Scope : Config("InputFilePath").ToString

    데이터 테이블 dtCompany

    dt_TransactionData = dtCompany

 

   Log Message: "데이터 행수: " + dt_TransactionData.Rows.Count.Tostring

   ( 행수 Count해서 반복 작업 하려는 의도)

 

2.  InitAllApplications 

    Open Browser 내에

    기존홈텍스 메뉴 Click 

    사업자등록번호로 조회 Click

 

3. Main 변수 패널 열어 

   TransactionItem 변수 Type을 QueItem에서  Datarow(System) 변경

 

4. GetTransaction Data > Invoke GetTransactionData workflow > Open Workflow 내에 변수 패널 열어 

    out_TransactionItem 변수 Type을 QueItem에서 Datarow(System) 변경

 

5. Invoke > Import Argument 에서 out_TransactionITem과 TransactionItem 연결

 

6. Get Trasaction Data 에서

    Get Transaction Item은 비활성화 

   

   If

   Condition : in_TransactionNumber<= io_dt_TransactionData.Rows.Count 

 

   Then

  out_TransactionItem =  io_dt_TransactionData.Rows(in_TransactionNumber -1)

 

   Else

  out_TransactionItem = Nothing

 

7. Set Transaction Status 에서 세 가지 Transaction Status는 모두 비활성화

 

8. Process 내에 변수 패널 열어 

  in_TransactionData를  QueItem에서 Datarow로 Type 설정

  in_TransactionNumber  in  int32 인수 설정

  io_dt_TransactionData     io  dt  인수 설정

 

 9. Main에서 Invoke Process Workflow > Import Argument 에서  다음과 같이 Value 값과 연동 (+in_TransactionItem 역시 TransactionItem과 연동)

 

 For Each 내에 액티비티 다 밖으로 

  

 Set Text 

 in_TransactionItem("사업자등록번호").ToString

 

Assign에 strText 앞에 in_TransactionItem으로 변수 변경 

 

If

Condition: strComment.Contains("폐업")

Then

io_dt_TransactionData.Rows(in_TransactionNumber-1).Item("상태") =  "폐업"

 

Else

If 

Condition: strComment.Contains("휴업")

Then

io_dt_TransactionData.Rows(in_TransactionNumber-1).Item("상태") = "휴업"

Else

io_dt_TransactionData.Rows(in_TransactionNumber-1).Item("상태") = "사업중"

 

10. Get Transaction > 

TransactionItem = Nothing (Nothing입력)

오류가 발생하면 Nothing 부분은 또 다시 수정

 

9. SetTransactionStatus  > SetTransactionStatus(Success) > Open > Arguments > in_TransactionItem Que Item 을 dataRow로 전환

 

10. End Process

Assign 전에 Write Range 붙이기 Scope 내에 strFilePath(Config로 변경) 로 변수 입력 

 

Config 파일 열어

SheetName = 휴폐업조회목록    추가 

 

Write Range 내에

Config("SheetName").ToString

 

dt테이블

dt_TransactionData