서비스 플로우

개요

서비스 플로우는 BPMN 기반으로 메시지 처리 흐름을 정의하는 기능입니다. 서비스 플로우를 사용하면 메시지 처리 절차와 연계 로직을 시각적인 다이어그램으로 구성할 수 있습니다.

서비스 플로우의 주요 특징은 다음과 같습니다.

  • 드래그 앤 드롭 방식으로 플로우를 편집할 수 있습니다.

  • 이벤트, 액티비티, 게이트웨이 등 다양한 노드 타입을 지원합니다.

  • 조건에 따른 분기와 병렬 처리를 구성할 수 있습니다.

  • 외부 시스템 연계와 데이터 처리 로직을 하나의 흐름으로 설계할 수 있습니다.

BPMN(Business Process Model and Notation)은 비즈니스 프로세스를 표준화된 다이어그램으로 표현하는 표기법으로, 프로세스 흐름을 시각적으로 모델링하고 이해하는 데 사용됩니다.

플로우 편집기

리소스 트리에서 원하는 거래 또는 거래 그룹의 컨텍스트 메뉴를 열고 [리소스 생성] > [플로우 생성]을 선택합니다.

워크스페이스의 탭 편집기 영역에 [플로우 생성] 탭이 표시되며 플로우를 생성 및 편집할 수 있는 플로우 편집기가 표시됩니다.

플로우 편집기는 팔레트, 캔버스, 프로퍼티 패널, 변수 패널의 4가지 영역으로 구성됩니다.

flow create
  • ① 팔레트

    팔레트는 플로우 다이어그램을 작성하기 위한 노드를 제공합니다. 노드는 크게 이벤트, 액티비티, 게이트웨이 3가지 유형이 있습니다.

    다음은 AnyLink에서 제공하는 노드 타입입니다.

    아이콘 노드 타입 설명

    flow palette start event

    시작 이벤트

    플로우의 시작점을 나타냅니다. 모든 플로우는 하나의 시작 이벤트로 시작해야 합니다.

    flow palette end event

    종료 이벤트

    플로우의 종료점을 나타냅니다. 모든 실행 경로는 종료 이벤트로 끝나야 합니다.

    flow palette activity

    액티비티

    실제 작업을 수행하는 노드입니다. 액티비티 타입은 액티비티 노드를 참고합니다.

    flow palette split gateway

    스플릿 게이트웨이

    하나의 흐름을 2개 이상의 병렬 또는 조건부 경로로 분리합니다.
    AND, XOR, OR의 3가지 타입이 있습니다.

    flow palette join gateway

    조인 게이트웨이

    여러 경로를 하나의 흐름으로 결합합니다.
    AND, XOR, OR의 3가지 타입이 있습니다.

    노드 타입 외에 스윔레인을 제공합니다. 스윔레인은 플로우를 시각적으로 구분하기 위한 영역입니다. 플로우의 동작에는 영향을 주지 않으며, 업무 역할이나 처리 단계 등 원하는 기준에 따라 자유롭게 구성할 수 있습니다.

    세로형(flow palette vertical swimlane)과 가로형(flow palette horizontal swimlane) 레이아웃을 지원하며, 레인과 풀(Pool)별로 이름을 설정할 수 있습니다. 또한 레인을 추가/삭제하거나 크기를 조절할 수 있습니다.

  • ② 캔버스

    캔버스는 팔레트의 노드를 끌어와 플로우를 편집하는 영역입니다. 캔버스에서 제공하는 기능에는 컨트롤 버튼노드 편집 도구 모음이 있습니다.

  • ③ 프로퍼티 패널

    선택한 노드의 속성을 편집합니다. 다음은 기본 설정 항목이며, 선택한 노드별 추가 설정 항목은 각 노드 설명을 참고합니다.

    항목 설명

    패키지

    플로우가 속한 패키지입니다.

    아이디 *

    플로우의 고유 식별자입니다. 영문, 숫자 및 언더스코어(_)를 사용할 수 있으며, 2~32자 이내로 입력해야 합니다.

    이름

    플로우의 표시 이름입니다. 한글, 영문, 숫자 및 언더스코어(_)를 사용할 수 있으며, 2~32자 이내로 입력해야 합니다. 미입력 시 아이디 값으로 자동 설정됩니다.

    설명

    플로우에 대한 설명을 작성합니다.

  • ④ 변수 패널

    플로우에서 사용하는 변수를 생성, 조회, 수정합니다. 변수는 공통 변수와 메시지 변수로 구분됩니다. 변수를 설정하는 방법은 변수 관리를 참고합니다.

컨트롤 버튼

캔버스 왼쪽 하단의 컨트롤 버튼은 플로우 정렬 및 화면 표시를 제어하는 기능을 제공합니다.

버튼 기능 설명

