사람간의 프로세스 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

이렇게 서브프로세스를 활용할 경우 다음과 같은 장점이 있다.

    1. 여러 메인 프로세스에서 서브 프로세스를 반복하여 재사용할 수 있다.
    1. 크기가 큰 프로세스의 범위를 서브 프로세스로 쪼개어 쉽게 모니터링 될 수 있도록 조직화 할 수 있다.

먼저 예제에서 사용할 서브 프로세스를 작성하여 등록해 보겠다.

조건 분기의 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) 서브프로세스 지정