6.X-UP 모델

Edit

이 장에서는 X-UP 모델 정책과 X-UP 모델에 정의된 데이터소스로부터 데이터를 수집하고 융합하는 여러 서비스에 대하여 설명합니다.

X-UP 모델을 X-UP 빌더를 통해 개발 됩니다. 개발 된 X-UP 모델은 메타데이터와 로직클래스로 이루어져 있습니다. 메타데이터는 모델의 입출력 정보및 로직클래스의 정보를 가지고 있으며, 모델이 실행될 경우에 로직클래스를 통해 처리 됩니다. 해당 로직클래스는 동일한 interface를 통해 일관된 형태로 이루어져 있으며, 전문적인 지식없이도 동일한 품질의 어플리케이션을 개발 할 수 있습니다.

6.1오토메이션 모델(Automation Model)

오토메이션 모델은 GUI 에디터를 이용하여 하나의 서비스에 해당하는 로직을 다이어그램으로 표현합니다. 표현된 각각의 다이어그램은 Invoke라고 하며 임의의 데이터소스로부터 데이터를 획득합니다. 데이터를 획득 하기 위한 데이터 정보는 X-UP 빌더의 에디터와 Properties View를 이용하여 작성하게 됩니다. 그리고 오토메이션 모델을 저장하게 되면 Java 클래스 코드가 자동으로 생성이 되며 GUI 에디터에서 모델을 수정하게 되면 자동으로 클래스 코드에 반영되게 됩니다.

오토메이션 모델에서 X-UP 빌더는 다음과 같은 Invoke를 제공합니다.

Invoke

설명

SAP RFC Invoke

SAP RFC를 위한 모듈

DB Select Invoke

DBMS select를 위한 모듈

DB Modify Invoke

DBMS insert, update, delete를 위한 모듈

DB Procedure Invoke

DBMS procedure를 위한 모듈

OpenApi Invoke

OpenApi 처리를 위한 모듈

X-UP Invoke

Remote 에 존재하는 X-UP의 모델 invoking을 위한 모듈

Model Invoke

X-UP의 모델 invoking을 위한 모듈

Visual Cobol Invoke

Visual Cobol의 리소스 invoking을 위한 모듈

또한 자주 사용하는 형태의 Function 기능을 제공합니다.

Function

설명

User Method

에디터에서의 표현하지 못하는 자바소스 코드를 작성할 수 있습니다.

Quick Merge

두개의 데이터셋을 하나의 데이터셋으로 융합할 수 있습니다.

Merge

두개 이상의 데이터셋을 하나의 데이터셋으로 융합할 수 있습니다.

XML Parser

에디터에서의 특정 XML 을 쉽게 파싱 할 수 있습니다.

Extract DataSet

여러 개의 variable을 합쳐 하나의 DataSet으로 만들수 있습니다.

Extract Variable

DataSet의 컬럼을 분리하여 하나의 variable로 추출할 수 있습니다.

DataSet Loop

DataSet의 특정 Row값에 대하여 반복적 제어문 처리를 할 수 있습니다.

또한 다음과 같은 분기 처리에 대한 Control 기능을 제공합니다.

분기 처리

설명

Decision

에디터에서의 특정 조건에 따라 분기 처리를 할 수 있습니다.(if)

Break

에디터에서의 반복적인 작업을 중단할 수 있습니다.(break)

Continue

에디터에서 특정 조건에서 반복적인 작업을 한번 건너뛸 수 있습니다.(for, continue)

6.1.1Invoke 공통 프로퍼티

X-UP 에디터 위에 배치된 Invoke를 클릭하면 Properties View를 통해 해당 Invoke에 대한 정보를 볼 수 있습니다. 아래는 X-UP 빌더의 오토메이션 모델에서 사용하는 모든 Invoke의 공통 프로퍼티입니다.

General

Properties View의 General 탭을 클릭하면 아래와 같은 화면이 나타납니다.

항목

설명

Alias

Alias를 정의할 수 있습니다.

Name

Name을 정의할 수 있습니다.

Visible

Show Alias의 유무를 정할 수 있습니다.

Description

해당 Invoke에 대한 Description을 정의할 수 있습니다.

Input Binding / Output Binding

Input Binding/Output Binding은 Invoke가 실행 시 필요한 in-out 파라매터의 명칭과 모델에서 정의한 파라매터의 명칭을 바인딩해주는 역할을 수행합니다.

 Ex> 프로시저가 입력 파라매터 명칭은 'VAR_IN'이지만 모델에서는 'var01' 명칭의 파라매터로 선언하여 사용할 수 있습니다. 프로시저가 호출 될 때 'var01' 파라매터는 'VAR_IN'으로 변환되어 프로시저를 호출하고 호출이 끝나는 시점에 원래의 'var01'으로 파라매터 명칭이 변경 됩니다.

Input Binding/Output Binding 기능은 아래의 Invoke에만 해당합니다.


  • SAP RFC

  • DB Procedure

  • X-UP Model

  • X-UP Remote

  • Visual Cobol

