서비스 플로우 에디터

본 장에서는 AnyLink 스튜디오의 서비스 플로우 에디터의 기능과 사용법에 대해 설명한다.

1. 개요

서비스 플로우는 서비스의 수행 절차를 그래프로 표현한 것이다. 서비스 플로우 다이어그램(SFDL: Service Flow Definition Language) 파일을 생성하기 전에 AnyLink 프로젝트가 생성되어 있어야 한다. 서비스 플로우의 수신(Receive) 메시지 이벤트들이 AnyLink의 내부 서비스로 등록된다. 대부분 AnyLink 내부 서비스는 서비스 플로우의 메시지 이벤트이며, 플로우에 정의된 흐름을 따라 진행 후 플로우의 서비스 액티비티를 호출하게 된다.

2. 서비스 플로우 에디터 생성

서비스 플로우 생성은 왼쪽 프로젝트 네비게이터의 컨텍스트 메뉴에서 [새로만들기] > [플로우]를 선택한다. 플로우 다이어그램에서 각 항목을 설정하고 [Finish] 버튼을 클릭한다.

figure flow diagram wizard
플로우 다이어그램
항목 설명

플로우 아이디

서비스 플로우 리소스 아이디를 입력한다.

영어, 숫자, 특수문자(_)만 사용이 가능하며 첫 글자는 영어로 입력한다.

플로우 이름

사용할 플로우명을 입력한다.

한글, 영어, 숫자, 특수문자 입력이 가능하다. 플로우 이름은 XML Naming Convention을 따른다.

3. 서비스 플로우 다이어그램

서비스 플로우를 생성하면 기본 화면이 나오며 오른편에 다이어그램을 추가할 수 있는 팔레트와 편집창 상단 툴바가 있다.

figure service flow
서비스 플로우 화면
  • [툴바]

    툴바는 플로우 다이어그램의 정렬, 화면 표시방법 및 디버거 동작을 위한 버튼으로 구성된다.

    figure flow toolbar
    서비스 플로우 화면 - 툴바
    버튼 설명

    image

    다이어그램을 왼쪽으로 정렬한다.

    image

    다이어그램을 오른쪽으로 정렬한다.

    image

    다이어그램을 위쪽으로 정렬한다.

    image

    다이어그램을 아래쪽으로 정렬한다.

    image

    다이어그램을 중앙(상하)으로 정렬한다.

    image

    다이어그램을 중앙(좌우)으로 정렬한다.

    image

    다이어그램들의 수평 거리를 일정하게 정렬한다.

    image

    다이어그램을 수직 거리를 일정하게 정렬한다.

    image

    다이어그램을 ID/Name 표시를 변경한다.

    image

    Transition Condition 표시 유무를 변경한다.

    image

    디버거 모드를 실행시킨다. 서버 선택 다이얼로그가 나타난다.

    image

    디버깅을 위한 메시지 설정 다이얼로그가 나타난다.

    image(13번째 아이콘)

    현재 디버거 상태를 조회한다.

    image

    디버거를 다음 액티비티로 이동시킨다.

    image

    디버거를 다음 Break Point로 이동시킨다.

    image

    디버거를 플로우 끝까지 이동시킨다.

    image

    디버거가 Running 상태인 경우 다음 액티비티에서 정지시킨다.

    image(18번째 아이콘)

    디버거 상태를 나타내는 아이콘이다. (버튼 아님)

    image

    마우스 포인터를 'Selection' 상태로 변경한다.

    image

    마우스 포인터를 'Transition' 상태로 변경한다.

  • [팔레트]

    팔레트는 서비스 플로우에서 제공하는 서비스 플로우 다이어그램이다.

    서비스 플로우는 프로세스(Process)라고도 부르며, 액티비티, 이벤트와 트랜지션으로 구성된다. 원하는 객체를 클릭하여 에디터 영역에 올려 사용한다.

    figure service palatte
    서비스 플로우 화면 - 팔레트
    구분 설명

    Selection, Transition

    • image(Select) : 트랜지션 설정을 종료한다.

    • image(Transition) : 트랜지션은 액티비티 또는 이벤트들 간의 흐름의 순서를 나타내는 화살표이다. 에디터의 각 객체를 연결할 수 있다. 각 단위 액티비티 간의 흐름을 표시하는 것으로서, 실제로 업무 프로세스의 흐름을 액티비티, 이벤트, 게이트웨이 간 연결하여 표시한다. 트랜지션의 또 하나의 기능은 게이트웨이 이후에 조건에 따라 업무 흐름을 결정할 때 조건을 설정하는 것이다.

    액티비티(Activity)

    작업(Task)이라고도 부르며, 서비스 플로우에 해당 위치로 흐름이 도달하게 되면 실행해야 할 어떤 일들을 표현한다.

    플로우에 그려진 서비스 액티비티는 대부분 어댑터의 아웃바운드 룰 서비스를 의미한다. 자세한 설명은 액티비티를 참고한다.

    이벤트(Event)

    사건을 나타내는 특별한 액티비티로 메시지, 에러, 타임아웃 등의 사건을 나타낸다.

    이벤트는 전후 트랜지션 유무에 따라 들어오는 트랜지션이 없는 시작 이벤트(Start Event), 들어오는 트랜지션과 나가는 트랜지션이 모두 있는 중간 이벤트(Intermediate Event), 나가는 트랜지션이 없는 끝 이벤트(End Event)로 구분할 수 있다. 자세한 설명은 이벤트를 참고한다.

    게이트웨이(Gateway)

    흐름을 제어하는데 사용되는 특별한 액티비티 형태라고 생각할 수 있다.

    크게 하나의 트랜지션 흐름을 여러 개의 트랜지션 흐름으로 분리시켜주는 스플릿 게이트웨이(Split Gateway)와 그 반대로 여러 개의 트랜지션 흐름을 하나의 트랜지션 흐름을 합쳐주는 조인 게이트웨이(Join Gateway)가 있다. 자세한 설명은 게이트웨이를 참고한다.

    스웜레인 / 블록 / Annotations

    • 스웜레인 : 서비스 플로우 상의 Task를 구분해주는 선을 나타낸다.

    • 블록 : 특정 구역을 묶어서 표한하기 위해 사용되는 액티비티 묶음이다.

    • Annotations : 플로우의 메모 기능을 제공하기 위한 객체이다.

    자세한 설명은 스웜레인 / 블록 / ANNOTATIONS를 참고한다.

    Utility

    서비스 플로우에서 사용되는 Utility이다. 자세한 설명은 Utility를 참고한다.

