4. ACCOUNT MANAGEMENT
DOMAIN
§ Domain 관리자는 Domain Registration에 의해 생성되어 System Administrator 만 정보를 변
경할 수 있고, System Administrator가 Active를 TRUE로 변경해야 Registration이 Approval
된다.
5. ACCOUNT MANAGEMENT
GROUP
§ User를 Grouping하는 Entity로 계층 구조로 정의될 수 있다.
§ Announcement Detail에서 target 정보로 이용된다.
9. METADATA MANAGEMENT
CLASS
§ Type : Entity class 유형
• CONCRETE – Entity Table이 생성되고, 데이터를 등록, 수정, 삭제할 수 있는 Entity
• ABSTRACT – Entity Table은 생성되나, 상속을 위해 정의되기 때문에 데이터를 등록할 수
있는 Entity (JValidation)
• INTERFACE – Entity Table도 생성되지 않고, 상속을 위해서 정의되는 Entity (JObject)
§ Inheritance JClass : 상속을 받기 위한 부모 JClass
§ Inheritance Type :
• EXTENDS – Entity Table이 생성될 때 Inheritance JClass의 Attributes 없이 생성됨
• IMPLEMENTS – Entity Table이 생성될 때 Inheritance JClass의 Attributes를 갖고 생성됨
§ Action Class : 등록, 수정, 삭제 전/후로 처리할 비즈니스 로직을 갖는 Java Action Class
§ Summary Filter : Grid summary API 시 Data row filtering을 SQL Where 절을 Expression
Language로 설정
§ JObject Rule : 등록, 수정 전에 처리할 비즈니스 로직을 Expression Language로 설정
§ Access Rule : Entity의 데이터 접근 제어를 위한 Security 속성
§ PUBLIC – DataAccessRule에 create/read/update/delete를 막지 않으면 접근 허용
§ PROTECTED – DataAccessRule에 create/read/update/delete를 허용하지 않으면 접근 금
지
§ PRIVATE – DataAccessRule에 상관없이 read 권한만 허용
10. METADATA MANAGEMENT
CLASS
§ Map Action : Virtual attribute로 Entity의 Table 생성 및 삭제 처리를 위해 사용
• mapping – Entity의 상태가 NONE일 경우 Table을 생성하기 위한 값
• unmapping – Entity의 Table이 생성된 후 Table을 삭제하기 위한 값
• remapping – Unmapping Entity를 다시 mapping 하기 위해 임시 상태로 표시하기 위한 값
§ Status : Derived attribute로 Entity 상태 정보
11. METADATA MANAGEMENT
CLASS MAPPING
§ Mapping entity
• Make java class from metadata
• Make hibernate config from metadata
§ Change entity
• Add and remove attribute
• Change attribute : name, type, primary, unique, virtual
• Cannot change : name and category for JClass (CREATED)
§ Unmapping entity
• Change status from CREATED to UNMAPPED
§ Remapping entity
• Change status from UNMAP to REMAPPED
§ Build metadata
• Make java class from metadata for all entities.
• Make hibernate config from metadata for all entities.
• Create and initialize JClassLoader
• Create and initialize JSpringSessionFactoryBean
12. METADATA MANAGEMENT
JOBJECT ACTION
§ Create, Update, Delete 전/후로 Custom business logic을 실행하고자 한다면, Custom
JObjectAction를 정의한 후 JClass action class 항목에 설정한다.
JObjectAction
setJActionContext(JActionContext context)
doPreExecute(JActionType type, JObject jObject)
doPostExecute(JActionType type, JObject jObject)
JObjectActionSupport
setJActionContext(JActionContext context)
doPreExecute(JActionType type, JObject jObject) public interface JActionContext {
doPostExecute(JActionType type, JObject jObject)
doPreCreate(JObject jObject) public JUserEntity getUserEntity();
doPreUpdate(JObject jObject) public JObject getBeforeImage();
doPreDelete(JObject jObject) public JClass getJClass();
doPostCreate(JObject jObject) public JGenericService getJGenericService();
doPostUpdate(JObject jObject) public Object getBean(String beanName);
doPostDelete(JObject jObject) }
§ JObjectActionSupport로 부터 상속을 받아 필요한 메스드만 Overriding한다.
14. METADATA MANAGEMENT
SUMMARY FILTER
§ JClass Summary Filter 설정은 MVEL Expression Language를 사용하기 때문에 자세한 문법
은 아래 URL을 참조한다.
http://mvel.codehaus.org/Home
§ Expression Language에서 사용할 수 있는 Platform Context Variable은 아래와 같다.
§ JUserEntity – 로그인 한 사용자 정보
Variable Type Description
juser.administrator boolean System Administrator 여부
juser.admin boolean Domain Administrator 여부
juser.objectId Long 사용자의 User정보에 대한 Object Id
juser.domainId Long 사용자의 Domain Id
juser.JGroup JGroupEntity 사용자의 Group 정보
juser.JGroupId Long 사용자의 Group에 대한 Object Id
juser.nickname String 사용자의 Nickname
juser.username String 사용자의 로그인 ID로 email address
15. METADATA MANAGEMENT
SUMMARY FILTER
§ JAnnounceMessage에 설정된 Summary Filter 예시
if(!juser.administrator && !juser.admin){
"(active=true and current_date()>=fromDate and current_date()<=toDate)
and (objectId not in (select objectId from jannouncedetail)
or objectId in (select objectId from jannouncedetail
where JDomain="+juser.domainId+” or JGroup="+juser.JGroupId+” or JUser="+juser.objectId+"))"
}
16. METADATA MANAGEMENT
JOBJECT RULE
§ JClass JObject Rule 설정은 MVEL Expression Language를 사용하기 때문에 자세한 문법은
아래 URL을 참조한다.
http://mvel.codehaus.org/Home
§ Expression Language에서 사용할 수 있는 Platform Context Variable은 아래와 같다.
§ JUserEntity – 로그인 한 사용자 정보
Variable Type Description
juser.administrator boolean System Administrator 여부
juser.admin boolean Domain Administrator 여부
juser.objectId Long 사용자의 User정보에 대한 Object Id
juser.domainId Long 사용자의 Domain Id
juser.JGroup JGroupEntity 사용자의 Group 정보
juser.JGroupId Long 사용자의 Group에 대한 Object Id
juser.nickname String 사용자의 Nickname
juser.username String 사용자의 로그인 ID로 email address
19. METADATA MANAGEMENT
ATTRIBUTE
§ JClass : Attribute가 속한 Class (readOnly=true)
§ Type : Attribute의 Data Type으로 JType을 Reference
§ Unique : Entity 생성 시 unique constraint 생성
§ Derived : System Handle attribute
§ Virtual : Table생성 시 Column으로 생성되지 않고, 화면에는 보여짐
§ Primary : 등록, 수정 시 Primary true인 attribute들의 중복 체크를 함
§ Hidden : Table에는 Column으로 정의되고, 화면에 보여지지 않음
§ Searchable : true인 attribute는 Summary View에 포함되어, Grid 와 Search form에 보여짐
§ Encrypt : 데이터 암호화 적용
• password – Password 컬럼과 같이 1-way encryption
§ JValidation :
§ Status : derived attribute로 Attribute의 상태 정보
• NONE – Table이 생성되지 않고, Attribute 정보만 등록한 경우
• CREATED – Table에 Attribute에 대한 컬럼이 생성된 경우
• CHANGED – 컬럼이 생성된 후 중요 정보가 변경된 경우 (name, type, primary, unique,
virtual)
20. METADATA MANAGEMENT
TYPE
§ JType의 Access Rule은 ‘PRIVATE’으로 모든 사용자가 JType을 Read
Only로 접금한다.
§ Data Type을 표현하는 Entity로 Data Type은 Primitive와 Reference Type을 지원한다.
§ JClass 가 Mapping될 때 생성되고, Unmapping될 때 삭제된다.
21. METADATA MANAGEMENT
VIEW
§ Title : Data의 제목 정보를 표현하고, primary attribute로 구성 됨
§ Summary : Data의 요약 정보를 표현하고, searchable attribute로 구성 됨
§ Detail : Data 의 전체 정보를 표현하고, 모든 attribute로 구성 됨
§ Table에 대한 View를 표현하는 Entity로 모든 Class가 mapping될 때 3가지 Type의 View가 생
성된고, Unmapping될 때 생성된 View 정보가 삭제 된다.
§ Summary View는 Grid, Detail View는 Object Widget에서 사용된다.
24. METADATA MANAGEMENT
CLASS ACTION
§ Type : JClassAction의 유형으로 Custom Button을 어떤 Widget에 보여줄지를 경정한다.
• Class : Summary View를 사용하는 Widget에 보여줄 경우 설정
• Object : Detail View를 사용하는 Object Widget에 보여줄 경우 설정
• All : 모든 Widget에 보여줄 경우 설정
§ Target Url : Custom Button이 클릭된 경우 호출할 URL
§ Target Method : Custom Button이 클릭된 경우 호출할때 사용할 HTTP METHOD
§ Target : 호출한 결과로 Widget을 보여줄 영역
• Tab : tab 영역에 결과를 Rendering
• Main : main 영역에 결과를 Rendering
• Document : Browser 전체를 refresh함, html widget일 경우 사용
• Overlay : Overlay dialog로 결과를 Rendering 함
§ Widget : 호출한 결과로 보여줄 UI Widget
• Grid : Grid widget
• Object : Object widget
• Html : html, JSP
• None : 서버에 Event만 전달하고 화면 변화는 없는 경우
25. METADATA MANAGEMENT
ENUM VALIDATION
§ Enumeration validation을 정의하는 Entity로 상세 정보를 Enum Detail에 등록해야 한다.
§ Type : UI 컴포넌트 유형 (SELECT, RADIO, CHECKBOX, COMBO)
30. SECURITY MANAGEMENT
ROLE
§ Security Role에 대한 Entity
§ System Domain에서는 3 가지 Reserved Role 제공
• User – 일반 사용자 Role, 모든 사용자는 User Role을 갖는다.
• Admin - Domain 관리자 Role
• Administrator – System 관리자 Role
33. SECURITY MANAGEMENT
WIDGET ACCESS RULE
§ Role과 WidgetInstance 간의 Standard Buttons에 대한 접근 제어를 설정한다.
WidgetAccessRule이 설정되어 있지 않으면, DataAccessRule을 따른다.
36. BATCH MANAGEMENT
BATCH DEFINITION
§ Batch Task Class는 JBatchTaskSupport로 부터 상속을 받아 doExecute() 메서드에
Business Logic을 정의한다.
public interface JBatchContext {
JBatchTask
public static final String PARAM_BATCH_USER = "batchUser";
setJBatchContext(JBatchContext context)
doInit() public String getName() ;
doExecute() public String getServer();
doEnd() public Long getInstanceId();
public Long getDefinitionId();
public String uuid();
JBatchTaskSupport
public Object getParameter(String name);
public Object getEnvironment(String name);
setJActionContext(JActionContext context)
doInit()
doExecute() public JGenericService getJGenericService();
doEnd()
public void put(String key, Object value);
public Object get(String key);
public String currentDateTime();
public Object getBean(String beanName);
}
37. BATCH MANAGEMENT
BATCH DEFINITION
public class JClassBatchTask extends JBatchTaskSupport {
public static final String PARAM_SOURCE_CID = "sourceCid";
public static final String PARAM_UNIT_COUNT = "unitCount";
private JGenericService jGenericService;
@Override
public void doExecute() throws JBatchException {
jGenericService = (JGenericService)this.context.getBean(JGenericService.ID);
Object sourceCid = context.getParameter(PARAM_SOURCE_CID);
Long classId = null;
if(sourceCid instanceof Long) {
classId = (Long)sourceCid;
} else {
throw new JBatchException("Invalid parameter("+PARAM_SOURCE_CID+
"). It is not a Long. - "+sourceCid);
}
Object unitCount = context.getParameter(PARAM_UNIT_COUNT);
Integer pageSize = null;
if(unitCount instanceof Integer) {
pageSize = (Integer)unitCount;
} else {
throw new JBatchException("Invalid parameter("+PARAM_UNIT_COUNT+
"). It is not a Integer. - "+unitCount);
}
39. BATCH MANAGEMENT
BATCH PARAMETER NAME
§ Batch 기본 정보 등록 시 Batch Task Class가 사용할 Parameter를 등록하는 Entity.
§ Name : Batch Task Class가 사용할 Parameter Name
§ Type : Parameter의 Data Type
§ Default Value : Parameter의 Default Value
40. BATCH MANAGEMENT
BATCH INSTANCE
§ Batch Definition으로 부터 Runtime에 실재 실행될 Batch를 등록하는 Entity
§ Fixed Delay : Batch start 후 최초 실행을 결정하는 Delay time
§ Fixed Rate : Batch 실행 주기
41. BATCH MANAGEMENT
BATCH INSTANCE
§ Cron Expression : Batch 실행 Schedule 정보
§ Batch Server : Batch가 실행될 서버를 구분하는 정보로 설정안된 경우 모든 서버에서 실행됨.
서버 실행 시 –Dapp.server 로 설정한 값과 비교하여 Batch를 실행함
§ Active : True인 Batch Instance만 실행하고, 동적으로 값을 변경하여 Batch를 start/stop할 수
있음.
42. BATCH MANAGEMENT
BATCH PARAMETER VALUE
§ Batch 기본정보에 설정한 Parameter에 대한 값을 설정하는 Entity
§ JBatchParamName : Parameter Name을 정의한 JBatchParamName Entity
§ Value : Parameter Value
51. COMMON MANAGEMENT
MENU
§ Menu 정보를 등록하는 Entity
§ Action URL : 메뉴를 클릭했을 때 호출할 Target URL 정보
§ Target : Target URL의 결과를 Rendering할 영역
• main – Response 받은 json 결과를 widget과 binding하여 main 영역에 rendering 함
• document – Browser page 전체를 refresh하여 호출 결과를 rendering 함
• overlay –
§ Widget : 메뉴를 클릭한 후 보여줄 UI Type
• grid – Response 결과를 target 영역에 grid widget으로 rendering 함
• object – Response 결과를 target 영역에 object widget으로 rendering 함
• html – Response 결과 html을 target 영역에 Rendering 함
• none – 서버에 Event만 전달 함.
§ Access Rule : Menu의 접근 제어에 대한 Security 속성으로 System Administrator만 설정 가
능 (Default Value = ‘PROTECTED’)
§ PRIVATE : System에서만 사용하기 위해 Domain 사용자에게 메뉴를 Hidden 시키는 속성
§ PROTECTED : Menu의 기본 AccessRule로 JDataAccessRule에 따라 접근 제어가 처리됨
§ PUBLIC : UI에서 메뉴를 바로 접근할 수 있게 처리하기 위한 Common Menu를 정의하는
속성
53. COMMON MANAGEMENT
PREFERENCE DETAIL
§ Preference의 값을 정의하는 Entity
§ Target : Domain, User Preference일 경우 Preference 대상 Domain 및 User object Id
§ Value : Preference Value