고정된 in-out 파라미터 이름과 상관없이 사용자가 원하는 파라미터 이름을 정의할 수 있습니다. Invoke와 함께 생성된 커넥션은 삭제할 수 없으며 만약 다른 파라미터와 연결하고자 한다면 reconnection을 통하여 변경할 수 있습니다.

Reconnection 이란?

에디터 위에 그려진 Connection의 순서 변경을 의미합니다. Input 또는 Output으로 연결되어 있는 선의 끝부분을 클릭 버튼으로 누른 상태에서 변경하고 싶은 대상으로 이동 후 클릭 버튼을 놓으면 파라미터에 연결된 Connection이 변경됩니다.

BeforeDataSource

해당 Invoke가 사용하는 데이터소스를 통해 Legacy연결을 맺기 직전에 사용자가 원하는 로직을 자바 코드로 추가할 수 있습니다.

Source View > 마우스 오른쪽 버튼 > Pop-up의 Edit 버튼을 누르면 자바 코드를 추가할 수 있습니다.

AfterDataSource

해당 Invoke가 사용하는 데이터소스를 통해 Legacy연결을 맺은 직후에 사용자가 원하는 로직을 자바 코드로 추가할 수 있습니다.

Source View > 마우스 오른쪽 버튼 > Pop-up의 Edit 버튼을 누르면 자바 코드를 추가할 수 있습니다.

Exception

Exception 탭은 해당 Invoke의 예외처리를 수행하는 단계로 사용자가 원하는 로직을 자바코드로 추가할 수 있습니다

Source View > 마우스 오른쪽 버튼 > Pop-up의 Edit 버튼을 누르면 자바 코드를 추가할 수 있습니다.

6.1.2파라미터

X-UP에서 사용하는 데이터 자료 유형입니다.
파라미터의 종류는 다음과 같습니다.

공통 속성

X-UP에서 사용되는 자료 유형으로 다음과 같은 기본적인 공통 속성을 가집니다.

General

모든 노드들의 공통 항목으로 Name, Alias, Visible, Description을 정의합니다.

표 6-1General

항목

설명

Alias

사용자가 원하는 별칭을 정의합니다. 한글입력도 가능합니다.

Name

데이터셋의 이름을 정의합니다. 에디터상에서 다른 파라미터와 중복되지않는 이름으로 영어로만 정의합니다.

Visible

에디터상에서 Name을 보일지 Alias를 보일지를 선택합니다.

Description

모델 설명을 입력합니다.

InOut

모든 파라미터의 공통 항목으로 파라미터의 타입을 선택합니다.

항목

설명

normal

모델내부에서만 사용되는 일반 파라미터

in

모델의 input 파라미터로 설정, 모델 메타데이터의 input 파라미터로 등록됩니다.

out

모델의 output 파라미터로 설정, 모델 메타데이터의 output 파라미터로 등록됩니다.

in + out

모델의 input 파라미터 + output 파라미터로 설정, 모델 메타데이터의 input + output 파라미터로 등록됩니다.

in 혹은 in+out 파라미터의 경우 반드시 모델이 실행될 때 입력되어야 합니다.

normal 혹은 out 의 경우 모델이 실행될 때 내부에서 초기화 된 파라미터를 생성합니다.

Variable

Variable은 X-API의 Variable과 동일한 타입의 파라미터를 생성합니다.

Schema

기본적으로 다른 파라미터와 같은 프로퍼티를 가지고 있으며 Schema 탭만 다르게 정의합니다.

Variable의 Schema탭은 다음 항목을 설정합니다.

DataSet

DataSet Parameter는 X-API의 DataSet과 동일한 타입의 파라미터를 생성합니다.

Schema

항목

설명

DB Table

등록된 데이터소스에 존재하는 데이터베이스 테이블로부터 컬럼 정보를 생성합니다.

X-UP Model

생성된 다른 모델로부터 데이터셋 컬럼 정보를 가져옵니다.

XML File

로컬 PC에 존재하는 PlatformData xml 파일로부터 데이터셋 컬럼 정보를 생성합니다.

항목

설명

Enable First Row

First Row 기능을 활성화시킵니다.

First row count

First Row 기능이 활성화 되면, 사용자가 First Row Count를 직접 지정할 수 있습니다. (기본값은 10000)

First Row 는 무엇인가?

First Row는 넥사크로 플랫폼에서 사용되어지는 용어로 대량의 데이터를 호출할 경우 성능 및 오류방지를 위하여 사용자가 지정한 First Row 수 만큼 분할하여 전송하는 기능입니다. 예를 들면 1000건의 데이터를 200건씩 나눠서 5회에 걸쳐 전송하거나, 500건씩 나눠서 2회에 걸쳐 전송하는것을 말합니다.

사용자가 설정한 First Row 수 만큼 계속 전송하고 남은 나머지는 서비스가 종료될경우 전송됩니다. 예를 들어 1000건의 데이터를 300건씩 First Row를 이용해서 전송하게 되면 3회에 걸쳐 300건씩 전송되고, 나머지 100건의 데이터는 마지막에 전송하여 총 4회에 걸쳐 1000건의 데이터를 전송합니다.