4. 액티비티

다음은 액티비티의 종류에 대한 설명이다.

0메뉴 설명

image (TCP 액티비티)

TCP 아웃바운드 룰 서비스를 호출할 수 있는 액티비티이다.

image (유저 클래스 액티비티)

유저 클래스를 사용할 수 있는 액티비티이다.

image (매핑 액티비티)

Source와 Target 변수를 설정하여 매핑해 주는 액티비티이다.

image (응답 메시지 액티비티)

서비스의 응답 메시지로 사용할 수 있는 액티비티이다. 이벤트 메시지의 요청 메시지로부터 응답 메시지를 보내준다. 정상 응답과 오류 응답 2개의 형태로 구현할 수 있다.

image (서브 플로우 액티비티)

다른 서비스 플로우 프로세스를 호출하는 액티비티이다.

image (멀티바인딩 액티비티)

멀티바인딩 서비스를 호출할 수 있는 액티비티이다.

image (HTTP 액티비티)

HTTP 아웃바운드 룰 서비스를 호출할 수 있는 액티비티이다.

image (웹서비스 액티비티)

웹 서비스 형태로 만들어진 서비스를 import하여 사용할 수 있는 액티비티이다.

image (TMAX 액티비티)

미들웨어인 Tmax와 관련된 서비스를 호출할 수 있는 액티비티이다.

image (DB 액티비티)

DB 어댑터 서비스를 호출할 수 있는 액티비티이다.

image (파일 액티비티)

File 어댑터 서비스를 호출할 수 있는 액티비티이다.

image (FTP 액티비티)

FTP 어댑터 서비스를 호출할 수 있는 액티비티이다.

image (배치 액티비티)

배치 아웃바운드 룰을 호출할 수 있는 액티비티이다.

image (MQ 액티비티)

MQ 아웃바운드 룰을 호출할 수 있는 액티비티이다.

image (SAP 액티비티)

SAP 아웃바운드 룰을 호출할 수 있는 액티비티이다.

image (SMTP 액티비티)

SMTP 아웃바운드 룰을 호출할 수 있는 액티비티이다.

image (WebDav 액티비티)

WebDav 아웃바운드 룰을 호출할 수 있는 액티비티이다.

image (Tuxedo 액티비티)

Tuxedo 아웃바운드 룰을 호출할 수 있는 액티비티이다.

image (JMS 액티비티)

JMS 아웃바운드 룰을 호출할 수 있는 액티비티이다.

image (ISO8583 액티비티)

ISO8583 아웃바운드 룰을 호출할 수 있는 액티비티이다.

image (UDP 액티비티)

UDP 아웃바운드 룰을 호출할 수 있는 액티비티이다.

image (ProObject 액티비티)

ProObject 아웃바운드 룰을 호출할 수 있는 액티비티이다.

액티비티는 입력, 출력에 해당하는 파라미터를 가진다.

입력 파라미터는 해당 액티비티가 읽기 위해 사용하는 변수이고, 출력 파라미터는 해당 액티비티가 쓰기 위해 사용하는 변수이다. 두 변수 모두 프로세스나 액티비티를 둘러싼 블록 액티비티에 선언된다.

figure service activity inoutput
액티비티의 입력과 출력

4.1. 액티비티 설정

액티비티를 에디터 화면으로 갖고 온 뒤 더블클릭 또는 마우스를 객체 위로 올리면 나타나는 Activity Preference 화면에서 액티비티 설정을 할 수 있다.

figure activity preference
Activity Preference 화면
메뉴 설명 메뉴 설명

image

일반정보

image

Loop 설정

image

파라미터 설정

image

복사

image

핸들러 설정

image

삭제

 

기본 정보

다음은 활성화된 Activity Preference 화면에 대한 설명이다.

figure activity preference basic
Activity Preference 화면 - 기본 정보
항목 설명

ID

해당 객체의 아이디를 입력할 수 있는 항목이다.

Name

해당 객체 이름을 알려주는 항목이다.

Description

해당 액티비티의 역할을 간략하게 나타낸다.

Documentation

해당 액티비티에 대한 설명으로 사용자의 편의를 위한 항목이다.

Session ID

입력한 Session ID를 가지는 다른 액티비티, 이벤트들과 동일한 세션으로 연결하기 위한 항목이다.

Session Key

입력한 세션 키를 가지는 세션으로 연결하기 위한 항목이다. TCP 액티비티에서만 설정 가능하다.

엔드포인트 라우팅

매핑에서 설정된 VALUE를 가진 엔드포인트나 엔드포인트 그룹에 라우팅을 하기 위한 항목이다.

아웃바운드룰에서 설정한 엔드포인트 그룹이 WebAdmin의 [구성관리] > [어댑터]의 엔드포인트 그룹에서 매핑으로 설정되어 있어야 한다. 하위 엔드포인트/엔드포인트 그룹의 VALUE 설정시 해당 엔드포인트로 요청메시지가 전달된다.

Address 동적변경

TCP 클라이언트인 경우 요청할 대상의 IP, Port를 동적으로 변경하기 위한 항목이다.

URL 동적변경

HTTP 아웃바운드의 경우 요청할 대상의 IP, Port를 동적으로 변경하기 위한 항목이다.

Location

객체의 위치를 나타내는 x, y 좌표값이다. 좌표 설정을 통해 액티비티의 위치를 변경할 수 있지만, 에디터에서 마우스 드래그를 통해 옮기는 것을 추천한다.

