UiPath Form 사용해보기

UiPath Form을 이용하여 custom form을 만들면 사용자로부터 다양한 데이터를 입력받을 수도 있고, 여러가지 메세지와 정보를 원하는 모양과 배치로 출력할 수도 있습니다.

이번 포스팅에서는 Form을 이용하여 사용자에게 선택할 수 있는 목록을 제시하고 사용자가 그 중 하나를 선택하도록 하는 것을 함께 구현해보려고 합니다.

Form을 사용하려면 UiPath.Form.Activities 패키지를 설치해야 합니다. JSON 데이터를 다루기 위하여 UiPath.WebAPI.Activities 패키지도 함께 설치하겠습니다.

image

Form을 이용하여 사용자에게 제시할 목록은 서버 목록이고 아래와 같이 comma로 구분되어 ServerList.csv 파일에 담겨 있다고 가정하겠습니다. 사용자가 이 중 하나를 선택하면 그 서버로 ssh 연결을 생성하는 것까지 구현해보겠습니다. putty가 "C:\Program Files\PuTTY\putty.exe"에 설치되어 있다고 가정합니다.

no,username,host,port
1,kim,seoul.mydomain.com,22
2,lee,suwon.mydomain.com,33
3,hong,busan.yourdomain.com,44

먼저 Read CSV 액티비티를 이용하여 서버 목록을 데이터테이블에 로드합니다.

image

그런 다음, 아래와 같이 Dictionary 타입의 컬렉션에 "no"를 키로 하여 한 줄씩 넣어줍니다.

image

이제 Create Form 액티비티를 이용하여 폼을 만들고 Dictionary에 담아둔 서버 목록을 전달해 줄 차레입니다.

image

Form Designer를 열고 Drop-down List 콤포넌트를 폼에 추가하고,

이 콤포넌트의 Field Key 이름을 "server"로 설정해줍니다.

image

그런 다음, Create Form 액티비티의 FormFieldsCollection 프로퍼티에 아래와 같이 argument를 바인딩 해줍니다. serverlist는 위에서 정의한 Dictionary입니다.

GenerateInputFields 프로퍼티에서는 체크를 지워주어야 하고, Output 섹션의 Dismissed와 FormFieldsOutputData 프로퍼티에 변수를 할당해줍니다.

image

사용자가 Submit 버튼을 누르지 않고 Form을 닫으면 isDismissed가 True로 설정되고, 사용자가 Submit 단추를 눌러서 선택을 완료하면 False로 설정됩니다.

formOutput은 Json string이고 사용자가 선택한 아이템이 아래와 같이 반환됩니다.

{"server":1,"submit":true}

"server"는 Dictionary의 키 값을 담고 있습니다.

이 string을 Deserialize JSON 액티비티를 이용하여 JObject 타입으로 바꾸어줍니다. TypeArgument를 아래와 같이 설정해야 합니다.

image

우리가 Dictionary의 키로 설정한 "no"의 순서번호는 1부터 시작합니다. 그런데 데이터테이블의 행 순서번호는 0부터 시작하므로 아래와 같이 index를 구할 수 있습니다.

image

이 index로 데이터테이블을 참조하여 ssh 커맨드라인을 아래와 같이 생성할 수 있습니다.

image

워크플로우를 실행하면 폼의 초기 화면은 아래와 같습니다.

image

드롭다운을 내리면 서버 목록이 보이고, Type to search에서 검색도 가능합니다.

image

전체 워크플로우는 아래와 같습니다.

FormExample.zip (4.0 KB)

2 Likes

혹시 해당 폼을 플로우 차트 안에서 조건에 따라 반복적으로 값을 입력받도록 하는 것은 불가능한가요?
해당 창에서 입력된 버튼이 A이면 계속 입력창을 새로 만들 수 있도록 플로우를 연결했고, B를 누르면 종료하도록 했는데, A를 눌러도 Form이 새로 열리기 전에 종료가 되어버립니다.