First Row로 데이터를 전송할 때 데이터셋이 전송되고 난 후에는 Variable이 전송될 수 없습니다.

File

File Parameter는 파일 입출력을 정의하기 위한 파라미터입니다.

Schema

기본적으로 다른 파라미터와 같은 프로퍼티를 가지고 있으며 Schema 탭만 다르게 정의합니다

File의 Schema 탭은 다음 항목을 설정합니다.

MIME Type

File Extension

application/pdf

pdf

image/jpeg

jpeg

text/html

html

text/css

css

Header

Header 파라미터는 HTTP Header 입출력 정보를 관리하기 위한 파라미터입니다.

Schema

기본적으로 다른 파라미터와 같은 프로퍼티를 가지고 있으며 Schema 탭만 다르게 정의합니다

Header의 Schema 탭은 다음 항목을 설정합니다.

Field Name

Example

Accept

Accept: text/plain

Accept-Charset

Accept-Charset: utf-8

Content-Type

Content-Type: application/x-www-form-urlencoded

User-Agent

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0

6.1.3SAP RFC Invoke

SAP RFC Invoke는 SAP RFC 정보를 파라미터 형식으로 생성하기 위한 컴포넌트입니다. 호출 시 Variable이나 Dataset 형식으로 가져옵니다.

SAP RFC Invoke 생성은 Palette에서 SAP RFC 아이템을 선택하거나 X-UP DataSource View에서 SAP DataSource를 선택한 후 나오는 Function을 조회하여 특정 Function을 선택 후 에디터로 드래그함으로써 빠르게 생성할 수 있습니다.

SAP RFC Invoke는 Invoke를 생성하기 위한 SAP RFC Invoke Dialog 와 다음과 같은 프로퍼티 속성 탭을 가지고 있습니다.

SAP RFC Invoke Dialog

SAP RFC Invoke를 생성하고자 할 경우 다음과 같은 다이얼로그가 출력됩니다.

항목

설명

DataSource

SAP RFC 데이터소스를 선택 ( 없다면 새로운 데이터소스 생성 가능 )

Function List

선택한 데이터소스로부터 Function 리스트를 조회

Input Parameter

선택한 Function으로부터 입력 파라미터가 자동 생성됨

Test

테스트를 수행한 결과를 출력

Output Variable 형태로 생성됩니다.

InvokeInfo

Invoke를 수행하기 위한 필수 정보가 출력됩니다.

다른 Invoke처럼 Invoke를 실행하기 위한 In-Out 정보가 이미 고정되어 있는 경우는 Information만 출력합니다.

SAP RFC Invoke의 경우 InvokeInfo에서 다음 정보를 출력합니다.

항목

설명

DataSource

선택한 데이터소스 ( 클릭시 해당 데이터소스 편집창 오픈 )

Group

정의된 SAP RFC 함수 그룹

Function

선택한 SAP RFC 함수

6.1.4Select Invoke

Select Invoke는 DataBase의 Select 기능을 수행합니다.

X-UP 빌더에서 Select Invoke 노드 생성은 Palette에서 Select 아이템을 선택하거나 X-UP DataSource View에서 테이블을 선택 후 에디터로 드래그하여 Select Invoke를 선택함으로써 빠르게 생성할 수 있습니다.

Select Invoke의 프로퍼티에는 다음과 같은 속성탭을 가지고 있습니다.

InvokeInfo

모든 Invoke 노드는 반드시 InvokeInfo라는 프로퍼티 탭을 가지고 있습니다. InvokeInfo는 Invoke를 하기 위한 필수 정보를 입력합니다. Select Invoke에서는 데이터소스명과 SQL을 입력하게 됩니다.

SQL 입력

X-UP은 데이터를 조회하기 위한 SQL문을 자동으로 생성해 줍니다. 생성된 SQL문은 모든 컬럼을 where 조건 없이 조회하는 Select SQL 입니다. 필요에 따라 자동적으로 생성된 SQL을 수정하여 임의의 데이터를 조회할 수 있습니다. SQL의 바인딩변수는 매개변수(Parameter) 이름 앞과 뒤에 ‘#’을 붙여서 표현합니다.

Parameter Code Assist

에디터에서 해당 Invoke에 Input 파라미터를 연결하면 SQL 편집창에서 파라미터 어시스트를 사용할 수 있습니다.

파라미터 어시스트는 Ctrl+Space 또는 ‘#’ 을 입력하면 자동으로 출력됩니다.

DBMS별 Data Type Mapping

Java

Platform

Oracle 10g

Mysql 5.0

Mssql 2008

DB2 9.0

HANA 1.0

String

STRING

CHAR

VARCHAR

VARCHAR2

NCHAR

NVARCHAR2

XML

CHAR

VARCHAR

char

nchar

varchar

nvarchar

CHAR

VARCHAR

GRAPHIC

VARGRAPHIC

CHAR

VARCHAR

TEXT

SHORTTEXT

NCHAR

NVARCHAR

ALPHANUM