Width

객체의 위치를 나타내는 값으로, Location과 마찬가지로 에디터에서 드래그로 크기를 조절 가능하다.

라인 색상 변경

객체의 외곽 라인 색상을 변경시킬 수 있는 항목이다.

폰트 색상 변경

객체의 글자 폰트 색상을 변경시킬 수 있는 항목이다.

 

아웃바운드 룰(서비스) 설정

다음은 Activity Preference 화면[아웃바운드 룰(서비스) 설정]에 대한 설명이다.

figure activitypreference outboundrule
Activity Preference 화면 - 아웃바운드 룰 설정
항목 설명

호출서비스

사전에 생성한 아웃바운드 룰 서비스를 검색하여 적용시킬 수 있는 항목이다. 단, 액티비티에 맞는 아웃바운드 룰을 적용시켜야 한다.

[Browse...] 버튼을 클릭하면 서비스를 검색할 수 있는 다이얼로그가 생성된다.

전송모드

  • Request : 가장 일반적인 메시징 형태로 요청에 대한 응답을 기대하는 전송모드이다.

  • One Way : 응답을 기다리지 않고 요청 메시지만 전달하는 전송모드이다.

  • One Way with ack : 요청 메시지가 처리된 후 ACK 메시지를 기대하는 형태이다. 보통 딜리버리 채널에서 전달 보장을 처리한 후 ACK 메시지 또는 NAK 메시지를 답변으로 보내는 전송모드이다.

매핑 설정

  • 요청 매핑 사용 : 전 서비스 플로우의 INPUT 파라미터와 자신의 요청 메시지에 관한 매핑을 정의한다.

  • 응답 매핑 사용 : 자신의 응답 메시지와 OUPUT 파라미터에 관한 매핑을 정의한다.

  • 에러 매핑 사용 : 에러 관련해서 설정한 메시지와 자신의 파라미터 변수와의 매핑을 정의한다.

매핑과 관련된 내용은 매핑 관련 다이얼로그를 참조한다.

로그 OFF

해당 액티비티에 대한 로그를 OFF한다.

요청 커스텀 로깅

요청 커스텀 로깅을 사용한다.

[Browse...] 버튼을 클릭하면 커스텀 로그 아웃바운드 룰을 설정하고 [Mapping...] 버튼을 클릭해서 매핑을 설정한다.

응답 커스텀 로깅

응답 커스텀 로깅을 사용한다.

[Browse...] 버튼을 클릭하면 커스텀 로그 아웃바운드 룰을 설정하고 [Mapping...] 버튼을 클릭해서 매핑을 설정한다.

에러 커스텀 로깅

에러 커스텀 로깅을 사용한다.

[Browse...] 버튼을 클릭하면 커스텀 로그 아웃바운드 룰을 설정하고 [Mapping...] 버튼을 클릭해서 매핑을 설정한다.

 

Skip 조건

다음은 Activity Preference 화면Skip 조건에 대한 설명이다.

figure activity preference skipcondition
Activity Preference 화면 - Skip 조건
항목 설명

Skip 사용

Skip 항목을 선택하면 프로세스 변수에대한 Skip 조건을 사용할 수 있다.

Skip 조건

선택한 변수에 대한 조건문을 작성해 주어야 한다.

[변수 선택] 버튼을 클릭하면 프로세스 변수를 선택할 수 있는 Select Variable 화면(Activity Preference 화면 - Select Variable 화면)이 나타난다.

figure select variable
Activity Preference 화면 - Select Variable 화면

 

파라미터 설정

파라미터로 설정된 변수가 실제 서비스 호출에 이용된다. 매핑이 있다면 Input 파라미터는 Input 매핑의 소스가 되고, Output 파라미터는 Output 매핑에서 타겟이 된다.

다음은 Activity Preference 화면[파라미터 설정]에 대한 설명이다.

figure parameter setting
Activity Preference 화면 - 파라미터 설정
  • Input/Output 파라미터 설정

    항목 설명

    ID

    변수 파라미터 아이디이다.

    INPUT

    해당 변수 타입을 Input으로 설정한다.

    OUTPUT

    해당 변수 타입을 Output으로 설정한다.

    ERROR

    해당 변수 타입을 Error로 설정한다.

  • 버튼

    버튼 설명

    [New Parameter]

    새로운 파라미터를 생성할 수 있다. 버튼을 클릭하면 Add New Process Variable 화면(Activity Preference 화면 - Add New Process Variable)이 나타난다.

    [Select Parameter]

    이미 생성되어 있는 파라미터를 선택할 수 있는 Select Variable 화면(Activity Preference 화면 - Select Variable 화면)이 생성된다.

    [Delete]

    파라미터 화면에서 선택한 파라미터를 삭제한다.

    [Property]

    선택된 파라미터 정보를 보여준다.

    [Up]

    선택한 파라미터의 위치를 한 칸 높인다.

    [Down]

    선택한 파라미터의 위치를 한 칸 내린다.

    [New Parameter] 버튼을 클릭하면 Add New Process Variable 화면이 나타난다.

    figure add new process variable
    Activity Preference 화면 - Add New Process Variable
    항목 설명

    ID

    생성할 파라미터의 아이디이다.

    Name

    생성할 파라미터의 이름이다.

    Description

    생성할 파라미터에 대한 설명으로 사용자의 편의를 위한 것이다.

    Initial Value

    생성할 파라미터의 타입이 'Basic'일 경우, 변수에 대한 초기값을 설정할 수 있다.

    Scope

    인스턴스로 고정된 값이다.

    Variable Type

    • Basic Type : 변수의 기본 타입으로 String, Float, Integer, DateTime, Boolean Type을 지원한다.

    • Message Type : 메시지 타입으로, 자신의 프로젝트의 서비스 그룹 아래에 있는 DTO 파일들을 찾아서 선택하여 메시지 선택 다이얼로그에서 추가한다.

    • Any Type : Java Class 객체를 Process Variable로 사용하는 경우 해당 타입을 선택한다.

    • Map Type : Key Value, msg, ctx 정보를 접근하는 방법을 나타낸다.

      [Key Setting] 버튼을 클릭해서 'Map Data Field Key' 값을 설정할 수 있다. 서비스 호출에 사용되는 header variable에는 Map Type만이 이용될수 있다. 형식은 <String, String>으로 설정한다.

    • Attachment Map Type : 첨부 파일 등의 지정이 가능하며, 일반적으로 파일 Adapter Attachment 타입인 경우 사용한다.

    Is Array Variable

    배열을 사용할지 여부를 결정한다.

 