flow control zoom out button / flow control zoom in button

줌 아웃/줌 인

플로우를 확대하거나 축소합니다. 플로우가 최대 또는 최소 크기에 도달하면 해당 버튼은 비활성화됩니다.

flow control fit view button

화면 맞춤

플로우를 화면 크기에 맞게 조정합니다.

flow control toggle activate button / flow control toggle inactivate button

편집 잠금

작업 중인 노드의 편집 잠금 기능을 활성화하거나 해제합니다.

flow control multi select button / flow control basic button

다중 선택

플로우의 다중 선택 기능을 활성화하거나 해제합니다. 기능을 활성화하면 마우스를 드래그하여 여러 노드와 연결선을 한 번에 선택할 수 있습니다.

flow control undo button

실행 취소/다시 실행

직전에 수행한 작업을 순차적으로 취소합니다.

flow control vertical align button

세로 정렬

선택한 노드와 연결선을 세로 방향으로 정렬합니다.

flow control horizontal align button

가로 정렬

선택한 노드와 연결선을 가로 방향으로 정렬합니다.

노드 편집 도구 모음

캔버스에서 특정 노드를 선택하면 노드 상단에 노드 편집 도구 모음이 표시됩니다. 노드 편집 도구 모음에서는 노드의 색상과 스타일, 속성을 지정할 수 있습니다.

flow edit activity node tools
버튼 기능 설명

flow node text color edit tool

글꼴 색

노드의 글꼴 색을 지정할 수 있습니다.

flow node fill color edit tool

채우기

노드의 색을 지정할 수 있습니다.

flow node bordor color edit tool

윤곽선

노드의 테두리 색을 지정할 수 있습니다.

flow node color theme edit tool

색상 테마

노드의 색과 테두리 색을 한꺼번에 지정할 수 있습니다.

flow node attribute edit tool

노드 속성

액티비티 노드와 게이트웨이 노드의 타입을 지정할 수 있습니다.

노드

이벤트 노드

이벤트 노드는 시작 이벤트와 종료 이벤트 2가지 종류가 있습니다. 모든 플로우는 하나의 시작 이벤트로 시작해 하나의 종료 이벤트로 끝나야 합니다.

유형 설명

시작 이벤트

플로우의 시작점

종료 이벤트

플로우의 종료점

캔버스에서 이벤트 노드를 선택하면 하단의 프로퍼티 패널에 해당 노드의 설정 항목이 표시됩니다.

속성 설명

아이디

이벤트의 고유 식별자이며, 자동 생성됩니다.

이름

이벤트의 표시 이름입니다.

액티비티 노드

액티비티 노드는 아웃바운드 룰 서비스, 배치 룰, 매핑, 커스텀 액티비티와 같이 서비스 플로우에서 실제 수행할 작업 노드입니다.

다음은 설정 가능한 액티비티 타입이며, 노드 편집 도구 모음에서 지정할 수 있습니다.

  • HTTP 아웃바운드 룰

  • TCP 아웃바운드 룰

  • FTP 아웃바운드 룰

  • FILE 아웃바운드 룰

  • DB 아웃바운드 룰

  • 배치 룰

  • 응답 메시지

  • 외부 매핑

  • 내부 매핑

  • 커스텀 액티비티

캔버스에서 액티비티 노드를 선택하면 하단의 프로퍼티 패널에 해당 노드의 설정 항목이 표시됩니다.

속성 설명

아이디

액티비티의 고유 식별자입니다.

이름 *

액티비티의 표시 이름입니다.

설명

액티비티에 대한 설명입니다.

서비스 호출

액티비티 타입(룰/매핑/커스텀 액티비티)에 따라 연결할 리소스를 지정합니다.
필드 오른쪽 [찾기] 버튼을 클릭하면 표시되는 서비스 호출 다이얼로그에서 리소스를 선택합니다.

파라미터 설정

아웃바운드 룰 타입의 액티비티는 파라미터를 설정할 수 있습니다. 요청 및 응답 메시지의 변수 설정과 매핑 설정을 수행합니다.

flow set parameter
항목 설명

변수 설정

노드의 요청/응답 메시지와 연결할 플로우 변수를 설정합니다. 요청 메시지와 응답 메시지 각각에 대해 사용할 플로우 변수를 선택합니다.

매핑 설정

노드의 요청/응답 메시지와 플로우 변수 간의 매핑 룰을 설정합니다.

요청 시에는 플로우 변수의 값을 노드의 요청 메시지 필드에 매핑하고, 응답 시에는 노드의 응답 메시지 필드 값을 플로우 변수에 매핑합니다.

매핑 버튼(mapping button)을 클릭하면 매핑 다이얼로그가 표시됩니다. 각 필드를 선으로 연결하여 매핑을 설정할 수 있습니다. 자세한 매핑 설정 방법은 매핑을 참고합니다.

