다이얼로그

본 부록에서는 스튜디오에서 생성되는 다이얼로그에 대해 설명한다. 스튜디오를 사용하면서 특정 다이얼로그를 참조하는 경우 이 장의 다이얼로그 목록에서 설명을 찾아 참고한다. 본 부록에서 설명하는 다이얼로그는 여러 장에서 참조하는 일반적인 다이얼로그로, 특정 장에서만 나타나는 다이얼로그는 해당 장에서 설명한다.

1. 메시지 관련 다이얼로그

1.1. 메시지 선택 다이얼로그

메시지 필드 선택 다이얼로그는 원하는 메시지를 선택해야 할 경우 나타난다. 왼쪽 프로젝트 네비게이터에서 원하는 거래/거래목록를 선택하면 오른쪽 메시지 리스트에 거래/거래목록에 속한 모든 메시지의 목록이 나타난다. 목록에서 원하는 메시지를 찾아 클릭한 후 아래의 [OK] 버튼을 클릭하면 해당 메시지가 선택된다.

'Search' 항목을 사용해서 메시지를 이름으로 검색할 수도 있다.

figure request msg dialog
메시지 선택 다이얼로그

1.2. 메시지 필드 설정 다이얼로그

메시지 필드 선택 다이얼로그는 선택한 메시지에 속한 필드 중 하나를 선택해야 하는 경우 나타난다.

선택 가능한 메시지는 현재 작업하는 프로젝트에 속한 모든 메시지들을 보여주므로 원하는 메시지를 골라 클릭하여 선택한다. 메시지를 선택하고 나면 메시지 필드 정보에 필드 값이 리스트로 나타나므로 원하는 필드를 선택한 후 [OK] 버튼을 클릭하여 선택한 필드 정보를 입력한다.

figure message field selection dialog
메시지 필드 선택 Wizard

2. 매핑 관련 다이얼로그

매핑은 전문을 변환하기 위해 소스에서 타켓의 관계를 정의하는것을 말한다. 매핑은 AnyLink에서 빈번히 일어나는 작업이며, 대부분의 경우 매핑을 정의하기 위해 매핑 마법사를 사용해야 한다.

AnyLink는 다양한 리소스를 통합하기 위해 여러 가지 어댑터를 제공한다. 각종 어댑터는 어댑터가 작동하는 원래의 리소스 구조를 AnyLink 서버가 사용하는 메시지로 변환하며, 이때 변환 과정을 정의하는데 매핑 마법사를 사용한다. 매핑 마법사는 변환하는 리소스의 종류에 상관없이 동일하며, 리소스의 종류에 영향을 받는 부분은 제한되어 있고, 어댑터나 플로우 등 매핑이 상용되는 곳은 모두 사용된다.

2.1. 매핑 마법사

다음은 매핑 마법사 New Mapping 화면에 대한 설명이다. 매핑 마법사는 크게 매핑 관련 영역(1, 2, 3)과 정보조회/편집 영역(4, 5, 6)으로 나뉜다.

figure mapping 2
매핑 화면

 

매핑 관련 영역

소스 트리(2)와 매핑 라인(1) 그리고 타겟 소스(3)로 구성된다.

다음은 매핑 관련 영역 상단 bar의 아이콘과 하위 버튼에 대한 설명이다.

항목

설명

image (Creating mapping)

image (Creating mappings)

새로운 매핑을 생성한다.

image (Generate mapping automatically /Generate mappings with physical name automatically)

이름이 같은 노드 간에 자동으로 매핑할 수 있다. 소스나 타겟에 이름이 같은 노드가 여러 개 있을 경우 먼저 나오는 노드의 이름이 매핑되므로 자동으로 매핑한 후에는 올바르게 매핑이 되었는지 확인할 필요가 있다.

[Generate mappings with physical name automatically] 메뉴를 이용하여 Structure의 경우 매핑할 때 보이는 값은 논리명이므로 물리명을 이용해서 자동 매핑을 한다.