액티비티 핸들러

다음은 Activity Preference 화면[액티비티 핸들러]에 대한 설명이다.

figure activity handler
Activity Preference 화면 - 액티비티 핸들러
버튼 설명

[Add]

사용자가 생성한 액티비티 핸들러를 설정할 수 있는 Service List Dialog가 출력된다.

[Edit]

선택한 핸들러에 대한 수정 화면이 생성된다.

[Remove]

선택한 핸들러를 삭제한다.

다음은 사용자가 생성한 액티비티 핸들러를 설정할 수 있는 Service List Dialog에 대한 설명이다.

figure service list dialog
Service List Dialog
항목 설명

Search

액티비티 핸들러를 검색한다.

Service list

핸들러 목록이 나타난다.

 

Activity Error Handler

다음은 Activity Preference 화면[Activity Error Handler]에 대한 설명이다. 버튼의 기능은 액티비티 핸들러 화면(Activity Preference 화면 - 액티비티 핸들러)의 기능과 동일하다.

figure activity error handler
Activity Preference 화면 - Activity Error 핸들러
항목 설명

Error Code

핸들러가 처리할 에러 코드를 입력한다.

Handler Class

User Class를 직접 등록해서 처리한다.

Error Event ID

에러 타입의 이벤트 아이디이다.

Ignore

해당 액티비티에서 에러 이벤트 사용 여부를 설정한다.

다음은 [Add] 버튼을 클릭하는 경우 나타나는 화면에 대한 설명이다.

figure exception handler
Add New Exception Handler
항목 설명

Catch All Excpetions

모든 Exception을 Catch한다.

Error Code

Catch할 에러 코드를 입력한다. Catch All Exception이 체크되어 있을 경우 자동으로 All이 된다.

Error Event

에러 이벤트를 검색하여 입력한다.

[검색] 버튼을 클릭하면 Service List Dialog에서 검색 가능하다.

Handler Class

핸들러 클래스를 검색하여 입력한다.

[검색] 버튼을 클릭하면 Service List Dialog에서 검색 가능하다.

 

Activity Loop

다음은 Activity Preference 화면[Activity Loop]에 대한 설명이다.

figure activity loop
Activity Preference 화면 - Activity Loop
항목 설명

Loop Variable

Array 항목을 가진 변수이다.

For-each Variable

Loop 변수의 타입을 자신의 타입으로 가지는 변수이어야 한다.

Loop 변수의 배열 순서대로 값이 매핑된다.

Index Variable

반복될 때 마다 하나씩 증가하는 Integer 변수이다.

Loop Handler List

Loop에서 사용할 수 있는 Handler Class를 등록할 수 있다.

  • [Standard Loop]

    순차적으로 일정 횟수만큼 단순 반복한다.

    figure standard loop
    Activity Preference 화면 - Activity Loop - Standard Loop
    항목 설정

    Loop Count

    현 액티비티의 최대 반복 횟수를 설정한다.

    'Loop Condition'을 만족하지 못하는 경우 최대 반복 횟수를 모두 채우지 못하고 Loop가 종료될 수도 있다. 'Loop Count'를 설정하고 'Loop Condition'을 설정하지 않았을 경우, 내부적으로는 'Loop Condition'을 참으로 설정한다.

    When to Check

    'Loop Condition'을 체크하는 시점을 설정한다.

    • Before : 액티비티를 수행하기 전에 체크(while loop) 한다.

    • After : 액티비티 수행 후에 체크(until loop)한다. 'Loop Condition'을 만족하지 못할 경우라도 최소한 1회는 수행된다.

    Loop Condition

    Loop의 수행 조건을 설정한다.

    조건이 참일 경우에만 Loop은 'Loop Count'의 수 만큼 반복 수행되며 거짓이면 Loop은 종료된다. 'Loop Count'가 설정되어 있지 않으면 'Loop Condition'을 만족하지 않을 때까지 무한 반복하게 된다.

    아무 것도 입력하지 않으면 항상 참으로 인식하지만 'Loop Count'가 설정되지 않았을 경우 'Loop Condition'은 반드시 항상 참이 아닌 값으로 설정되어 있어야 한다. 입력 창에서 <Ctrl>+<Space>로 변수를 쉽게 입력할 수도 있다.

  • [Multiple Instance]

    순차적 또는 병렬적으로 수행되며 수행 횟수나 종료 조건도 일정하지 않은 경우가 많다.

    figure multiple instance
    Activity Preference 화면 - Activity Loop - Multiple Instance
    • Completion condition

      현 액티비티를 얼마나 수행할 것인가를 설정한다. 'MI Count'로 최대 반복 횟수를 설정하고, ‘Loop Condition’으로 종료 조건을 설정한다.

    • How the loop instance will performed

      항목 설명

      Sequential

      인스턴스가 순차적으로 실행된다.

      Parallel

      모든 인스턴스가 동시에 실행된다.

    • When transition to the next activity occurs

      현 액티비티가 언제 종료 처리되어 Process Instance의 토큰이 다음 액티비티로 나갈 것인지를 설정한다.

      항목 설명

      Whenever each activity instance has completed

      하나의 액티비티 인스턴스가 종료될 때마다 다음 액티비티로 토큰을 넘긴다. 하나 이상의 토큰이 계속 전달된다.

      After only one of the activity instance has completed

      하나의 액티비티 인스턴스만 종료되어도 다음 액티비티로 토큰을 넘긴다. 뒤에 수행되는 인스턴스의 토큰은 무시된다.

      After all of the activity instance have completed

      모든 액티비티 인스턴스가 종료되었을 때 다음 액티비티로 토큰을 넘긴다.

      As the condition below

      표시된 조건에 따라 그 조건이 만족되면 토큰을 넘긴다.

      멀티인스턴스(Multiple Instance)를 사용하고 'How the loop instance will be performed'을 'Parallel’로 지정하는 경우 For-each 변수와 Index 변수은 동시성 이슈가 있으므로 반드시 local scope의 변수를 사용해야 한다. 하지만, 'How the loop instance will be performed'을 'Sequential’로, 'When transition to the next activity occurs'을 'After all of the activity instance have completed’로 지정하면 Standard Loop를 사용하는 것과 동일하게 동작한다.