Boolean

BOOLEAN


BIT

BOOL

BOOLEAN

bit



Bigdecimal

BIGDECIMAL

NUMBER(p)

INTEGER

INT

SMALLINT

DECIMAL

DEC

NUMERIC

DECIMAL

numeric

decimal

money

samllmoney

DECIMAL

NUMERIC

DECIMAL

SMALLDECIMAL

int

INTEGER


INTEGER

MEDIUMINT

TINYINT

tinyint

int

smallint

INTEGER

SMALLINT

INTEGER

float

FLOAT

NUMBER(p,s)

BINARY_FLOAT

FLOAT

real

REAL

REAL

double

DOUBLE

DOUBLE PRECISION

FLOAT

BINARY_DOUBLE

DOUBLE PRECISION

DOUBLE

float

DOUBLE

DOUBLE

FLOAT

long

LONG

LONG

BIGINT

bigint

BIGINT

TINYINT

SMALLINT

BIGINT

Date

DATE

DATE

DATE

YEAR

date

DATE

DATE

Time

TIME


TIME

time

TIME

TIME

Timestamp

DATETIME

TIMESTAMP

TIMESTAMP

DATETIME

datetime

samlldatetime

datetime2

datetimeoffset

TIMESTAMP

TIMESTAMP

SECONDDATE

Blob

BLOB

BLOB

BLOB

TINYBLOB

MEDIUMBLOB

LONGBLOB

image

BLOB

BLOB

Clob


CLOB

NCLOB

TEXT

LONGTEXT

text

ntext

CLOB

DBCLOB

CLOB

NCLOB

TEXT

BINTEXT

byte[]




timestamp


BINARY

XML




XML

XML


CDATA 지원

SQL문이 특수 문자를 사용하고 있을 경우 ‘Enable Surround CDATA’를 선택하게 되면 SQL문 전체를 CDATA로 감싸게 됩니다.

CDATA 는 무엇인가?

XML이나 자바스크립트에서 사용하는 CDATA 섹션입니다. CDATA를 사용하는 목적은 XML 코드를 작성한 후, XML 파서에게 ‘CDATA섹션 안에 포함된 코드에는 태그가 없다. 그러니 무시하고 지나가라’ 라고 알려주는 역할을 합니다.

흔히 사용하는 "&",">","<" 같은 것들을 XML 코드에 작성할 경우엔 XML 파서가 태그로 인식하여 그대로 해석해 버리기 때문에 오류가 발생합니다. 이런 경우를 방지하기 위하여 CDATA 섹션으로 특수문자가 포함된 해당 코드를 감싸주는 것입니다. 이렇게 하게 되면 XML 파서가 태그가 아닌 String 자체로 인식하게 됩니다.

Dynamic SQL 지원

iBatis는 SQL의 재사용성과 유연성을 향상시키기위해 매핑 구문 내에서 사용할 수 있는 동적 SQL (Dynamic SQL) 요소들을 제공합니다.

X-UP은 iBatis를 지원하고 있기 때문에 기존의 iBatis의 동적 SQL쿼리도 쿼리수정 없이 바로 사용할 수 있습니다.

다양한 동적 SQL 요소의 자세한 안내는 Dynamic SQL을 참조합니다.

Event Handler

Event handler는 Select Invoke와 Modify Invoke에서 제공하며, Invoke 작업중 사용자가 원하는 추가 로직을 이벤트 내부에 정의할 수 있습니다.

이벤트 핸들러를 추가하고자 할 경우 해당 노드를 선택한 후 오른쪽 마우스 버튼 > Add Event를 선택 > 추가하고자 하는 이벤트를 선택 하면 해당 노드에 이벤트 시작과 종료 노드가 추가됩니다.

Select Invoke의 이벤트 핸들러는 다음과 같습니다.

6.1.5Modify Invoke

Modify Invoke는 입력 파라미터를 가지고 Insert, Update, Delete SQL을 수행합니다.

X-UP은 Modify Invoke 시 데이터셋의 Row의 Type을 보고 해당 Row를 Insert, Update, Delete할 지를 결정합니다. 데이터셋의 Row의 Type은 강제로 설정할 수도 있으나 일반적으로 데이터셋에 Row를 추가하거나 수정, 삭제할 때 자동적으로 Type이 결정됩니다.

X-UP에서 Row에 대한 처리 기준은 다음과 같습니다.

이러한 기준에 따라서 데이터셋의 특정 Row가 테이블에 존재하면 update를 하고, 존재하지 않으면 insert합니다. delete되는 대상은 데이터셋에서 removeRow()나 clearData()를 호출하여 삭제된 Row에 해당하는 record입니다.

X-UP 빌더에서 Modify Invoke 노드 생성은 Palette에서 Modify 아이템을 선택하거나 X-UP DataSource View에서 테이블을 선택후 에디터로 드래그하여 Modify Invoke를 선택함으로써 빠르게 생성할 수 있습니다.

Modify Invoke의 프로퍼티에는 다음과 같은 속성탭을 가지고 있습니다.

InvokeInfo

