UiPath에서 ExcelVBA 오류 처리

UiPath에서 VBA 오류를 처리하는 중요성



직업, UiPath에서 ExcelVBA를 호출하여 업무를 자동화하는 경우가 많지만 여기서 자주 곤란할 수 있습니다.
UiPath측에서 VBA의 에러 핸들링을 내장하지 않으면 UiPath가 이상을 검지하지 않고 계속 정지해 버리는 것이다.
수동으로 UiPath를 기동한다면 최악의 에러 윈도우를 보고 눈치채지만, 자동 실행으로 야간에 움직이는 것이라면 아침이 되어 겨우 눈치채는 것도…
그래서 UiPath에서 VBA 오류를 최소한으로 감지 할 수있는 메커니즘을 소개합니다.

VBA 측 준비



다음이 예, 중요한 것은 VBA 중에서도 제대로 에러 핸들링 처리를 넣어 UiPath에 돌려주는 값을 정의하는 것.
Function vbaError(stErrorFlg As String)
    On Error GoTo dummyError
    If stErrorFlg = "True" Then
        i = 1 / 0   '0除算で強制的にエラーを起こす
    End If

    vbaError = ""  'エラーがない場合は""を返す
    Exit Function
dummyError:
    vbaError = Err.Number & "," & Err.Description  'エラーが発生したときにUiPathに返すエラー内容
End Function


(Err를 그대로 돌려주고 싶은 곳이지만 ErrObject 클래스는 인스턴스화할 수 없는 것 같다…
여기 의 사이트를 참고로 하면서 클래스 정의해주면 할 수 없지는 않겠지만…)

UiPath 측 준비



그리고는 UiPath 측에서는 이와 같이 ExecuteMacro 액티비티의 Output을 적절한 변수로 받으면 OK


받은 변수가 비어 있는지 어떨지 에러의 유무를 판정. 에러의 경우는 Throw 액티비티를 사용해 exception를 발생시킨다.


결과



따라서 VBA 오류 코드, 오류 메시지를 표시할 수 있습니다.


VBA의 보수로 고민하지 않기 위해서도 에러 핸들링은 제대로 넣어 두자.

좋은 웹페이지 즐겨찾기