4.2. 특정 액티비티 설정

본 절에서는 특정 액티비티를 설정하는 방법에 대한 설명한다.

 

유저 클래스 액티비티

유저 클래스 액티비티의 경우 Activity Preference 화면에서 복잡한 로직을 처리하기 위해 유저가 직접 생성한 유저 클래스 정보를 설정한다.

figure userclass activity userclass
Activity Preference 화면 - 유저 클래스 액티비티
항목 설명

패키지 이름

유저 클래스의 패키지 이름이다.

클래스 이름

유저 클래스의 클래스 이름이다.

 

매핑 액티비티

이미 정의된 맵을 사용하여 변수들의 값을 변환한다. 매핑 액티비티의 경우 Activity Preference 화면에서 [Mapping]을 클릭해서 정보를 설정한다.

figure mapping activity mapping
Activity Preference 화면 - Mapping
  • Mapping Information

    항목 설명

    Access Type

    Private를 선택하면 공유가 불가능하도록 액티비티 내에 정보가 저장된다.

  • 버튼

    버튼 설명

    [Import Variables]

    Public Mapping에 설정된 메시지를 import한다.

    [Select Source]

    Source에 해당하는 프로세스 변수를 선택할 수 있다.

    [Select Target]

    Target에 해당하는 프로세스 변수를 선택할 수 있다.

    [Delete]

    선택된 변수를 제거한다.

    [Up]

    변수를 한 칸 위로 이동시킨다.

    [Down]

    변수를 한 칸 아래로 이동시킨다.

    [Mapping]

    Source와 Target에 해당되는 프로세스 변수를 매핑시켜주는 Mapping Dialog가 출력된다.

    [Clear Mapping]

    생성된 매핑을 제거한다.

다음은 Source와 Target에 해당되는 프로세스 변수를 매핑시켜주는 Mapping Dialog 화면에 대한 설명이다. [Add User Class] 버튼을 클릭해서 유저 매핑 핸들러를 등록하거나 [Add Mapping Code] 버튼을 클릭해서 매핑할 때 호출될 Java Code를 입력한다.

figure mapping dialog
Mapping Dialog
항목 설명

Source

매핑에 사용될 변수들의 목록이다.

Target

매핑을 통해 값을 넣을 변수들의 목록이다.

Properties

Source/Target에서 선택한 변수나 필드의 정보를 조회한다.

왼쪽 Properties는 Source 영역이고, 오른쪽 Properties는 Target 영역이다.

Location Path

매핑 연결에 대한 연결 정보 값이다.

Expression

표현식을 통해 값을 매핑한다.

문자열은 큰따옴표(" ")로 감싸서 입력하고, 숫자는 그대로 입력한다.

 

응답 메시지 액티비티

메시지 이벤트로 들어온 인바운드 서비스에 응답을 준다. 응답 메시지 액티비티의 경우 Activity Preference 화면에서 [Reply Message]를 선택해서 정보를 설정한다.

figure responsemessage replymessage
Activity Preference 화면 - Reply Message
항목 설명

Trans Mode

  • Response : 응답 메시지 액티비티를 응답(Response) 용도로 사용할 수 있다.

  • Error : 응답 메시지 액티비티를 에러 응답 메시지 용도로 사용할 수 있다.

  • Response None : 응답 메시지를 보내지 않을 수 있다.

MessageEvent ID

서비스 플로우에 있는 메시지 이벤트를 설정할 수 있다.

Use Mapping

'Trans Mode'가 Response일 때 사용 가능하며 Reply Mapping 화면에서 프로세스 변수와 Output 파라미터 간에 매핑을 설정한다.

[Reply Mapping] 버튼을 클릭하면 매핑 다이얼로그가 나타난다.

Use Error Mapping

'Trans Mode'가 에러일 때 사용 가능하며 Error Mapping 화면에서 프로세스 변수와 에러 파라미터 간에 매핑을 설정한다.

[Error Mapping] 버튼을 클릭하면 매핑 다이얼로그가 나타난다.

커스텀 로그 매핑

해당 액티비티에 설정된 커스텀 로그와 액티비티 변수를 매핑한다.

  • [Browse...] 버튼 : 커스텀 로그 룰을 검색한다. 해당 버튼을 누르면 Service List Dialog에서 검색 가능하다.

  • [Mapping...] 버튼 : 커스텀 로그 룰의 요청메시지를 매핑한다.

 

SubFlow

응답 메시지 액티비티의 경우 Activity Preference 화면에서 다른 플로우를 호출하기 위해 [SubFlow]를 선택해서 정보를 설정한다.

figure subflow activity
Activity Preference 화면 - SubFlow
항목 설명

Sub Flow

사전에 생성한 서브 서비스 플로우(또는 서비스 플로우)를 설정할 수 있다.

Service id

설정한 서브 플로우의 Service ID이다.

Trans Mode

  • Request : 가장 일반적인 메시징 형태로 요청에 대한 응답을 기대하는 전송모드이다.

  • One Way : 응답을 기다리지 않고 요청 메시지만 전달하는 전송모드이다.

  • One Way with ack : 요청 메시지가 처리된 후 ACK 메시지를 기대하는 형태이다. 보통 딜리버리 채널에서 전달 보장을 처리한 후 ACK 메시지 또는 NAK 메시지를 답변으로 보내는 전송모드이다.