InvokeInfo는 Modify Invoke를 수행하기 위한 필수 정보를 입력합니다.

Target DataSet이 선택되지 않았을 경우 Delete / Insert / Update SQL 순으로 무조건 1번씩 실행됩니다. (데이터셋의 Row의 Type에 따라 처리하기를 원하지 않을 경우에 사용)

SQL 입력

Modify Invoke는 insert, update, delete 를 위한 SQL 문을 자동으로 생성해 줍니다.

CDATA 지원

SQL 문이 특수문자를 사용하고 있을 경우 ‘Enable Surround CDATA’ 를 선택 하게 되면 SQL 문 전체를 CDATA 로 감싸게 됩니다.

CDATA 는 무엇인가?

XML이나 자바스크립트에서 사용하는 CDATA 섹션입니다. CDATA를 사용하는 목적은 XML코드를 작성한 후, XML파서에게 ‘CDATA섹션 안에 포함된 코드에는 태그가 없다. 그러니 무시하고 지나가라’ 라고 알려주는 역할을 합니다.

흔히 사용하는 "&",">","<" 같은 것들을 XML코드에 작성할 경우엔 XML파서가 태그로 인식하여 그대로 해석해 버리기 때문에 오류가 발생합니다. 이런 경우를 방지하기 위하여 CDATA섹션으로 특수문자가 포함된 해당 코드를 감싸주는 것입니다. 이렇게 하게 되면 XML파서가 태그가 아닌 String 자체로 인식하게 됩니다.

Dynamic SQL 지원

iBatis는 SQL의 재사용성과 유연성을 향상시키기위해 매핑 구문 내에서 사용할 수 있는 동적 SQL (Dynamic SQL) 요소들을 제공합니다.

X-UP은 iBatis를 지원하고 있기 때문에 기존의 iBatis의 동적 SQL쿼리도 문법수정 없이 바로 사용할 수 있습니다.

다양한 동적 SQL 요소의 자세한 안내는 Dynamic SQL을 참조합니다.

SqlTypeBinding

SqlTypeBinding은 데이터셋의 Row 타입을 SQL 구문과 바인딩시켜줍니다.

필터링(Filtering)

필터링은 입력 파라미터의 값이 특정 조건에 만족할 경우 Modify 액션에서 제외하고자 할 경우 정의합니다.

Event Handler

6.1.6Procedure Invoke

Procedure Invoke는 데이터베이스의 procedure 및 Function을 호출합니다. 해당 Invoke는 DataSource와 Entity정보를 입력하여 테스트를 수행하고 나면 실제 데이터베이스의 Procedure 및 Function을 호출한 결과를 바탕으로 자동으로 입력 파라미터와 출력 파라미터가 설정 됩니다.

X-UP 빌더에서 Procedure Invoke 생성은 Palette에서 Procedure 아이템을 선택하거나 X-UP DataSource View에서 Procedure나 Function을 선택후 에디터로 드래그함으로써 빠르게 생성할 수 있습니다.

Procedure Invoke는 Invoke를 생성하기 위한 Procedure Invoke Dialog 와 다음과 같은 프로퍼티 속성탭을 가지고 있습니다.

InvokeInfo

Invoke를 수행하기 위한 필수 정보가 출력됩니다.

Procedure Invoke와 Model Invoke처럼 Invoke를 실행하기 위한 In-Out정보가 이미 고정되어 있는 경우는 Information만 출력합니다.

Procedure Invoke의 경우 InvokeInfo에서 다음 정보를 출력합니다.

Procedure Invoke Dialog

Procedure Invoke를 생성하고자 할 경우 다음과 같은 다이얼로그가 출력됩니다.

6.1.7OpenApi Invoke

OpenApi Invoke는 HTTP 정보를 파라미터형식으로 생성하기 위한 Invoke입니다. 호출 시 http header, html body 정보를 파라미터 형식으로 가져옵니다.

X-UP 빌더에서 OpenApi Invoke 생성은 Palette에서 OpenApi 아이템을 선택후 에디터로 드래그함으로써 빠르게 생성할 수 있습니다.

OpenApi Invoke는 Invoke를 생성하기 위한 OpenApi Invoke Dialog 와 다음과 같은 프로퍼티 속성탭을 가지고 있습니다.

OpenApi Invoke Dialog

OpenApi Invoke를 생성하고자 할 경우 다음과 같은 다이얼로그가 출력됩니다.

Sub Path와 Input Parameter

OpenApi로부터 데이터를 수집할 때 사용되는 전체 URL은 다음과 같이 구성됩니다.

<데이터소스 HTTP URL> + <SubPath> + <데이터소스 parameter> + <input parameter>

일반적으로 하나의 사이트에서 제공하는 OpenApi의 URL은 같은 base url을 사용하지만 제공하는 서비스에 따라 sub path가 다를 수 있습니다. 항상 같은 base url을 데이터소스에 정의하고, 서비스 별로 다른 sub path는 각 Invoke에 정의합니다. 유사하게 인증 키와 같이 OpenApi를 호출할 때 항상 전달하여야 하지만 클라이언트가 입력할 필요가 없는 매개변수는 데이터소스에 정의하고, 실제 클라이언트에서 사용자가 입력할 매개변수는 Invoke에 정의합니다.