플로우 변수의 메시지와 노드의 요청/응답 메시지가 동일한 경우, 별도의 매핑 설정 없이 자동으로 매핑됩니다.

게이트웨이 노드

게이트웨이 노드는 플로우의 분기와 합류를 제어하는 노드입니다.

플로우의 분기를 제어하는 스플릿 게이트웨이(Split Gateway)와 합류를 제어하는 조인 게이트웨이(Join Gateway)는 각각 경로를 실행하는 방법에 따라 AND, XOR, OR의 3가지 타입으로 나눌 수 있습니다.

스플릿 게이트웨이와 조인 게이트웨이는 동일한 타입끼리 쌍으로 사용해야 합니다. 노드 타입은 노드 편집 도구 모음에서 지정할 수 있습니다.

타입 아이콘 노드 타입 설명

XOR

flow Split XOR gateway node

Split XOR

조건에 따라 여러 경로 중 하나의 경로만 선택되어 실행됩니다.

flow Join XOR gateway node

Join XOR

여러 경로 중 하나의 흐름이 도착하면 즉시 다음 단계로 진행합니다.

AND

flow Split AND gateway node

Split AND

하나의 흐름을 여러 경로로 동시에 분기하며, 모든 경로가 병렬로 실행됩니다.

flow Join AND gateway node

Join AND

모든 경로의 실행이 완료될 때까지 대기한 후 다음 단계로 진행합니다.

OR

flow Split OR gateway node

Split OR

조건을 만족하는 하나 이상의 경로가 선택되어 실행됩니다.

flow Join OR gateway node

Join OR

활성화된 모든 경로가 도착할 때까지 대기한 후 다음 단계로 진행합니다.

배타적(XOR) 게이트웨이

조건에 따라 여러 경로 중 하나의 경로만 선택하여 실행합니다.

  • 분기 시 조건에 따라 하나의 경로만 실행합니다.

  • 결합 시 하나의 흐름이 도착하면 즉시 다음 단계로 진행합니다.

연결선에 조건식을 설정하여 분기 조건을 정의합니다. 조건식을 설정하는 방법은 조건식 설정을 참고합니다.

옵션 설명

조건식

조건 분기에 사용되는 표현식을 설정합니다.

Default flow 여부

해당 경로를 기본 경로로 지정합니다. 조건이 모두 false인 경우 기본 경로가 선택됩니다.

병렬(AND) 게이트웨이

모든 경로를 동시에 실행합니다.

  • 분기 시 모든 경로를 동시에 실행합니다.

  • 결합 시 모든 경로가 완료될 때까지 대기한 후 다음 단계로 진행합니다.

포용적(OR) 게이트웨이

조건을 만족하는 모든 경로를 실행합니다.

  • 분기 시 조건이 true인 모든 경로를 실행합니다.

  • 결합 시 실행된 모든 경로가 완료될 때까지 대기한 후 다음 단계로 진행합니다.

연결선에 조건식을 설정하여 분기 조건을 정의합니다. 조건식을 설정하는 방법은 조건식 설정을 참고합니다.

옵션 설명

조건식

조건 분기에 사용되는 표현식을 설정합니다.

항상 true 적용 여부

해당 경로가 항상 실행되도록 설정합니다.

OR 게이트웨이는 기본 경로(default flow)를 지원하지 않으므로, 모든 연결선에 명시적 조건이 필요합니다.

연결선

연결선은 노드 간의 흐름을 나타내는 화살표로, 이벤트, 액티비티, 게이트웨이를 연결하여 업무 흐름을 구성합니다. 스플릿 게이트웨이에서 나가는 연결선에는 분기 조건을 설정할 수 있습니다.

조건식 설정

XOR 게이트웨이와 OR 게이트웨이의 연결선에는 조건식을 설정해야 합니다.

조건식을 설정하는 방법은 캔버스에서 연결선을 선택하고, 프로퍼티 패널의 [조건문 사용] 탭에서 조건문을 입력합니다.

조건식 문법

조건식은 ${variable.field operator value} 형식을 사용합니다.

사용 가능한 연산자는 다음과 같습니다.

연산자 설명 예시

==

같음

${request.type == 'VIP'}

!=

같지 않음

${request.status != null}

>

초과

${request.amount > 10000}

<

미만

${request.count < 5}

>=

이상

${request.score >= 80}

<=

이하

${request.retry <= 3}

사용 가능한 피연산자 타입은 다음과 같습니다.

타입 예시 설명

문자열

${request.type == 'APPROVED'}

문자열은 작은따옴표('') 또는 큰따옴표("")로 감싸서 입력합니다.

숫자

${request.amount > 10000}

숫자는 따옴표 없이 입력합니다.

불리언