Service Mapping

아웃바운드 서비스의 변수과 Activity Parameter 사이에 in/out 매핑이 가능하다. 매핑을 만들 때 실제 맵 파일이 생성되도록 하는 'public' 설정과 SFDL 내 서비스 매핑에 정보를 숨겨두는 'private' 설정이 있다. 즉, 'private' 매핑의 경우는 다른 플로우나 액티비티에서 재사용할 수 없다.

 

멀티바인딩(MultiBinding) 액티비티

여러 서비스를 하나의 액티비티에서 처리하기 위해 생성하는 액티비티로 멀티바인딩에 설정된 서비스를 호출한다.

5. 이벤트

다음은 이벤트의 종류에 대한 설명이다.

항목 설명

image (메시지 이벤트)

메시지 이벤트로 메시지를 수신하는 이벤트이다. Start와 Intermediate 타입을 지원한다.

image (타이머 이벤트)

시작, 종료시간, 기간을 설정하여 특정 주기로 프로세스를 시작할 수 있다. Intermediate 타입을 지원한다.

image (에러 이벤트)

에러가 발생하는 경우 수행되는 이벤트이다. Start, Intermediate, End 세 가지 타입이 모두 지원된다.

image (링크 이벤트)

동기화나 프로세스 흐름 제어를 위해 사용한다. Start, Intermediate, End 세 가지 타입이 모두 지원된다.

image (정상 종료 이벤트)

정상 종료를 나타내는 이벤트이다. End 타입만을 지원한다.

image (비정상 종료 이벤트)

강제 종료 이벤트로서 프로세스 전체를 종료시킨다. 이 이벤트를 통해 종료될 때 WebAdmin에서 비정상 종료로 인식한다. End 타입만을 지원한다.

5.1. 이벤트 설정

이벤트를 에디터 화면으로 갖고 온 뒤 더블클릭 또는 객체 위로 마우스를 올리면 나타나는 Event Preference 화면에서 이벤트를 설정한다.

figure event preference
이벤트 설정

Event Preference 화면에서 이벤트의 공통적인 기본 정보 설정을 한다. Event Class를 제외한 나머지 항목은 Activity Preference 화면과 같으므로 생략한다.

figure eventpreference
Event Preference 화면 - 기본 정보 화면
항목 설명

Event Class

이벤트 객체의 역할과 서비스 플로우에서의 위치에 따라 Start, Intermediate, End 타입을 지정할 수 있다. 몇몇 이벤트의 경우 제한이 있기도 하다.

커스텀 로깅

커스텀 로깅을 사용한다.

  • [Browse...] 버튼 : 커스텀 로그 아웃바운드 룰을 설정한다.

  • [Mapping...] 버튼 : 매핑을 설정한다.

세션 ID 사용

플로우 내부에서 세션을 관리하기 위해 아이디를 설정하려면 [New] 버튼을 클릭해서 세션 아이디를 직접 입력이 가능하고, [Search] 버튼을 선택할 때 텍스트박스 옆의 [Search] 버튼을 클릭하면 세션 선택 다이얼로그에서 세션을 아이디를 설정할 수 있다.

5.2. 타입별 이벤트 설정

  • 메시지 이벤트

    메시지 이벤트의 경우 파리미터 설정 항목이 있으며, 항목에 대한 설명은 Activity Preference 화면의 파라미터 설정과 같으므로 생략한다.

  • 타이머 이벤트

    타이머 이벤트의 경우 타이머 정보를 설정한다. Timer 항목에서 시작,종료시간, 기간을 설정하여 특정 주기로 프로세스를 시작할 수 있다.

    figure timerevent preference
    Event Preference 화면 - Timer
    항목 설명

    Intermediate Event Setting

    • 'Start time’만 설정한 경우 : 설정된 시작 시간 이전까지 sleep하고, 만약 이후라면 영원히 sleep한다.

    • 'Sleep time’만 설정한 경우 : 설정한 기간 만큼만 sleep한다.

    • 'Start time’과 'Sleep time’을 모두 설정한 경우 : 시작 시간 이전까지 sleep하고, 만약 이후라면 start time+n*sleep time까지 sleep한다.

    Timer Class Name

    유저 클래스를 직접 등록하여 사용이 가능하다.

  • 에러 이벤트

    에러 이벤트의 경우 에러 코드 정보를 설정한다. 에러 코드를 입력해야 한다. AnyLink에서 정의한 특수한 에러코드들은 Error Code 설정 옆의 ? 버튼을 통해 확인할 수 있다.

    figure errorevent preference
    Error Preference 화면 - 에러 이벤트
  • 링크 이벤트

    링크 이벤트의 경우 Link ID 정보를 설정한다. 연결할 상대의 아이디를 입력해야 한다.

    figure linkevent preference
    Event Preference 화면 - 링크 이벤트

6. 게이트웨이

다음은 게이트웨이의 종류에 대한 설명이다.

항목 설명

image (XOR Split)

image (XOR Join)

XOR Split는 여러 개의 경로 중 하나의 경로나 프로세스 인스턴스가 라우팅되는 게이트웨이이다.

XOR Split로 분기된 프로세스는 XOR Join으로 합쳐질 수 있다. XOR Split의 각 트랜지션(Transition)에 조건을 설정해야 하며,이 조건들은 우선순위에 따라 조건을 검사하여 참(True)이면 진행한다. 만약에 만족하는 조건이 존재하지 않는 경우 런타임 예외가 발생하므로 'otherwise' 타입을 하나 지정하는 것이 좋다.

image(XOR Event Split)

XOR Split와 유사하지만 지연 선택의 경우처럼 다음 수행될 액티비티 트랜지션(Activity Transition)에 의해 결정하지 않고 다음 액티비티들의 자체 발생 여부를 가지고 있는 라우팅되는 게이트웨이이다.