Result

OpenApi로부터 데이터를 수집하게 되면 수집된 결과가 ‘BODY’라는 파라매터를 생성합니다. 그리고 또한 데이터 수집을 통해 응답 받은 HTTP Header의 값들을 HEADER + INDEX 로 파라매터로 생성합니다. (단, Header 로 정의 된 데이터를 출력으로 지정 할 경우 HTTP Response Header 에 정의 된 정보로 변경 하여 응답합니다)

InvokeInfo

Invoke를 수행하기 위한 필수 정보가 출력됩니다.

다른 Invoke 처럼 Invoke를 실행하기 위한 In-Out 정보가 이미 고정되어 있는 경우는 Information 만 출력합니다.

OpenApi Invoke의 경우 InvokeInfo에서 다음 정보를 출력합니다.

6.1.8X-UP Invoke

X-UP Inovke는 다른 서버의 이미 만들어지고 Deploy된 X-UP 모델을 호출하기 위한 컴포넌트입니다.

X-UP Invoke는 Remote에 존재하는 X-UP 서버의 모델을 호출하여 데이터를 획득하고 새로운 파라미터를 생성합니다.

X-UP Invoke는 다음과 같은 프로퍼티 속성탭을 가지고 있습니다.

InvokeInfo

Invoke를 수행하기 위한 필수 정보가 출력됩니다.

다른 Invoke 처럼 Invoke를 실행하기 위한 In-Out 정보가 이미 고정되어 있는 경우는 Information 만 출력합니다.

X-UP Invoke의 경우 InvokeInfo에서 다음 정보를 출력합니다.

6.1.9Model Invoke

Model Invoke는 같은 프로젝트 내의 이미 만들어져 있는 다른 X-UP 모델을 호출하기 위한 컴포넌트입니다.

Model Invoke 생성은 Palette에서 Model 아이템을 선택하거나 X-UP Explorer에서 직접 모델을 선택 후 에디터로 드래그함으로써 빠르게 생성할 수 있습니다.

Model Invoke는 Palette에서 생성할 경우 나타나는 X-UP Model List Dialog와 다음과 같은 프로퍼티 속성탭을 가지고 있습니다.

InvokeInfo

Model Invoke를 수행하기 위한 필수 정보를 출력합니다.

모델 이름을 클릭하면 해당 모델 에디터로 이동합니다.

우측 상단에 Refresh 메뉴를 통해 Invoke된 모델의 정보가 변경되었을 경우 다시 갱신할 수 있도록 합니다.

6.1.10Visual Cobol Invoke

Visual Cobol Invoke는 Visual Cobol을 이용해 만들어진 리소스를 호출하기 위한 컴포넌트입니다.

X-UP 빌더에서 Visual Cobol Invoke 생성은 Palette에서 Visual Cobol Invoke를 선택하거나 X-UP DataSource View에서 Visual Cobol DataSource를 선택 후 메소드를 에디터로 드래그함으로써 빠르게 생성할 수 있습니다.

Visual Cobol Invoke는 다음과 같은 프로퍼티 속성탭을 가지고 있습니다.

InvokeInfo

Invoke를 수행하기 위한 필수 정보가 출력됩니다.

Visual Cobol Invoke의 InvokeInfo에서 다음 정보를 출력합니다.

Cobol Invoke Dialog

아래는 Visual Cobol Invoke를 더블클릭했을 때 나타나는 Dialog입니다.

Trim

Invoke를 수행 후 Output Parameter로 나오는 데이터셋 내 String Type의 Column에 대하여 Trim 적용여부를 선택할 수 있습니다.

Visual Cobol Invoke의 Trim 탭에서 다음 정보를 출력합니다.

ReturnCode

Return value의 값에 따라 Exception을 처리할 수 있는 기능을 제공합니다.

Visual Cobol Invoke의 ReturnCode 탭에서 다음 정보를 출력합니다.

6.1.11User Method Function

User Method는 모델 개발 시 사용자 정의 코드를 직접 작성할 수 있도록 합니다. 실제 자바 소스의 메소드로 생성되며 원하는 자바 코드를 자바 파일 없이 자유롭게 정의하여 모델에 추가할 수 있습니다.

User Method에서 제공하는 프로퍼티 속성은 다음과 같습니다.

6.1.12DataSetRowLoop Function

DataSetRowLoop Function은 X-UP Builder Automation 모델 Editor내에서 DataSetRowLoop 함수에 한 개의 DataSet을 연결시키게 되면 DataSetRowLoop 함수에 연결된 데이터셋의 Row개수 만큼 반복하여 이벤트를 발생시키는 함수입니다.

DataSet을 DataSetRowLoop 함수에 마우스 연결한 뒤 DataSetRowLoop 컴포넌트에 마우스 우클릭하여 AddEvent >loopEvent를 클릭하면 이벤트(Start, End)가 나오고 Start Event에 파라미터로 Variable 타입의 rowIndex와 DataSet 타입의 dataset이 추출됩니다.