image (Create new Expression)

함수 매핑이나 사칙연산을 정의하는 메뉴이다.

타켓에 대히여 이미 정의된 매핑이 있을 경우 [Create new expression] 메뉴는 비활성화되며 함수 매핑 생성은 불가능하다. 사용자는 매핑 마법사의 툴바에서 [Create new expression] 메뉴를 선택하여 트리에 선택된 요소에 대해 함수 매핑을 생성 할 수있다.

함수 매핑의 대상이 되는 타겟의 요소는 둥근 사각형으로 둘러싸여 보여진다. 함수는 매핑 라인에 둥근 사각형의 함수 아이콘과 함께 간략한 내용으로 표시된다. 함수 매핑이 생성되면 그림과 같이 자동적으 로 생성된 함수 매핑이 선택된 상태가 된다.

image (Remove mapping)

표현식 및 매핑을 삭제한다.

image (Paint mapping)

매핑된 필드들을 보라색 블록으로 감싸 하이라이트한 상태로 표시해준다.

image (Remove all mapping)

모든 매핑관계를 제거한다.

Logical

Source/Taget의 표시된 정보들을 Logical Name으로 표시한다.

Physical

Source/Taget의 표시된 정보들을 Physical Name으로 표시한다.

Add User Class

매핑시키는 로직을 정의해둔 유저 클래스를 검색하는 창을 생성한다.

Add Mapping code

매핑에 대한 사전에 작성한 Java 코드를 추가할 수 있는 창을 생성한다.

매핑 라인은 정의된 매핑이 그림으로 그려지는 영역으로, 매핑은 푸른선으로 표시되고, 현재 선택된 매핑은 붉은 선으로 표시된다. 또한 매핑의 대상 아이템이 소스와 타켓 트리에 나타나는 경우는 실선으로 그려지고, 매핑의 대상이 소스나 타켓 트리에서 접혀있는 부분에 속해 있어 보이지 않는 경우에는 점선으로 그려진다.

 

정보조회/편집영역

소스 설정(4)과 편집 탭(5) 그리고 속성창(6)으로 구성되어 있다.

  • [Location Path]

    일반적인 매핑의 위치를 보여주는 리스트 탭이다. 편집을 지원하지 않는 읽기전용 화면이며, 이곳에서는 매핑들을 리스트의 형태로 간략하게 보여준다.

  • [Expression]

    함수 매핑과 상수값을 편집할 수 있는 탭이다.

  • [Add User Class]

    편집 영역에 [Add new function] 메뉴 함수에서 처리할 수 없는 복잡한 로직은 별도의 유저 클래스를 작성하여 등록할 수 있다. [Add UserClass] 버튼을 클릭하면 유저 클래스를 등록할 수 있는 대화상자가 다음과 같이 나타난다.

    figure user class setting dialog
    유저 클래스 세팅 다이얼로그

    'User class fullname'에 패키지 이름을 포함한 유저 클래스의 전체 이름을 작성한다. 유저 클래스를 서버에 올린 적이 없을 경우 [Upload] 버튼을 클릭해서 새로운 라이브러리를 올려야 한다. 이전에 유저 클래스를 올렸을 경우에는 [OK] 버튼을 클릭하여 설정을 완료할 수 있다. [Clear] 버튼을 클릭하여 유저 클래스 설정을 삭제할 수도 있다. 매핑 기능에는 없지만 단순한 추가 기능이 필요할 경 우에는 간단하게 매핑에 추가 코드만 넣어서 처리할 수 있다.

  • [Add Mapping code]

    [Add Mapping code] 버튼을 클릭하면 다음과 같이 Java 코드를 입력할 수 있는 화면이 나타난다.

    코드는 매핑이 모두 완료된 이후에 실행하는 코드이다. 변수의 값은 왼쪽의 소스 트리 및 타겟 트리에서 드래그 앤드 드롭으로 가져온다. 컴파일한 결과가 바로 조회되지 않으므로 코드 작성에 유의해야 한다. 타겟 트리 소스 트리와 마찬가지로 타겟 트리의 컨텍스트 메뉴에서 여러 가지 작업을 수행할 수 있다.

    figure java code edit dialog
    Java code 에디터 다이얼로그

    다음은 각 영역별 설명이다.

    영역 설명

    Source Tree(Target Tree)

    소스 트리와 타겟 트리는 일반적인 트리 컨트롤과 동작이 동일하다.

    마우스를 통해서 선택이 가능하고, 키보드로는 <+>, <─> 키로 트리를 접거나 펼수 있다. 각 소스(타켓) 트리의 아이템은 아이템을 상징하는 아이콘과 함께 그려지며, 아이콘에는 객체의 개수 제한 조건이 함께 표시된다.

    Java code

    소스(타겟)의 속성을 보여주는 영역이다. 노드의 리소스 타입별로 다른 형태의 속성을 나타낼 수 있다.