XOREvent Split 다음에는 반드시 타이머나 메시지 이벤트 또는 이벤트로 시작하는 블록만 올 수 있다.

image (Or Split)

image (Or Join)

Or Split는 부팅할 때의 조건에 맞는 모든 경로로 프로세스 인스턴스가 라우팅되는 게이트웨이이다.

Or Split 또한 Or Join으로 다시 합쳐져야 하며 트랜지션의 조건(Condition)을 설정하는 부분은 XOR Split와 동일하다. 다만 여러 개의 트랜지션이 겹쳐지는 조건을 가지도 있더라도 조건에 맞는 트랜지션이면 모두 수행된다는 점만 다르다.

image (And Split)

image (And Join)

And Split는 조건 없이 모든 경로로 프로세스 인스턴스가 라우팅되는 게이트웨이이다.

And Split는 모든 트랜지션으로 분기되기 때문에 각 부팅할 때의 조건(Condition)은 설정하지 않아야 한다. 비슷한 개념으로 And Join은 모든 경로에서 실행이 완료된 결과가 도착해야 다음 액티비티를 수행한다.

image (Complex Join)

Complex Join은 Join할 개수를 지정하여 지정된 개수만큼 도착하면 다음으로 진행하는 형태이다.

다음은 게이트웨이를 설정하는 Gateway Preference 화면에 대한 설명이다.

figure gateway preference
Gateway Preference 화면
항목 설명

Gateway Mode

선택한 게이트웨이의 종류를 표시하고 변경이 가능하다.

Incoming Condition

Complex Gateway인 경우 설정할 수 있다. 몇 개의 트랜지션으로 합칠 것인지 설정한다.

7. 스웜레인 / 블록 / ANNOTATIONS

다음은 스웜레인 / 블록 / ANNOTATIONS 객체에 대한 설명이다.

항목 설명

image (스웜레인)

스웜레인은 서비스 플로우상에 Task를 구분해주는 일종의 선이다.

스윔레인을 사용하여 Task 간의 병렬적으로 이루어지는 우선순위나 행동들을 쉽게 구분할 수 있다. 스웜레인 상단을 더블클릭하여 발생하는 다이얼로그에서 아이디, 이름, 크기 색상을 변경할 수 있다.

image (블록 액티비티)

블록 내부에서 사용할 수 있는 변수를 설정할 수 있으며, 블록 단위로 Message, Timer, Error 등의 이벤트를 설정할 수 있다.

image (ANNOTATIONS)

사용자의 편의를 위한 객체로 설명을 기술할 수 있다. 플로우의 메모 기능을 제공한다.

7.1. 블록 액티비티

특정 구역을 진행하는 도중에 발생하는 사건들이나 예외에 대한 처리를 위해서 특정 구역을 묶어서 표현하는 것을 블록(Block)이라고 한다. Java의 함수와 비슷한 개념으로 서비스 플로우 액티비티의 묶음이다.

블록에서도 액티비티와 마찬가지로 Block Handler, Exception Handler, Activity Loop, Block Variable 설정이 가능하다. [Block Variable] 메뉴에서 블록 내에서만 사용 가능한 변수를 정의할 수 있다.

figure blockactivitypreference
Block Activity Preference 화면
항목 설명

This is transaction block activity

블록 액티비티는 트랜잭션이 지원되는 트랙잭션 블록 기능을 제공한다.

트랜잭션 블록을 사용할 경우 블록에 진입할 때 Tx_Begin, 블록을 None 이벤트로 종료할 때 Tx_Commit, 블록을 비정상 종료하거나 Terminate 이벤트로 종료할 경우 Tx_Rollback이 자동으로 호출된다.

8. Utility

Utility는 서비스 플로우에서 사용되는 유틸리티 모음이다.

다음은 Utility 객체에 대한 설명이다.

항목 설명

image (SESSION CLOSE ACTIVITY)

Session ID를 입력하여 해당하는 세션을 닫는다.

image (SESSION ABORT ACTIVITY)

Session ID를 입력하여 해당하는 세션을 강제 종료시킨다.

image (NETWORK MANAGEMENT ACTIVITY)

망의 상태를 변경하거나 망의 상태를 조회한다.

image (MANAGER APPROVAL ACTIVITY)

단말 로그인/로그아웃이나 단말 사용자나 책임자 정보를 조회한다.

image (HTTP MULTIPART ACTIVITY)

HTTP 멀티파트로 수신된 파일을 임시경로에 저장한다. 해당 파일들은 플로우가 끝나면 자동 삭제된다.

image (BATCH PROGRESS ACTIVITY)

배치 진행률을 변경하거나 조회한다.

image (TCP MESSAGE SPLIT ACTIVITY)

다음 Intermediate Event에서 TCP 메시지를 분할해서 수신받도록 한다.

image (CONTROL SESSION ACTIVITY)

엔드포인트 ID와 세션키를 입력하여 해당하는 세션을 강제 종료시킨다.

8.1. SESSION CLOSE ACTIVITY

다음은 SESSION CLOSE ACTIVITY의 Session Close Preference 화면에 대한 설명이다.

figure sessionpreference
Session Close - Session Abort Preference 화면

서비스 플로우에 추가되어 있는 'Session ID'를 선택한다. [Search] 버튼을 클릭하면 Session ID 선택 다이얼로그가 생성된다.

figure select session
Session ID 선택 다이얼로그

8.2. NETWORK MANAGEMENT ACTIVITY

다음은 NETWORK MANAGEMENT ACTIVITY의 Network Management Preference 화면에 대한 설명이다.

figure network management preference
Network Management Preference 화면

고정된 망 망을 선택할 경우에는 '망 ID(이름)'을 체크하고 [검색] 버튼을 클릭하여 생성된 망 ID(이름) 검색 다이얼로그에서 WebAdmin에서 추가한 망 ID를 선택한다.

플로우 변수에 코드 값이 있을 경우에는 '망 코드'을 체크하고 [Mapping...] 버튼을 클릭하여 생성된 코드를 매핑한 후 [검색] 버튼을 클릭하여 생성된 망 ID(이름) 검색 다이얼로그에서 WebAdmin에서 추가한 망 ID를 선택한다.