dataset과 rowIndex은 지역변수이며, globalParameterSet에 포함되지 않습니다. 또한 dataset의 경우 이벤트가 발생한 행의 데이터만을 가집니다. 즉 하나의 행만을 가진 데이터셋입니다.

DataSetRowLoop 함수에서 제공하는 프로퍼티 속성은 다음과 같습니다.

6.1.13Quick Merge Function

Quick Merge Function은 두개의 데이터셋을 가지고 새로운 데이터셋을 생성하기 위한 컴포넌트 입니다.

두 개의 데이터셋을 기준으로 하며 Sort Merge 혹은 Hash Join 알고리즘을 통해 데이터셋을 융합합니다.

Quick Merge Function 은 다음과 같은 프로퍼티 속성값을 가지고 있습니다.

이러한 융합을 위한 융합 모델 개발은 다음과 같은 단계로 진행됩니다.

대상 데이터셋 설정

융합에 사용될 데이터셋을 설정합니다. X-UP모델에 의한 데이터셋 또는 사용자가 매개변수로 전달한 데이터셋이 설정될 수 있습니다.

융합 로직 구현

융합은 두가지 형태로 제공됩니다. SortMerge 알고리즘을 이용한 융합과 HashJoin 알고리즘을 이용한 융합입니다.

SortMerge : 두 개의 데이터셋을 입력된 KeyColumn을 기준으로 정렬한 후 융합을 수행합니다.
정렬하기 위해 JoinType(Inner Join or Outer Join)을 제공하며 있으며, 중복되는 컬럼을 융합에서 제외할 수 있습니다. 또한 입력되는 두 개의 데이터셋이 이미 정렬이 되어 있을 경우 Sort Option을 해제할 수 있습니다.

Sort Type을 통해 데이터를 정렬합니다. 기 정렬되어 있을 경우 정렬된 형태를 설정해야 합니다.

HashJoin : 두 개의 데이터셋을 설정 된 KeyColumn으로 Hash Table을 생성 한 뒤 해당 값을 통해 융합을 수행합니다. SortMerge와 마찬가지로 JoinType 옵션을 제공합니다.

Quick Merge API

Function과 동일하게 기능을 수행하는 API를 제공합니다.
제공되는 API Class는 다음과 같습니다.

자세한 내용은 X-UP API 문서를 참고합니다.

6.1.14Merge Function

Merge Function은 복수의 데이터셋을 가지고 새로운 데이터셋을 생성하기 위한 컴포넌트입니다.

이러한 기능은 정형화된 복수의 데이터셋을 내장된 DBMS에 의해 SQL 쿼리문으로 표현된 로직이 실행되어 이루어집니다.

X-UP은 내부적으로 메모리 데이터베이스 시스템을 사용하여 융합 모델을 구현하고 있습니다. 따라서 대량의 데이터를 출력하는 모델들을 융합할 경우 X-UP서버가 운영되는 WAS의 메모리 및 성능에 영향을 미칠 수 있습니다.

Merge Function은 다음과 같은 프로퍼티 속성탭을 가지고 있습니다.

이러한 융합을 위한 융합 모델 개발은 다음과 같은 단계로 진행됩니다.

대상 데이터셋 설정

융합에 사용될 데이터셋을 설정합니다. X-UP모델에 의한 데이터셋 또는 사용자가 매개변수로 전달한 데이터셋이 설정될 수 있습니다.

융합 로직 및 SQL 쿼리 구현

X-UP의 융합은 내장된 DBMS를 사용하며, 융합하기 위한 로직은 SQL의 Select 구문으로 구현합니다. X-UP은 개발자가 구현한 SQL과 설정된 대상 데이터셋을 내장 DBMS에 전달하고 SQL 조회의 결과로 반환된 값을 처리하여 융합된 원시데이터를 생성합니다.

새로운 데이터셋 생성

내장된 DBMS에 의한 융합된 원시데이터는 그대로 반환되는 것이 아니라 새로 생성된 데이터셋으로 변환됩니다.

6.1.15XML Parser Function

XML Parser Function은 XML 정보를 파싱하여 파라미터형식으로 생성하기 위한 컴포넌트입니다. 호출 시 Variable or Dataset 형식으로 가져옵니다.

XML Parser Function은 Invoke를 생성하기 위한 XML Parser Function Dialog 와 다음과 같은 프로퍼티 속성탭을 가지고 있습니다.

InvokeInfo

Invoke를 수행하기 위한 필수 정보가 출력됩니다.

다른 Invoke 처럼 Invoke를 실행하기 위한 In-Out 정보가 이미 고정되어 있는 경우는 Information 만 출력합니다.

XML Parser Function의 경우 InvokeInfo에서 다음 정보를 출력합니다.

XML Parser Function Dialog

XML Parser Function을 생성하고자 할 경우 다음과 같은 다이얼로그가 출력됩니다.

6.1.16Extract DataSet Function

