폼을 이용한 프로세스

Uwiki

5.1. 폼을 통한 Trouble-Ticket 구현하기

“4. 기초 예제 프로세스” 에서 구성한 장애처리 프로세스를 폼 기반의 프로세스로 재 구성 할 것이다. 프로세스 구성의 순서는 먼저 사용자가 원하는 형태의 폼을 만든 후 프로세스 변수로 폼을 등록하고 “폼 기반 업무 액티비티”에서 사용한다. 구성할 프로세스는 [그림 6-39]와 같다.

image:ug0639.jpg

그림 6-39. 폼 기반 Trouble-Ticket 프로세스

▪ Form 생성

Form을 생성하기 위해서 “New Form”을 클릭하여 폼 에디터를 실행 시킵니다. 폼 에디터는 컨트롤들을 클릭과 드래그 앤 드롭으로 쉽게 폼을 구성할 수 있으며 소스에서 직접 스크립트를 작성하여 확장 할 수 있다. (Chapter 23 참조)

폼 에디터는 [그림 6-40]과 같으며 “Alias”부분은 반드시 입력해야 하며 폼별로 중복되지 않아야 한다. 폼 구성이 다 되었으면 “저장”버튼을 저장한다.

image:ug0640.jpg

그림 6-40. 폼 에디터

▫ 장애 내용

장애 내용을 입력하는 폼이다. [그림 6-41]과 같이 구성하며 컨트롤들은 [표 6-4]와 같이 입력하고 Alias는 “difficult”로 입력한다.

표 6-4. 장애 내용 폼

컨트롤 이름

이름

달력 컨트롤

date

입력필드(처리기간)

duedate

입력필드(부서)

part

입력필드(이름)

name

입력영역(장애내용)

difficult(칸수: 80, 줄수: 5)

image:ug0641.jpg

그림 6-41. 장애 내용 폼

▫ 처리 담당자

담당자를 지정하는 폼이다. 구성방법은 장애 내용폼과 동일하고 Alias는 “set rightperson”으로 입력한다.

표 6-5. 처리 담당자 폼

컨트롤 이름

이름

달력 컨트롤(접수 일자)

date_date

입력필드(요구기간)

duedate

입력필드(접수부서)

part

입력필드(이름)

name

입력영역(장애내용)

difficult (칸수: 80, 줄수: 5)

담당자 지정 컨트롤

rightperson

image:ug0642.jpg

그림 6-42. 처리 담당자 폼

▫ 장애 내용 개선

“4. 기초 예제 프로세스” 의 예제에서 “Write Person”에 해당하는 폼이다. 접수 일자와 부서는 장애내용 폼의 값에서 매핑 될 것이다. 값 매핑에 대한 내용은 프로세스 구성에서 설명하도록 하겠다. Alias는 “Difficult편집”으로 입력한다..

표 6-6. 장애 내용 개선 폼

컨트롤 이름

이름

달력 컨트롤(접수일자)

date_date

달력 컨트롤(완료일자)

duedate_date

입력필드(접수부서)

part

입력필드(담당자)

right_name

입력영역(장애내용)

difficult(칸수: 50, 줄수: 8)

장애처리 내용

완료처리(칸수: 50, 줄수: 8)

image:ug0643.jpg

그림 6-43. 장애 내용 개선 폼

▪ 참여자 정의

참여자는 “4. 기초 예제 프로세스” 의 예제에서와 같이 구성한다. Manager는 “Role Picker”를 통해 적절한 사용자(예: 어두민)를 매핑시킨다.


표 6-7. 담당자 지정

참여자ID

참여자 명칭(화면출력용)

Initiator

Initiator

Manager

Manager

rightperson

Right Person

▪ 변수 정의

프로세스 변수는 앞에서 구성한 폼을 프로세스에서 사용할 수 있게 등록해야 한다.

표 6-8. 프로세스 변수 지정

프로세스 변수

프로세스 변수(화면출력용)

장애 내용

장애 내용

장애 내용

장애 내용 개선

장애 내용 개선

장애 내용 개선

처리담당지정

처리 담당자

처리담당지정

[그림 6-44]과 같이 데이터 형식에 등록 하였던 폼을 선택하고 “Update” 한다. 나머지 변수 들도 동일하게 구성한다.

image:ug0644.jpg

그림 6-44. 프로세스 변수에 폼 등록

▪ 액티비티 선언 / 흐름 설정

폼 기반의 프로세스를 구성하기 위해서는 “폼 기반 액티비티”를 사용해야 한다. 프로세스 디자이너의 “문서 및 사람업무”에서 “폼 기반 액티비티”를 추가하고 액티비티 명, 담당역할, 폼 변수를 등록시킨다. ▫ 장애 내용

[그림 6-45]과 같이 폼 변수에 “장애내용” 변수를 등록하고 액티비티 명, 담당역할은 [표 6-9]와 같이 설정한다.

표 6-9. 액티비티 설정

액티비티

장애 내용

담당역할

Initiator

변수

장애 내용

image:ug0645.jpg

그림 6-45. 장애 내용

▫ 장애 내용 수령

