이벤트(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형 여부를 체크합니다. |
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)
특정 노드 타입에서 실행되는 프로세스를 이벤트로 표현합니다. 이벤트는 Create, Update, Delete, Read, List와 같이 기본적으로 제공하는 기본 이벤트와 productList, cartProductList와 같이 특정 로직을 이용하여 조회하는 Query형 이벤트, addCart, addWish 등과 같이 특정 로직을 수행하는 Command형 이벤트로 구분합니다.
주요 속성
이벤트의 주요 속성은 다음과 같습니다.
속성정의
속성 | 필수 | 기본값 | 설명 |
event | 필수 |
| |
name | 필수 |
| |
label |
| ||
eventType |
“direct” : Form 또는 List 형태의 페이지에서 사용할 때 “form”: Form 형태의 페이지에서 사용할 때 “link”: 단순 페이지 이동시 “view”: 조회 성격의 이벤트일 때(목록 조회, 상세 조회 등) | ||
noneExecute |
| ||
enablePageTypes |
“list” : List 형태의 페이지에서 사용할 때 “view” : Form 형태의 페이지에서 사용할 때 | ||
enableFormTypes |
“createForm” : 등록 Form 페이지에서 사용할 때 “updateForm” : 수정 Form 페이지에서 사용할 때 “view” : 상세 Form 페이지에서 사용할 때 | ||
linkType |
“modal” : Modal을 호출한다. “page” : 페이지 이동 “window” : 탭을 열어 페이지 이동 | ||
linkUrl |
| ||
callbackLinkUrl |
| ||
eventActions | EventAction 을 Array 로 정의 | ||
eventListeners | EventListeners 를 Array 로 정의 |
예시
JSON
{
“typeId”: “nodeType”,
“parentId”: “root”,
“tid:”: “ctsBasAptM”,
“repositoryType”: “node”,
“typeName”: “공항기초”,
“historyable”: true,
“propertyTypes”: [],
“events: [
{
“event”: “list”,
“name”: “List”,
“label”: “목록”,
“noneExecute”: false,
“eventType”: “link”,
“enablePageTypes”: “createForm”,
“linkType”: “page”,
“linkUrl”: “/admin/custom/testBoard/list”
},
{
“event”: “create”,
“name”: “Create”,
“label”: “등록”,
“noneExecute”: false,
“eventType”: “form”,
“enablePageTypes”: “list”,
“enableFormTypes”: “createForm”,
“linkType”: “page”,
“linkUrl”: “/admin/custom/testBoard/createForm”,
“callbackLinkUrl”: “/admin/custom/testBoard/list”
}
]
}
Schema Event Action
정의
Event 에 종속되는 스키마이고 Event가 가지게 되는 작업이다.
하나의 Event는 여러 개의 Event Action 을 가질 수 있다.
속성정의
속성 | 필수 | 기본값 | 설명 |
action | 필수 |
| |
actionType | 필수 |
“service” : Java Class 와 바인딩 “update” : DBMS INSERT, UPDATE, DELETE Query 실행 “select” : DBMS SELECT Query 실행 “call” : DBMS Function 실행 | |
datasource |
| ||
beforeAction |
| ||
actionBody | 필수 |
[Class annotation의 Service명].[메소드명]
DBMS INSERT, UPDATE, DELETE Query 를 입력한다. 파라미터는 {{:파라미터명}} 으로 받을수 있다. 예시) /[NodeType의 tid]/[Event의 event]?userId=1234 SELECT * FROM user WHERE id = {{:userId}}
DBMS SELECT Query 를 입력한다. 파라미터 바인딩 방식은 actionType이 “update” 일 경우와 같다.
DBMS의 Function을 입력한다. | |
orderNo |
|
예시
JSON
{
“typeId”: “nodeType”,
“parentId”: “root”,
“tid:”: “ctsBasAptM”,
“repositoryType”: “node”,
“typeName”: “공항기초”,
“historyable”: true,
“propertyTypes”: [],
“events: [
{
“event”: “list”,
“name”: “List”,
“label”: “목록”,
“noneExecute”: false,
“eventType”: “link”,
“enablePageTypes”: “createForm”,
“linkType”: “page”,
“linkUrl”: “/admin/custom/testBoard/list”,
“eventActions”: [
{
“action”: “listAction”,
“actionType”: “select”,
“datasource”: “test”,
“beforeAction”: false,
“actionBody”: “SELECT * FROM ctsBasAptM”,
“orderNo”: 1
}
]
},
{
“event”: “create”,
“name”: “Create”,
“label”: “등록”,
“noneExecute”: false,
“eventType”: “form”,
“enablePageTypes”: “list”,
“enableFormTypes”: “createForm”,
“linkType”: “page”,
“linkUrl”: “/admin/custom/testBoard/createForm”,
“callbackLinkUrl”: “/admin/custom/testBoard/list”,
“eventActions”: [
{
“action”: “createAction”,
“actionType”: “service”,
“datasource”: “”,
“beforeAction”: false,
“actionBody”: “contestService.create”,
“orderNo”: 1
}
]
}
]
}