Extract DataSet Function은 여러 개의 Variable들을 Extract DataSet 함수에 입력 파라미터로 연결시켜 주게되면 자동적으로 각각의 Variable 값들이 하나의 데이터셋으로 만들어지는 함수입니다.

즉, Variable → DataSet으로 만드는 함수입니다.

Extract DataSet Function이 여러 개의 Variable과 연결되면 자동적으로 데이터셋이 만들어져 Output값으로 추출합니다.

Extract DataSet 함수는 다음과 같은 프로퍼티 속성탭을 가지고 있습니다.

6.1.17Extract Variable Function

Extract Variable Function은 데이터셋의 Column값들을 손쉽게 Extract Variable 함수에서 Column Name, Column Value, Column Size가 각각의 Output 타입의 Variable 파라미터로 만들어지는 함수입니다.

즉, DataSet → Variable 으로 만드는 함수입니다.

데이터셋의 첫번째 행의 값이 사용 됩니다.

Extract Variable Function이 Dataset과 연결되면 Dataset내에 있는 Column 개수, 이름, 타입, 크기, 값에 맞춰 Variable들을 Ouput 값으로 추출합니다.

예를 들어, Dataset의 column이 4개라면 4개의 Variables가 Output으로 출력됩니다. 각각의 Variable 이름, 타입, 크기, 값은 Dataset 각각Column이름, 타입, 크기, 값으로 동일합니다.

Extract Variable 함수는 다음과 같은 프로퍼티 속성탭을 가지고 있습니다.

6.1.18Decision

Decision은 조건에 따른 분기처리를 가능하게 합니다. 원하는 조건에 만족할 경우 특정 프로세스를 실행할 수 있습니다.

조건은 if / else if / else 세 가지로 구분되며 해당 커넥션을 선택하여 원하는 조건 타입으로 변경할 수 있습니다.

조건 커넥션의 프로퍼티 속성은 다음과 같습니다.

General

조건 커넥션의 General에는 Alias, Visible, Description 세 가지 정보를 정의할 수 있습니다.

특히 Visible의 경우는 다른 컴포넌트의 visible과 다르게 Name / Alias의 정보가 없기 때문에 커넥션 중앙에 Alias를 보여줄지를 결정합니다.

Connection Info

커넥션 정보 속성은 모든 커넥션의 공통 속성으로써 조건 커넥션 역시 동일합니다.

Routing : 커넥션 라우팅 타입을 결정합니다. (아래 그림의 오른쪽이 체크된 경우)

커넥션이 BendPoint 라우팅일 경우 사용자가 원하는 형태로 커넥션 모양을 정의할 수 있습니다.

Binding : 조건 커넥션일 경우 조건타입명을 보여줄지 여부를 결정합니다. 체크를 해제하면 커넥션에 보여지던 if / elseIf / else 같은 문자열을 숨김니다.

Condition Type

컨디션 타입은 사용자가 직접 컨디션 타입을 선택할 수 있습니다.

Source

컨디션 코드는 사용자가 직접 자바 코드로 원하는 조건 로직을 정의할 수 있습니다.

에디터상에 존재하는 모든 파라미터들은 globalParameterSet에 존재하므로 원하는 파라미터를 가져와 조건 로직을 정의할 수 있습니다.

반드시 로직의 결과값으로 true or false 를 리턴하도록 합니다.

프로퍼티내에 존재하는 모든 자바 코드 편집창은 공통적으로 자바 에디터에서 제공했던 동일한 어시스트 팝업 및 자바 문법 오류 검사 기능을 가지고 있습니다.

6.1.19Repeat Task

Repeat Task기능은 반복문을 구현하기 위한 기능으로 Decision 노드를 사용하여 처리합니다.

Decision End노드에서 Decision Start노드로 커넥션을 연결하면 자동으로 Repeat connection이 생성된다. 이때 반드시 1개의 조건만 있어야 가능하며 만약 1개 이상의 조건 커넥션이 존재한다면 Repeat connection은 생성되지 않습니다.

Break와 Continue 노드는 Repeat 구문 안에서만 사용 가능하며 원하는 시점에서 반복을 중단하거나 계속하고자 할 경우 사용될 수 있습니다.

Break나 Continue노드를 선택하면 Properties Condition Code에 소스코드가 나옵니다. 소스코드에 마우스 오른쪽 버튼을 누르고 Edit를 클릭하면 Conditon Code를 사용자가 직접 정의할 수 있습니다.

6.1.20Debug and Break Point

Automation Model은 모델 디버깅을 위해 에디터상에서 노드에 직접 BreakPoint를 추가할 수 있습니다. BreakPoint가 노드에 추가되면 에디터가 소스 생성 시 자동으로 해당 라인에 BreakPoint를 등록합니다.

BreakPoint는 각각 노드를 선택한 후 추가하거나 다중 선택 후 한꺼번에 추가할 수도 있습니다.

추가된 BreakPoint는 Remove BreakPoint메뉴를 통해 삭제할 수 있습니다.

Automation Model의 모델 디버깅은 크게 두 가지 방법으로 할 수 있습니다.