${request.isValid == true}

불리언 값은 true 또는 false로 입력합니다.

null

${request.field != null}

null은 값이 없음을 의미하며, 따옴표 없이 입력합니다.

연산자 없이 변수만 사용하면 해당 값은 불리언 값으로 평가됩니다.

다음은 조건식 예시입니다.

${request.amount > 10000}       // 숫자 비교
${request.status == 'APPROVED'} // 문자열 비교
${request.type != null}         // null 체크
${request.isValid}              // 참/거짓 판단

플로우 편집

노드

다음은 플로우 편집기에서 노드를 추가, 편집, 삭제하는 방법입니다.

팔레트에서 노드를 선택하고 캔버스의 원하는 위치에 끌어다 놓습니다.

flow editor node selected
  • 노드를 클릭하면 선택된 노드는 보라색 테두리로 표시됩니다. 빈 영역을 클릭하면 선택이 해제됩니다.

  • 노드를 드래그하여 위치를 변경할 수 있으며, Ctrl을 눌러 여러 개의 노드를 일괄 선택할 수 있습니다.

  • 액티비티 노드는 크기를 조절할 수 있습니다.

노드를 삭제하려면 노드를 선택한 후 Backspace 또는 Delete를 누릅니다.

노드 삭제 시 연결된 연결선도 함께 삭제됩니다.

연결선

다음은 플로우 편집기에서 연결선을 추가, 편집, 삭제하는 방법입니다.

  1. 연결선을 생성할 노드에 마우스를 올립니다.

  2. 나타나는 4개의 연결점 중 하나를 클릭합니다.

    flow editor transition
  3. 연결선을 마우스로 끌어서 타깃 노드의 중앙으로 끌면 연결선이 생성됩니다.

    연결점을 클릭 시 선택 가능한 노드가 표시되며, 노드를 선택하면 연결선과 선택한 노드가 함께 생성됩니다.

  4. 연결선의 조절점을 이용해 형태를 바꿀 수 있습니다. 형태를 변형할 위치에서 연결선을 클릭하면 조절점이 나타납니다. 조절점을 드래그하여 원하는 형태로 편집합니다.

    flow editor transition control points

    연결선 양 끝의 2개 점은 연결된 노드 위치에 따라 자동 조정됩니다.
    중간의 3개 점을 드래그하여 연결선 형태를 변경할 수 있습니다.

  5. 연결선을 삭제하려면 연결선을 선택한 후 Backspace 또는 Delete를 누릅니다.

변수 관리

변수는 플로우 실행 중 데이터를 저장하고 전달하기 위해 사용합니다. 액티비티의 요청/응답 메시지와 매핑하여 노드 간 데이터를 주고받을 수 있습니다.

flow editor create variable

변수 패널에서 [+ 생성] 탭을 클릭하면 변수 생성 화면이 표시됩니다. 변수는 공통 변수와 메시지 변수로 구분됩니다.

다음은 변수 생성 시 공통 설정 항목입니다.

항목 설명

아이디 *

변수의 고유 식별자입니다. 영문, 숫자 및 언더스코어(_)를 사용할 수 있으며, 2~32자 이내로 입력해야 합니다.

이름

변수의 이름입니다. 한글, 영문, 숫자 및 언더스코어(_)를 사용할 수 있으며, 2~32자 이내로 입력해야 합니다. 미입력 시 아이디 값으로 자동 설정됩니다.

설명

변수에 대한 설명을 작성합니다.

변수 타입

변수 타입을 선택합니다. 공통 변수와 메시지 변수 중에서 선택합니다.

  • Basic (공통 변수)

  • Message (메시지 변수)

공통 변수

플로우에서 직접 생성하여 사용하는 변수입니다. 초기화 값과 데이터 타입을 설정합니다.

항목 설명

초기화 값

변수의 초기값을 설정합니다.

타입

변수의 데이터 타입을 선택합니다. String, Integer, Boolean 중에서 선택합니다.

메시지 변수

메시지 리소스를 변수로 사용합니다. 플로우에서 사용 가능한 메시지 목록에서 하나를 선택합니다.

항목 설명

메시지 아이디

드롭다운 목록에서 변수로 사용할 메시지를 선택합니다.

플로우 레벨에서 정의된 변수는 플로우 전체에서 사용 가능합니다.

정의된 변수는 각 노드의 프로퍼티 패널에서 설정할 수 있으며, 노드 타입에 따라 설정 방식이 다릅니다.

플로우 조회 및 수정

리소스 트리에서 원하는 플로우를 클릭하면 워크스페이스의 탭 편집기 영역에 해당 플로우 탭이 표시됩니다.

flow editor edit flow

플로우 다이어그램 편집과 노드 속성 설정이 완료되면 하단의 [저장] 버튼을 클릭합니다.