정의
NodeType에 종속되는 스키마이고 NodeType이 가지게 되는 트랜잭션이다. 여기서 말하는 트랜잭션이란 목록 조회, 상세 조회, 데이터 등록, 데이터 수정, 데이터 삭제 등을 말한다.
Event가 정의되면 솔루션 API 가 제공된다. (예시) /adm/[NodeType의 tid]/[Event의 event]
솔루션 관리자 UI 구성 시 Presentational Component 의 Button 사용이 달라진다.
속성정의
속성 | 필수 | 기본값 | 설명 |
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
}
]
}
]
}