figure select network id
망 ID(이름) 검색 다이얼로그

망 상태를 변경할 때는 '변경' 항목을 체크하고 망 상태를 변경한다. 망 상태를 조회할 때는 '조회' 항목을 체크하고 [Mapping...] 버튼을 클릭하여 생성된 망 상태 매핑 다이얼로그에서 망 상태를 플로우 변수에 매핑한다.

figure network status mapping
망 상태 매핑 다이얼로그

8.3. MANAGER APPROVAL ACTIVITY

다음은 MANAGER APPROVAL ACTIVITY의 Manager Approval Preference 화면에 대한 설명이다.

figure manager approval preference
Manager Approval Preference 화면

유틸리티 유형에서 수행하려는 액션을 선택한다. 단말을 사용하거나 조회하려는 사용자의 사용자 번호를 필드 선택[Search] 버튼을 클릭하여 생성된 변수 필드 선택 다이얼로그에서 매핑한다. 해당 필드 값에 해당하는 값은 WebAdmin의 [운영관리] > [단말관리] > [사용자관리] 메뉴에 존재하는 사용자의 사용자 번호와 일치해야 한다.

figure select manager approval field
변수 필드 선택 다이얼로그

유틸리티 유형에 해당하는 액션을 수행한 후의 결과나 정보는 [Mapping...] 버튼을 클릭하여 생성된 단말/사용자 정보 매핑 다이얼로그에서 매핑한다.

figure manager approval mapping
단말/사용자 정보 매핑 다이얼로그

8.4. HTTP MULTIPART ACTIVITY

다음은 HTTP MULTIPART ACTIVITY의 HTTP Multipart Preference 화면에 대한 설명이다.

figure http multipart preference
HTTP Multipart Preference 화면

멀티파트로 수신된 파일의 정보는 [매핑 유형]에서 유형을 선택한다. 파일 매핑은 파일의 경로와 파일 이름을 매핑을 통해 얻을 수 있고, 바이트 매핑은 파일의 내용과 파일의 정보를 매핑을 통해 얻을 수 있다.

멀티파트 파일 정보는 [Mapping...] 버튼을 클릭하여 생성된 멀티 파트 매핑 다이얼로그를 통해 매핑한다.

figure file mapping
멀티 파트 매핑 다이얼로그

8.5. BATCH PROGRESS ACTIVITY

다음은 BATCH PROGRESS ACTIVITY의 Batch Progress Preference 화면에 대한 설명이다.

배치 진행률을 사용하기 위해서는 플로우에서 사용하는 배치 아웃바운드룰 설정에서 배치 진행률 사용을 true로 설정하여야 한다.

figure batch progress preference
Batch Progress Preference 화면

배치 진행률 정보를 변경할 경우에는 '배치 진행률 정보'를 체크하고 [Mapping...] 버튼을 클릭하여 생성된 배치 진행률 정보 매핑 다이얼로그에서 배치 진행률 정보를 매핑한다.

figure batch status update
배치 진행률 정보 매핑 다이얼로그
항목 설명

배치 진행률 정보

배치 진행률 정보를 매핑하여 변경한다.

  • 전체 레코드 건수 : 전체 레코드 건수를 변경한다.

  • 현재 레코드 위치 : 현재 레코드 위치를 변경한다.

  • 개시구분 : 개시 구분을 변경한다.

  • 응답코드 : 응답코드를 변경한다.

상태

배치의 진행 상태를 완료 또는 실패로 변경한다.

조회

배치 처리 결과를 매핑을 통해 조회한다.

배치 상태를 변경할 경우에는 '상태'를 체크하고 변경할 상태를 선택한다. 배치 처리 결과를 조회할 경우에는 '조회'를 체크하고 [Mapping...] 버튼을 클릭하여 생성된 배치 처리 결과 조회 매핑 다이얼로그에서 배치 처리 결과를 매핑한다.

figure batch result lookup
배치 처리 결과 조회 매핑 다이얼로그

8.6. TCP MESSAGE SPLIT ACTIVITY

다음은 TCP MESSAGE SPLIT ACTIVITY의 TCP Message Split Preference 화면에 대한 설명이다. 해당 기능을 사용하기 위해서는 WebAdmin에 [구성관리] > [어댑터] 메뉴에서 Endpoint 설정에 메시지 분할 거래에 거래를 설정해야 한다.

TCP MESSAGE SPLIT ACTIVITY를 설정하면, 해당 Activity 다음 실행되는 Intermediate Event에서 메시지를 수신할 때 TCP MESSAGE SPLIT ACTIVITY 에서 설정한 '총 길이', '분할 길이’를 이용하여 수신한다. '총 길이’는 수신할 메시지의 총 길이이고, '분할 길이’는 분할해서 읽을 메시지 길이이다.

figure tcp message split preference
TCP Message Split Preference 화면

서비스 플로우에 추가되어 있는 'Session ID'를 선택한다. [Search] 버튼을 클릭하면 Session ID 선택 다이얼로그가 생성된다.

figure select session
Session ID 선택 다이얼로그

수신받을 메시지 길이 정보는 [Mapping...] 버튼을 클릭하여 생성된 메시지 길이 정보 매핑 다이얼로그에서 매핑한다. 이후에 수행되는 Intermediate Event메시지 길이 정보 매핑 다이얼로그에서 매핑된 총 길이와 분할 길이를 이용하여 수신한다.

figure message length info mapping
메시지 길이 정보 매핑 다이얼로그

8.7. CONTROL SESSION ACTIVITY

다음은 CONTROL SESSION ACTIVITY의 Control Session Preference 화면에 대한 설명이다.

figure control session preference
Control Session Preference 화면

세션을 종료하고 싶은 세션 정보는 [Mapping...] 버튼을 클릭하여 생성된 다이얼로그에서 매핑한다.

figure session info mapping
세션 정보 매핑 다이얼로그