2.2. 매핑 마법사 사용

매핑 마법사는 1개 이상의 소스와 1개 이상의 타겟 사이의 매핑을 지원한다. 그리고 매핑 가능한 소스 아이템과 타겟 아이템은 모두 각각의 소스/타겟 트리에 나타나지 않을 수 있다. 소스 트리에 나타나는 아이템과 타겟 트리에 나타나는 아이템은 기본적으로 필요한 아이템들이 나타나고, 사용자가 추가하거나 삭제해서 매핑 대상이 아닌 아이템을 매핑 마법사에 보이지 않게 할 수 있다.

 

소스트리

소스 트리의 컨텍스트 메뉴에서 여러 가지 작업을 수행할 수 있다.

figure source tree conxtext menu
소스트리 컨텍스트 메뉴

소스 아이템은 트리에서 자신의 하위 아이템들의 부모가 된다. 소스 아이템을 선택하고 소스 트리에서 컨 텍스트 메뉴를 열어 [Remove Source]를 선택하거나, [Delete]를 클릭하면 리스트에서 소스 트리는 숨겨 진다. 소스 트리가 리스트에서 숨겨지면 삭제된 소스 아이템이나 하위 아이템에 대해서 정의된 매핑은 자 동으로 삭제된다.

메뉴 설명

[Add source]

소스 트리에 나타나지 않는 아이템들을 선택할 수 있는 Source Selection 대화상자가 나타난다. Source Selection 대화상자에는 소스 트리에 나타낼 수 있는 모든 아이템이 표시된다. 사용자는 리스트에서 아이템을 클릭하거나 이름을 입력하여 아이템을 선택할 수 있다.

<Shift> 키를 누른 상태로 클릭하여 여러 개의 소스를 선택할 수 있다. 선택한 요소를 더블클릭하거나 [OK] 버튼을 클릭하면 선택한 아이템이 소스 트리에 나타난다.

[Remove source]

소스 트리에 나타난 아이템 중 제거할 아이템이 있는 경우 사용한다. 제거 가능한 아이템에 대해서만 활성화 된다.

[Search Node]

Node Search Dialog에서 트리에서 원하는 노드를 바로 검색할 수 있다. Node Search Dialog에서 'Search nodes'에 검색할 노드를 입력하면 해당 문자열을 포함한 모든 노드를 검색한다. 'Regular Expression' 체크박스를 선택하면 단순 문자열 검색이 아닌 정규식을 이용한 검색을 수행한다. 검색이 끝나면 검색된 노드 결과를 알려주는 메시지가 나타나고, 소스 트리에는 검색된 노드들이 선택된 상태로 조회된다.

[Reset visible multiple item]

배열 타입의 아이템인 경우 나타나는 메뉴이며 특정 인덱스에 자유로운 매핑을 보장하기 위해 트리에 나타나는 아이템의 인덱스 범위를 조절할 수 있는 다이얼로그(인덱스 범위 조절 다이얼로그)를 생성한다.

[Expand tree]

