사람간의 프로세스 Workflow
1. 조건분기 흐름제어
1.1 조건분기 본 장에서는 Trouble-Ticket 기본 예제를 확장하여
사용자의 장애 유형에 따라 다른 업무의 흐름을 갖도록 하는
“조건 분기” 흐름 유형을 배워보도록 하겠다.
목표하는 프로세스는 [그림 7-1] 과 같다.
그림 7-1) 최종 프로세스 화면
[그림 7-1] 에서 보듯이 목표 프로세스는 사용자가 입력한 장애 유형이 “SW” 이거나 “HW” 영역에 속한 경우는 기존의 업무 흐름을 따르게 되고 “기능개선”에 해당하는 경우는 프로세스를 건너뛰도록 하는 것이다.
- 조건분기 조건 분기 블록을 만들기 위해서는 “흐름제어” 액티비티 그룹내의 “조건분기” 액티비티를 사용하게 된다.
그림 7-2) 조건분기 프로세스
조건분기 액티비티를 생성하기 위해 Gateway아이콘을 클릭 후
drag&drop하면 위와 같이 플로우 차트 상에 조건분기 블록이 나타나게 됩니다.
이 액티비티를 조건분기를 실행하고자 하는 위치에 끌어다 놓는다.
조건 분기를 실행하기 위해서는 분기하기 위한 조건과
각 조건별 실행 프로세스를 정해주어야 한다.
먼저 실행하고자 하는 액티비티를 [그림7-3] 과 같이
드래그 앤 드롭으로 순서대로 조건분기 블록 안에 포함시키도록 한다.
그림 7-3) 실행영역지정
그림 7-4) 두 번째 실행영역 지정
형태가 완성되었으면 각 실행영역의 타이틀을 클릭하여 다음과 같이 지정한다.
- 첫 번째 실행영역: S/W or H/W
- 두 번째 실행영역: Request for improvement
그림 7-6) 분기 프로세스 타이틀 지정
이것으로 조건 분기 프로세스를 만들기 위한 기본적인 실행영역이 완성되었다. SW or HW일 때의 조건을 설정해 보도록 하겠다.
[그림 7-8] 과 같이 속성 창을 띄운 상태에서
Complex Rule을 체크해준 뒤 변수를 class of problem으로 설정하고,
Comparator는 =, Value 값은 software와 hardware로 입력한다.
S/Wor H/W두 가지에 해당하는 경우 우측의 프로세스를 실행하므로
결과적으로 두 조건문은 OR 조건으로 연결해 준 것과 같다.
그림 7-8) 분기 조건 설정(Otherwise)
마지막으로 기능개선요구의 실행조건에 속성 중 ‘Otherwise Condition’
부분을 체크 설정하면 어느 조건에도 해당하지 않을 시 분기되는 조건이 된다.
이제까지 작업한 내용을 저장하여 테스트 해보자.
그림 7-9) 조건분기 실행 내역 (system관련 장애일 때)
위의 실행결과를 보면 두 개의 실행 경로 중
software장애 영역으로 프로세스가 이동하였음을 확인할 수 있다.
이번에는 기타 장애 유형으로 인해 개선이 요구되는 사례를 만들어 보자.
그림 7-10) 조건분기 실행 내역 (개선 요구일 때)
장애유형이 Request for improvement 일 때 프로세스의 흐름이
아래쪽 빈 작업을 실행한 후 종료된 모습을 볼 수 있다.
조건 분기문은 비즈니스 프로세스에서 의사결정을 구현하는
핵심 기능이므로 응용하여 쓸 수 있을 때까지 학습해야 한다.
2. 반복
2.1 Loop(기능개선제안) 이번 장에서는 사용자가 기능개선의 조건으로 진행한 경우
기능개선 내용을 제안할 수 있는 업무로 분기할 수 있도록 개선시켜 보자.
이때 개선조건이 충족될 때까지 반복하여 수행할 수 있도록
“반복흐름” 유형을 배워 보도록 하겠다.
그림 7-11) 최종 프로세스 화면
조건 분기의 Case 2의 Request for improvement에서 앞 장에서
만든 빈 작업 액티비티를 삭제하고 사용할 기능개선제안
프로세스를 다음과 같이 작성한다.
Gateway액티비티를 먼저 설치한 후 일반사람 업무 액티비티
두 개를 추가하여 루프 안에 배치한다.
간단한 형태이므로 플로우 차트의 작성과정은 생략하도록 하겠다.
추가할 변수와 액티비티 별 변수 설정은 다음과 같다.
- 변수정의
프로세스 변수 ID 프로세스 변수 명칭(화면출력용) 데이터 형식 contents contents Text approved approved Yes or No
- 액티비티 정의
액티비티 담당역할 Parameter 제안 Right person(테스터) Contents 심사 Trouble manager Contents(→), approved
- 반복흐름 액티비티 정의
조건 변수 조건 값 approved == No(Directvalue)
그림 7-12) 반복 조건 설정
이와 같이 설정한 후 저장하고 실행시켜 본다.
제안 승인 부분에서 approved 변수를 no를 선택하였을 경우
업무가 다시 반복됨을 확인할 수 있다.
그림 7-13) Loop 화면
3. 서브프로세스
3.1 서브 프로세스의 정의(기능개선제안)
사용자가 “기능개선”의 조건으로 진행한 경우 기능개선 내용을
제안할 수 있는 프로세스로 분기할 수 있도록 업무를 개선시켜 보겠다.
이를 위해 기능개선제안을 수행하는 단계를 단순히 [그림 A] 처럼
해당 조건 블록에 추가하는 것도 방법이지만 우리는 기능개선업무를
“서브 프로세스”라는 개념을 이용하여 [그림 B] 와 같이
그 프로세스의 정의를 분리하여 작업을 처리하도록 해 보겠다.
그림 A
그림 B
이렇게 서브프로세스를 활용할 경우 다음과 같은 장점이 있다.
-
- 여러 메인 프로세스에서 서브 프로세스를 반복하여 재사용할 수 있다.
-
- 크기가 큰 프로세스의 범위를 서브 프로세스로 쪼개어 쉽게 모니터링 될 수 있도록 조직화 할 수 있다.
먼저 예제에서 사용할 서브 프로세스를 작성하여 등록해 보겠다.
조건 분기의 Case 2의 Request for improvement에서 사용할
기능개선제안 프로세스를 다음과 같이 작성한다.
그림 7-14) 기능개선제안 프로세스
흐름제어 메뉴 중에서 반복흐름 액티비티를 먼저 설치한 후
일반사람 업무 액티비티 두 개를 추가하여 루프 안에 배치한다.
간단한 형태이므로 플로우 차트의 작성과정은 생략하도록 하겠다.
참여자 정의와 액티비티 별 변수 설정은 다음과 같다.
- 참여자 정의
참여자 ID 참여자명칭(화면출력용) Drafter drafter Manager Manager
- 변수 정의
프로세수 변수 ID 프로세스 변수 명칭(화면출력용) 데이터 형식 contents contents Text approved 승인 Yes or No
- 액티비티 정의
액티비티 담당역할 Parameter 제안 Drafter contents 심사 Manager Contents(in), approved
- 반복흐름 액티비티 정의
조건 변수 조건 값 approved == No(Directvalue)
이와 같이 설정한 후 저장하여 실행시킨다.
3.2 서브 프로세스의 설정
기존의 액티비티 파렛트에서 제어 -> 서브프로세스를 클릭하여
두 번째 분기점에 끌어다 놓고 기존의 빈 작업은 삭제한다.
그림 7-15) 서브프로세스 정의
- 서브 프로세스 기본 속성 설정
이제 이 서브프로세스의 속성을 설정해 보도록 하겠다.
‘프로세스 정의’ 속성의 프로세스 정의 버튼을 클릭하면
현재 프로세스 매니저상에 등록된 프로세스들의 리스트가 나온다.
만들어 놓은 서브프로세스를 지정한다.
그림 7-16) 서브프로세스 지정