장애내용을 수령하여 담당자를 지정하는 단계이다. 기본 액티비티 설정방법은 동일하며 전 단계의 폼에서 받은 값을 다른 폼에 보여주기 위해서 값들을 연결시키는 작업을 하게 되는데 이를 데이터 매핑(Mapping)이라 한다.
매핑방법은 왼쪽(값을 받아올 부분)에서 오른쪽(값을 받을 부분)으로 매핑을 시켜준다. 날짜, 부서, 장애내용 등을 장애내용 폼에서 받아와서 장애처리 담당지정 폼에 매핑시켜준다. 담당자는 ‘지정한 name에 _value’(여기서는 rightperson_value)와 참여자 변수를 매핑시켜준다.

표 6-10. 액티비티 설정

액티비티

장애 내용 수령

담당역할

Manager

변수

처리담당 지정

image:ug0646.jpg

그림 6-46. 장애 내용 수령


표 6-11. 액티비티 설정

액티비티

장애 내용 수령

담당역할

rightperson

변수

장애 내용 개선

image:ug0647.jpg

그림 6-47. 장애 내용 개선

▫ 처리 확인

Manager가 개선된 내용을 확인하는 단계이다. 장애 내용 개선 폼을 그대로 가져오기 때문에 매핑 할 필요가 없고, 폼 변수만 설정하면 된다.

표 6-12. 액티비티 설정

액티비티

처리 확인

담당역할

Manager

변수

장애 내용 개선

image:ug0648.jpg

그림 6-48. 처리 확인

▫ 개선 내용 확인

Initiator 가 개선된 내용을 확인하는 단계이다. 여기에서도 폼 변수만 지정한다.

표 6-13. 액티비티 설정

액티비티

개선 내용 확인

담당역할

Initiator

변수

장애 내용 개선

image:ug0649.jpg

그림 6-49. 개선 내용 확인

5.2. 다중값 편집기능 구현

다중값 편집기능이란 지출결의서 등과 같이 여러 항목을 작성해야 할 필요가 있는 경우에 라인을 자동으로 추가해주는 기능을 말한다.

간단한 HTM의 편집으로 구현이 가능하며 다른 폼으로의 값 전달시 추가된 열에 대해서는 매핑이 필요하지 않다. [그림 6-50]과 같이 장애내용 폼에 “+/-“버튼을 추가함으로서 다중값 편집기능을 사용할 수 있다. 폼 에디터의 “소스” 부분을 클릭해서 HTML을 수정한다.

image:ug0650.jpg

그림 6-50. 장애내용 폼 addRow 추가

▪ 다중값의 입력

[그림 6-51]과 같이 버튼을 추가하고 버튼부분에 onClick=”addRow(this)” 를 넣으면 자동으로 줄을 추가할 수 있습니다.

image:ug0651.jpg

그림 6-51. 다중값 입력 추가

▪ 다중값의 전달

자동으로 추가된 열의 값들을 올바르게 전달하기 위해서는 전달을 하고 싶은 부분을<input:foreach variablename=”열 안에 있는 값중하나의 name”></input:foreach>으로 감싸 준다. [그림 6-52]와 같이 “textarea”를 “foreach”로 감싸면 된다. 그리고 “foreach”로 감싸져 있는 부분이 input, textarea등 여러 컨트롤로 구성되어 있으면 그 중 하나의 “name”만 “foreach”의 “variablename”에 입력하면 전체가 자동으로 값이 전달된다.

image:ug0652.jpg

그림 6-52. 다중값의 전달을 위한 옵션

액티비티 설정에서의 사용법은 [그림 6-53]에서와 같이 “difficult”하나만 연결하면 여러 열이 자동으로 전달된다.

image:ug0653.jpg

그림 6-53. Foreach 옵션의 사용

[그림 6-54], [그림 6-55]에서 보는 것과 같이 장애내용에서 열을 하나 추가하고 내용을 입력후 완료 시킨다. 장애내용수령에서 보는 것과 같이 자동으로 값이 전달됨을 볼 수 있다.

image:ug0654.jpg

그림 6-54. addRow의 사용

image:ug0655.jpg

그림 6-55. addRow의 사용

5.3. Document Library Load Activity

Document Library Load Activity(이하 DLLoad Activity.)는 폼 기반으로 구성된 프로세스에서 완료된 폼들을 자동으로 저장해주는 EDM 시스템이다. 지출결의 프로세스나 견적서 작성 프로세스등 문서의 저장이 필요한 프로세스 일 경우에 유용하게 사용할 수 있다. DLLoad Activity를 쓰기 위해선 사용자가 원하는 페이지에 “Document Library” 포틀릿을 추가하고 폴더를 생성한다. [그림 6-56]과 같이 “test”폴더를 하나 만들겠다.

image:ug0656.jpg

그림 6-56. Document Library 포틀릿

그리고 폼 기반 Trouble-Ticket 프로세스에서 외부연동에 있는 DLLoad Activity를 추가한다. DLLoad Activity의 속성창에서 “FolderId”에서 원하는 폴더(현재는 “test”폴더로 지정)를 선택, “File Variable”에서는 저장되기를 원하는 폼을 선택한다. DocName(반드시 영문), DocTitle을 입력하고 “Apply” 한다.

image:ug0657.jpg

그림 6-57. DLLoad Activity 설정