선택된 아이템의 하위 아이템을 트리에서 모두 열어서 보여준다.

[Generate mapping automatically]

image 아이콘 설명과 동일한 기능을 한다.

[Generate mappings with physical name automatically]

image 아이콘 설명과 동일한 기능을 한다.

[Reset layout]

변경된 영역의 크기를 기본 크기로 변환한다. 영역의 크기는 영역 사이의 공간에 마우스 포인터가 변경될 때 드래그하여 변경할 수 있다.

figure mapping array index dialog
인덱스 범위 조절 다이얼로그

 

타겟 트리

타겟 트리의 컨텍스트 메뉴에서 여러 가지 작업을 수행할 수 있다.

figure target tree context menu
타겟 트리 컨텍스트 메뉴
메뉴 설명

[Create new expression]

매핑 관련 영역 상단 bar의 image 아이콘 설명과 같으므로 생략한다.

타겟 트리의 나머지 컨텍스트 메뉴의 설명은 소스 트리와 동일하다.

 

편집

함수 매핑이 완료되면 편집 영역에서 해당 함수를 편집해야 한다.

figure edit context menu
편집 컨텍스트 메뉴

다음은 편집 영역의 컨텍스트 메뉴이다.

  • [Add new Function]

    [Expression] 탭에 새로운 함수를 넣으려면 [Add new function] 메뉴를 클릭한다.

    figure function select menu
    함수 선택 메뉴

    사용자는 소스 트리에서 직접 함수 편집 창으로 객체를 드래그 앤드 드롭하여 소스 트리에 있는 노드의 값을 가져 올 수 있다. 함수의 파라미터를 입력할 때 드래그 앤드 드롭을 이용하면 편리하다.

    • ArrayField의 크기를 반환

      @arraySize(arrayField)
    • String.charAt(i)

      @charAt(String, index)
    • string concatenation

      @concat(stringField1, stringField2, .....)
    • 현재의 날짜를 반환(String)

      @date()
    • 현재의 날짜를 arg 포맷으로 반환(String)

      @date("yyyyMMdd");
    • string dateformat

      @dateformat(stringField, "yyyyMMdd", "yyyy-MM-dd")
      @dateformat(stringField, "HHmmss", "HH:mm:ss")
    • 문자열을 복호화해서 반환(String)

      @decrypt(stringField, stringValue);
    • 문자열을 암호화해서 반환(byte[])

      @encrypt(stringField, byteArray);
    • 애니링크에서 제공하는 시스템 변수나 거래 정보들을 반환(String)

      @getEnv(stringKey);
    • string replace

      @replace(stringField, "target", "replacement")
    • 시퀀스 값을 시스템에 저장하고, 1씩 증가 시키면서 조회한다.

      @sequence(stringField, int length, boolean padding)
    • 시퀀스 값을 시스템에 저장하고, 1씩 증가 시키면서 조회한다. resetType으로 값을 reset할지 설정한다.

      @sequence(stringField, int length, boolean padding, ResetType resetType)
    • length of string

      @strlen(stringField)
    • substring

      @substring(stringField, int beginIndex)
    • substring

      @substring(stringField, int beginIndex, int endIndex)
    • 현재의 시간을 arg 포맷으로 반환(String)

      @time("HHmmdd")
    • string trim

      @trim(stringField)

      함수로 해결할 수 없는 복잡한 로직은 [Add UserClass] 버튼을 클릭해서 유저 클래스를 작성해서 등록할 수 있다.

  • [Add variable data]

    [Expression] 탭에 소스에 있는 변수값을 가져오려고 하면, 소스의 변수를 [Expression] 탭에 드래그하거나 컨텍스트 메뉴에서 [Add variable data] 메뉴를 선택한다.

 

매핑 라인

일반적인 매핑을 정의하기 위해서는 소스 트리와 타겟 트리에서 각각 하나의 아이템을 선택한 후 매핑 영역 상단의 툴바에서 [Create New Mapping] 버튼을 클릭하거나 소스 아이템을 드래그하여 타겟 아이템에 올려 놓아도 매핑된다.

