이벤트(Event)
특정 노드 타입에서 실행되는 프로세스를 이벤트로 표현합니다. 이벤트는 Create, Update, Delete, Read, List와 같이 기본적으로 제공하는 기본 이벤트와 productList, cartProductList와 같이 특정 로직을 이용하여 조회하는 Query형 이벤트, addCart, addWish 등과 같이 특정 로직을 수행하는 Command형 이벤트로 구분합니다.
주요 속성
이벤트의 주요 속성은 다음과 같습니다.
pid | valueType | config | description |
---|---|---|---|
tid | PARENT | idable=true | 해당 노드타입 아이디 |
event | STRING | idable=true | 해당 이벤트를 표현하는 이벤트 아이디를 지정합니다. |
name | STRING | labelable=true | 이벤트 명칭 |
eventType | CODE | Direct Execute, Has Form, | 이벤트 유형을 지정합니다. |
trace | BOOLEAN | 추적 기능 활성화 여부 설정합니다. trace 기능이 활성화 되면 별도의 로그로 저장됩니다. | |
noneExecute | BOOLEAN | 실제 데이터를 조작하는 Comman형 여부를 체크합니다. | |
compensatingEvent | REFERENCE | 해당 이벤트 실행에 에러가 발생하는 경우 보상으로 실행할 이벤트 지정 |
UI 관련 속성
Backoffice에서 이벤트를 처리하기 위한 주요 속성은 다음과 같습니다.
pid | valueType | config | description |
---|---|---|---|
buttonLabel | STRING | UI에서 보이는 명칭을 지정 | |
enablePageTypes | CODES | List Page, | 노출 가능한 페이지 유형을 지정 |
linkType | CODE | Modal, | 링크 이벤트인 경우 링크에 대한 유형을 지정 |
linkUrl | STRING | 링크 이벤트인 경우 해당 링크 URL을 지정합니다. | |
linkUrlParams | STRING | 링크 이벤트인 경우 해당 링크에 필요한 파라미터를 지정합니다. 이때 EL을 사용가능합니다. ex) id={{:id}} | |
callbackLinkType | CODE | Page, | 해당 이벤트 실행 후에 이동할 링크 유형을 지정합니다. |
callbackLinkUrl | STRING | 콜백 페이지 이동에 필요한 URL을 정의합니다. | |
noneExecute | BOOLEAN | 실제 데이터를 조작하는 Comman형 여부를 체크합니다. | |
option | PARTS | Validation, UI 옵션 등의 추가 옵션을 설정합니다. | |
enableCondition | PARTS | 해당 이벤트의 활성화 여부에 대한 조건을 설정합니다. |
이벤트 액션(EventAction)
ICE 에서는 특정 이벤트가 발생하였을때, 해당 노드타입내에서 트랜잭션에 묶여서 순차적으로 실행되는 것을 이벤트 액션으로 정의합니다.
주요 속성
pid | valueType | config | description |
---|---|---|---|
action | STRING | 액션의 아이디 | |
actionType | CODE | Service, Update, | 이벤트 액션의 유형을 정의합니다. |
datasource | REFERENCE | referenceType=datasource | 해당 Action에서 사용되는 Datasource를 선택 |
beforeAction | BOOLEAN | 추가적인 Validation이나 기본값 처리와 같은 실제 이벤트가 실행되기 전에 필요한 전처리 작업 여부를 지정합니다. | |
actionBody | STRING | Action 실행에 필요한 구문을 해당 actionType에 맞춰서 지정합니다. | |
orderNo | INT | 액션 실행 순서를 정의 |
이벤트 리스너(EventListener)
ICE에서 특정 이벤트가 발생하였을때, 해당 이벤트에 대한 비동기 처리를 실행하는 것을 이벤트 리스너로 정의합니다.
주요 속성
pid | valueType | config | description |
---|---|---|---|
tid | PARENT | referenceType=nodeType | 이벤트 리스터가 실행될 노드타입을 지정합니다. 해당 노드타입이 다른 마이크로서비스에 속해있으면 메세지 큐를 이용하여 전달합니다. |
actionType | CODE | Service, Update, | 이벤트 리스너의 실행 유형을 정의합니다. |
datasource | REFERENCE | referenceType=datasource | 해당 Action에서 사용되는 Datasource를 선택 |
executeType | CODE | Single Server, All Server | Single Server : 해당 마이크로서비스의 서버중에서 하나의 서버에서만 실행 |
actionBody | STRING | Action 실행에 필요한 구문을 해당 actionType에 맞춰서 지정합니다. |
이벤트 트랜잭션 프로세스
ICE4에서 이벤트 처리는 동기화하여 트랜잭션을 처리하는 EventAction과 비동기로 분산처리를 지원하는 EventListener 2가지 기능을 상황에 맞춰서 구현해야 합니다.