소스 아이템과 타겟 아이템은 호환 가능한 타입이고, 타겟에 대하여 어떠한 매핑도 정의되지 않은 상태이어야 한다. 트리에서 선택된 소스 아이템과 타겟 아이템이 호환되지 않고, 이미 정의된 매핑이 있을 경우 툴바의 [Create New Mapping] 버튼은 비활성화되며, 소스에서 타겟으로 드래그 앤드 드롭은 허용되지 않는다.

사용자는 매핑 라인을 클릭해서 매핑을 선택할 수 있다. 함수 매핑이나 상수 매핑의 경우 상수 매핑과 함 수 매핑을 상징하는 사각형 안쪽을 클릭하여 매핑을 선택할 수 있다. <Ctrl>이나 <Shift> 키를 누른 상태로 클릭하여 2개 이상의 매핑을 선택할 수도 있다.

선택된 매핑이 1개이고 상수 매핑인 경우에 상수 매핑 편집 탭이 활성화되고, 선택된 매핑이 하나이고 함 수 매핑인 경우에는 함수 매핑 편집 탭이 활성화된다. 그렇지 않은 경우 매핑 위치 탭이 활성화되어 선택 된 매핑 위치의 정보를 보여준다.

 

트리 속성

속성 창은 트리에서 선택된 아이템의 속성을 보여준다. 소스 속성 창은 소스 트리의 선택된 아이템을 타겟 속성 창은 타겟 트리에서 선택된 아이템의 속성을 각각 보여준다.

다음은 트리에서 선택된 아이템의 속성을 조회하는 화면이다.

figure item preference
아이템 속성

3. 리소스 관련 다이얼로그

본 절에서는 리스소 선택과 관련된 항목에서 볼 수 있는 다이얼로그들에 대해 설명한다.

3.1. 리소스 생성 다이얼로그

리소스 생성 다이얼로그는 스튜디오 프로젝트 내에 리소스를 생성해야 할 경우 나타난다. 원하는 거래/거래그룹 항목을 선택한 뒤 [리소스 이름][리소스 ID]를 설정하고 [Finish] 버튼을 클릭하면 선택한 위치 하위 항목으로 리소스가 추가된다. 리소스 마다 선택할 수 있는 옵션과, ID/이름을 지정할 수 있는 방법이 다르므로 리소스를 추가하는 항목의 내용을 잘 살펴보도록 한다.

figure multibinding multibinding create
리소스 생성 다이얼로그

3.2. 리소스 검색 다이얼로그

리소스 검색 다이얼로그는 특정 항목에 리소스의 정보를 추가해야 할 경우 나타난다. 이 때 WebAdmin의 리소스를 조회하는 경우 WebAdmin에서 작업한 아이디와 같은 아이디로 로그인해야 WebAdmin에서 작성한 리소스를 불러 올 수 있다. 원하는 리소스를 찾아 [OK] 버튼을 클릭하면 다이얼로그를 호출한 곳에 리소스의 정보가 삽입된다.

figure outboundrule findresource
리소스 검색 다이얼로그
항목 설명

리소스유형

목록으로 나타낼 리소스의 유형을 선택한다. 엔드포인트, 메시지, 플로우 등 AnyLink에서 사용하는 모든 종류의 리소스를 선택할 수 있다.

검색 조건

리소스를 검색할 경우 무엇을 기준으로 검색할지를 선택한다. 이름, 아이디, 패키지 중에 하나를 선택할 수 있으며 뒤의 텍스트박스에 내용을 입력하고 [검색] 버튼을 클릭해서 검색을 수행할 수 있다.

리소스 목록

리소스 하단에 위치한 리소스의 목록을 조회하는 부분이다. 리소스 유형에 속하며 검색한 리소스의 조건에 맞는 모든 리소스를 목록으로 조회한다.